使用buildroot2022.02.06制作根文件系统

官网下载buildroot

进入官网,直接下载最新的。
在这里插入图片描述

解压压缩包

先解压压缩包然后进入该目录。

tar -xjf buildroot-2022.02.6.tar.gz
cd buildroot-2022.02.6

在这里插入图片描述

开始制作根文件系统

配置buildroot

直接make menuconfig打开图形化配置界面。
在这里插入图片描述
(1)配置Target options

Target Architecture (ARM (little endian))  --->   小端                                 
                    Target Binary Format (ELF)  --->                                                  
                    Target Architecture Variant (cortex-A7)  --->                                      
                    Target ABI (EABIhf)  --->                                                          
                    Floating point strategy (NEON/VFPv4)  --->                                         
                    ARM instruction set (ARM) 

其中Floating point strategy参考imx6ull芯片手册第十二章开头可知:
在这里插入图片描述
(2)配置Toolchain
此配置项用于配置交叉编译工具链,也就是交叉编译器,这里设置为我们自己所使用的交
叉编译器即可。buildroot 其实是可以自动下载交叉编译器的,但是都是从国外服务器下载的,
鉴于国内的网络环境,强烈推荐大家设置成自己所使用的交叉编译器。

Toolchain
-> Toolchain type = External toolchain
-> Toolchain = Custom toolchain  //用户自己的交叉编译器
-> Toolchain origin = Pre-installed toolchain  //预装的编译器
-> Toolchain path =/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot    //本地交叉编译器的路径
-> Toolchain prefix = $(ARCH)-buildroot-linux-gnueabihf //本地交叉编译器的前缀
-> External toolchain gcc version = 7.x   //本地交叉编译器的gcc版本
-> External toolchain kernel headers series = 4.9.x  //本地交叉编译器的kernel headers series
-> External toolchain C library = glibc/eglibc
-> [*] Toolchain has SSP support? (NEW)       //选中
-> [*] Toolchain has RPC support? (NEW)      //选中
-> [*] Toolchain has C++ support?           //选中
-> [*] Enable MMU support (NEW)            //选中

(3)配置System configuration

System configuration —>
  (buildroot) System hostname (设置主机名)
  (Welcome to Buildroot) System banner (输入欢迎语)
  Init system (BusyBox)>
  /dev management (Dynamic using devtmpfs + mdev)>(使用mdev动态加载设备节点的方式,devtmpfs是Linux内核中的一个虚拟文件系统,需要启用内核配置选项: CONFIG_DEVTMPFS和CONFIG_DEVTMPFS_MOUNT)
  () Root password(进入linux控制台终端后的密码)
  [*] remount root filesystem read-write during boot(可以进行动态的挂载)
  Run a getty (login prompt) after boot —>
    (console) TTY port(设置成串口登陆的设备节点)
    Baudrate (115200)> (设置波特率)

(4)配置 Filesystem images
此选项配置我们最终制作的根文件系统为什么格式的,对于 I.MX6U 来说此选项不用配置,因为我们是通过 Mfgtool 工具将根文件系统烧写到开发板上的 EMMC/SD 卡中,烧写的时候需要自己对根文件系统进行打包

-> Filesystem images
-> [*] ext2/3/4 root filesystem      //如果是 EMMC 或 SD 卡的话就用 ext3/ext4
		-> ext2/3/4 variant = ext4   //选择 ext4 格式
-> [*] ubi image containing an ubifs root filesystem //如果使用 NAND 的话就用 ubifs

(5)禁止编译内核和bootloader
我们只是用buildroot来制作根文件系统,不需要编译内核和uboot。当配置 buildroot,使能 linux 内核和 uboot 以后 buildroot 就会自动下载最新的 linux 内核和 uboot 源码并编译。但是我们一般都不会使用 buildroot 下载的 linux 内核和 uboot,因为 buildroot 下载的 linux 和 uboot官方源码,里面会缺少很多驱动文件,而且最新的 linux 内核和 uboot 会对编译器版本号有要求,可能导致编译失败。
在这里插入图片描述
在这里插入图片描述

编译buildroot

很多包可能需要自己下载后放到dl文件夹下,下载也很方便,在buildroot编译页面会有相应包的地址,直接复制到浏览器打开就行。

sudo make

编译完成。
在这里插入图片描述

拷贝根文件系统到nfs目录

我们在开发板上通过nfs方式来挂载根文件系统。

cp output/images/rootfs.tar ~/nfs_rootfs/buildrootfs/
cd ~/nfs_rootfs/buildrootfs/
tar -xvf rootfs.tar 
rm rootfs.tar

这就是我们制作的最简单的根文件系统,后续我们可以通过buildroot来加入更多的库。
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值