本文共 1840 字,大约阅读时间需要 6 分钟。
Buildroot 配置指南
Buildroot 与 busybox 比较
在嵌入式系统开发中,Buildroot 和 busybox 是两种常用的构建工具。选择哪种工具取决于项目需求。
Buildroot 的优势
- 功能全面:Buildroot 集成了众多常见的第三方库和软件,能够构建交叉编译工具链、根文件系统、uboot 以及 Linux 内核镜像。
- 配置简单:相比于 yocto,Buildroot 的配置操作更为简单,类似于内核配置,容易理解,且编译要求及磁盘空间需求较小。
busybox 的特点
- 用途有限:busybox 主要用于构建一些常用命令和文件,适合简单的系统需求。
- 库文件支持:需要自行移植如 alsa、iperf、mplayer 等第三方软件的库文件。
- 默认设置:默认没有用户名和密码,需要手动配置。
Buildroot 配置步骤
1. Buildroot 官方资源
2. 配置菜单
运行以下命令进入配置界面:
make menuconfig
3. 主要配置项
Target options
- 目标架构:选择 ARM (little endian)
- 目标格式:选择 ELF
- 目标变体:选择 cortex-A7
- 目标 ABI:选择 EABIhf
- 浮点策略:选择 NEON/VFPv4
- 指令集:选择 ARM
- 工具链类型:选择 External toolchain
- 工具链路径:设置交叉编译器的绝对路径,如
/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf - 编译器版本:设置工具链版本,如 4.9.x
- 库文件支持:选择需要支持的功能,如 SecureCRT、RPC 和 C++。
系统配置
- 系统 hostname:自定义设置,如 alpha_imx6ull
- 系统欢迎语:设置自定义欢迎信息。
- 初始化系统:选择 BusyBox。
- 设备管理:选择动态使用 devtmpfs + mdev。
- 登录设置:启用 root 登录,设置密码。
文件系统镜像
- 文件系统类型:选择 ext2/3/4(如 EMMC 或 SD 卡使用 ext4 格式)。
- 存储方式:选择使用 ubifs 如果使用 NAND 存储。
内核与 Bootloader
- 禁止编译:在 Kernel 和 Bootloaders 菜单中,分别取消选择 [ ] Linux Kernel 和 [ ] U-Boot。
第三方软件包
- 可选软件:如 alsa-utils、ffmpeg、iperf 等工具,根据项目需求选择。
4. busybox 配置
在 Buildroot 下,busybox 的配置文件位于 /output/build/busybox-<版本>。
修改 Makefile
在解压目录下修改 Makefile,如:
make menuconfig
Chinese 支持
默认 busybox 可能会在 SecureCRT 中显示异常字符。需修改以下文件:
/output/build/busybox-1.29.3/libbb/printable_string.c /output/build/busybox-1.29.3/libbb/unicode.c 修改完成后,重新编译:
sudo make busybox
5. 编译 Buildroot
运行以下命令进行编译:
sudo make
编译完成后,生成的根文件系统位于 /output/buildroot-2019.02.6/output/images/。
根文件系统测试
1. NFS 启动
在启动脚本中添加以下参数:
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.137.18:/home/pjw/linux/nfs/buildrootfs ip=192.168.137.20:192.168.137.18:192.168.1.1:255.255.255.0::eth0:off'
2. 修改用户信息
修改 /etc/profile 文件,设置:
PS1='[\u@\h]:\w$:'export PS1
修改完成后重启系统,查看效果。
转载地址:http://ckzi.baihongyu.com/