简介
简单列下如何用buildroot
第一次配置自己的根文件系统,且制作用于emmc
或者sd
卡的根文件系统
下载
来到官网,选择buildroot-2024.02.4.tar.gz
解压
tar -zxvf buildroot-2024.02.4.tar.gz
配置
先make menuconfig
target options
可以看到默认的架构,我们这里修改下Target Architeceture
修改为 Arm (little endian)
选完第一个之后,下面的其他选项都自动选成默认了
Target Architecture Variant
选择为cortex-A7
接下来是Target ABI
根据我们的工具链选择为EABIhf
toolchain
Toolchain type:将buildroot_toolchain
改成external_toolchain
,这里就不用buildroot自己下载具体的工具链
**Toolchain **改为Custom toolchain
选完后自动变成了 Toolchain origin (Pre-installed toolchain)
然后填Toolchain path
如下是我们工具链的路径
然后填写 Toolchain prefix
接下来是这三个选项
gcc version选择4.9.x
kernel headers series是内核版本,根据自己用的内核版本来选择就可以
C库我们选择glibc
,因为工具链是glibc
类型,如果是uclibc
或者是musl
,libc
后缀会带uclibc
或者musl
Toolchain has xx support基础这三个选项都选上
Target Optimizations这个是选填的,相当于编译优化的一个选项
这里我们我们填上我们的CPU
型号
修改后就保存配置
编译
直接输入如下命令,记住一定要sudo
sudo make -j16
一般如果编译过程没啥问题,不过我遇到了几个小问题,在后面小节记录了,这里就先看结果吧
最后就是在output/images
下得到我们需要的产物rootfs.tar
制作镜像
创建release
文件夹,把rootfs.tar
复制过来
制作空镜像,并格式化为ext4
格式,这里我们制作的根文件系统为256M
的大小,当然后面可以在linux
下进行扩容
dd if=/dev/zero of=rootfs.ext4 bs=256M count=1
mkfs.ext4 rootfs.ext4
创建临时文件夹,供我们刚刚格式化的镜像可以进行挂载
mkdir tmp_rootfs
sudo mount -t ext4 rootfs.ext4 ./tmp_rootfs/
tar -xf rootfs.tar -C ./tmp_rootfs/
当然在output/target
目录下也可以看到我们的rootfs
里的内容,也可以直接把target
下的内容直接复制也可以的,不过还是使用推荐做法啦
技巧
打补丁
镜像源配置
取消root登录
设置root密码
rootfs扩容
更新
其他
这里记录下如何解决编译过程中的小问题
编译碰到kernel
头文件版本不对的问题,这里我们按照出错提示选择4.0.x
,同时删除output/build/toolchain-external-custom
目录,再重新编译
接着就是两个报错,根据提示将Fortran
跟OpenMP
都勾选上