博客
关于我
【Linux系统移植】Buildroot 根文件系统构建
阅读量:192 次
发布时间:2019-02-28

本文共 1840 字,大约阅读时间需要 6 分钟。

Buildroot 配置指南

Buildroot 与 busybox 比较

在嵌入式系统开发中,Buildroot 和 busybox 是两种常用的构建工具。选择哪种工具取决于项目需求。

Buildroot 的优势

  • 功能全面:Buildroot 集成了众多常见的第三方库和软件,能够构建交叉编译工具链、根文件系统、uboot 以及 Linux 内核镜像。
  • 配置简单:相比于 yocto,Buildroot 的配置操作更为简单,类似于内核配置,容易理解,且编译要求及磁盘空间需求较小。

busybox 的特点

  • 用途有限:busybox 主要用于构建一些常用命令和文件,适合简单的系统需求。
  • 库文件支持:需要自行移植如 alsa、iperf、mplayer 等第三方软件的库文件。
  • 默认设置:默认没有用户名和密码,需要手动配置。

Buildroot 配置步骤

1. Buildroot 官方资源

  • 官网地址:buildroot.org
  • 使用版本:buildroot-2019.02.6.tar.bz2

2. 配置菜单

运行以下命令进入配置界面:

make menuconfig

3. 主要配置项

Target options

  • 目标架构:选择 ARM (little endian)
  • 目标格式:选择 ELF
  • 目标变体:选择 cortex-A7
  • 目标 ABI:选择 EABIhf
  • 浮点策略:选择 NEON/VFPv4
  • 指令集:选择 ARM

Toolchain

  • 工具链类型:选择 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/

    你可能感兴趣的文章
    Python3 查看 com 组件的属性
    查看>>
    python3 案例分享--发邮件
    查看>>
    python3 模板库_Python3 标准库概览_Python教程_我爱模板网 - 提供下载各种免费建站资源,免费网站模板,免费网页特效,让你爱上建站!...
    查看>>
    Python3 求最大/小值及索引值 Numpy
    查看>>
    python3+django使用celery执行某些任务失败的解决方案
    查看>>
    Python3+Requests+Unittest实战系列【一】
    查看>>
    python3+requests+unittest实战系列【一】
    查看>>
    python3+requests+unittest实战系列【二】
    查看>>
    Python3+Requests+Unittest实战系列【二】
    查看>>
    python3----ASCII
    查看>>
    Python3-selenium自动化测试框架,结合HTMLTestRunner测试报告!
    查看>>
    Python3-如何自我更新作为服务运行的应用程序
    查看>>
    Python3.1-网格模拟概念性问题
    查看>>
    Python3.12 解决conda环境libstdc++版本过低问题
    查看>>
    python3.2批量查询IP地址区域
    查看>>
    Python3.5中协程和未来/任务之间的区别?
    查看>>
    python3.5实现socket通讯(TCP)
    查看>>
    python3.6 ubuntu部署nginx、 uwsgi、 django
    查看>>
    Python3.6.3中,functools似乎不能用
    查看>>
    python3.6.5+cuda9+cudnn7.1+win10+tensorflow-gpu1.9.0下载配置
    查看>>