003 使用buildroot编译树莓派zero w内核与根文件系统

前言

我打算用树莓派为平台做一个linux驱动与应用开发的系列分享,这里先从制作内核和文件系统开始吧!
后面每个知识点我尽量单独拿出来分享,方便搜索

环境

主机:Ubuntu20.04
平台:树莓派zero w

正文开始

1获取buildroot包

获取的方式很多,我下面列举了三种,嗯~都没验证过,不过我这不马上验证嘛。

1.wget https://buildroot.uclibc.org/downloads/buildroot-2016.11.2.tar.gz

2.官网下载buildroot:https://buildroot.org/download.html

3.git clone https://github.com/buildroot/buildroot.git

我是比较倾向使用git方式的,下面就以这种方式举例吧,为了保证这篇分享万无一失,我准备了一个纯白的Ubuntu20.04.
首先需要下载git
先看一下我这里是提示没有git的,那么就安装
003 使用buildroot编译树莓派zero w内核与根文件系统

sudo apt-get install git

安装完成,直接开始装buildroot吧,如果安装失败,重新装,这种概率太小以至于我从来没遇到过
我创建了一个Linux目录
获取buildroot

mkdir linux
cd linux/
git clone https://github.com/buildroot/buildroot.git

获取可能有点慢,如果你没有*的话!哈哈哈
安装完成后进入buildroot目录

cd buildroot/

003 使用buildroot编译树莓派zero w内核与根文件系统
这里树莓派的一些基础配置在buildroot里面已经保存好了配置文件,我们直接去取就行了
进入配置文件的目录

cd configs/

用这个命令可以看到,和树莓派相关的配置,我们要使用的zerow也在其中

ls raspberrypi*

003 使用buildroot编译树莓派zero w内核与根文件系统
复制我们需要的配置文件名raspberrypi0w_defconfig一会儿要用
现在退回到buildroot目录输入以下命令然后回车

 make raspberrypi0w_defconfig

这就是纯白系统了,可以让我尽量说的详细一些,它提示没有的东西我们都安装一下就行了
003 使用buildroot编译树莓派zero w内核与根文件系统
安装它们,是的提示就是安装命令哈哈

sudo apt install make      
sudo apt install make-guile  

/bin/bash: gcc: command not found
又有提示说没有gcc,那就装
003 使用buildroot编译树莓派zero w内核与根文件系统
与上相同,在安装各种工具时提示是否安装都回车就行,按默认值行事,顺便把g++也装了,万一以后要用c++哇!

sudo apt install gcc
sudo apt install g++

安装完这些,再执行make raspberrypi0w_defconfig出现以下结果,即表示咱配置成功了
003 使用buildroot编译树莓派zero w内核与根文件系统
用以下命令可以查看我们刚刚载入的默认配置都有些啥

make menuconfig

然后好像还需要个东西
*** Install ncurses (ncurses-devel or libncurses-dev

003 使用buildroot编译树莓派zero w内核与根文件系统
好办安装呗

sudo apt-get install libncurses-dev 

安装完再执行make menuconfig就可以看到我们刚载入的那些配置了,这个终端窗口托大一点,不然会报错,太小的话它卡腰!
003 使用buildroot编译树莓派zero w内核与根文件系统
配置我们先不要动,先用基础配置编译,万一通过了,再添加各种自己的小东西也不迟,那么咱就按照这个默认的配置来,编译一个能用的镜像文件再说
使用以下命令

sudo make -j8

这里的-j8是我的虚拟机分配了8个核心,你看你分了多少核心,自己看着办,分的越多编译越快,执行到这一步也就差不多到了这篇博客的尾声了。后面我再做客制化配置的更多内容哈!懒癌。。。。

编译完成之后先不管其他的,哥们儿如果和我一样是虚拟机的话先来个sftp吧!要不然文件没法和win互相传输
以下命令走起

sudo apt-get install vsftpd

安装好后打开配置文件

sudo vi /etc/vsftpd.conf

将以下内容使能

local_enable=YES
write_enable=YES

003 使用buildroot编译树莓派zero w内核与根文件系统

完成修改后保存退出,重新启动sftp

sudo /etc/init.d/vsftpd restart

到这里就可以使用FileZilla链接虚拟机的文件系统了,到时候我们会从这里将编译好的镜像文件拿出来
通过树莓派提供的烧写工具烧写到sd卡
以上提到的两个软件的地址
FileZilla

https://filezilla-project.org/download.php?type=client#close

003 使用buildroot编译树莓派zero w内核与根文件系统

树莓派烧录工具

https://www.raspberrypi.com/software/

003 使用buildroot编译树莓派zero w内核与根文件系统
等了很持久呀!终于好了 ,可以看到sdcard.img已经出来了,我们到时候就用这个!
003 使用buildroot编译树莓派zero w内核与根文件系统
这个文件在buildroot/output/images$
可以看到文件系统设备树都在这里,只不过sdcard.img是包含了所有内容的一个镜像而已,我们把它
拿出来
003 使用buildroot编译树莓派zero w内核与根文件系统
003 使用buildroot编译树莓派zero w内核与根文件系统
直接拖到你想要的位置就行,然后就是烧录;打开树莓派的软件
003 使用buildroot编译树莓派zero w内核与根文件系统
选择烧写自己的镜像
003 使用buildroot编译树莓派zero w内核与根文件系统
找到刚刚刚拿到的镜像文件
003 使用buildroot编译树莓派zero w内核与根文件系统
第二个选择项可以选择你插入电脑的SD卡,选择后点击第三个选项烧写即可
好到此也就差不多了,拜拜.

上一篇:buildroot使用总结


下一篇:迅为IMX6ULL开发板Buildroot文件系统构建-配置Busybox