博客
关于我
【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/

    你可能感兴趣的文章
    Openlayers高级交互(3/20):动态添加 layer 到 layerGroup,并动态删除
    查看>>
    Openlayers高级交互(6/20):绘制某点,判断它是否在一个电子围栏内
    查看>>
    Openlayers高级交互(7/20):点击某点弹出窗口,自动播放视频
    查看>>
    Openlayers高级交互(8/20):选取feature,平移feature
    查看>>
    Openlayers:DMS-DD坐标形式互相转换
    查看>>
    openlayers:圆孔相机根据卫星经度、纬度、高度、半径比例推算绘制地面的拍摄的区域
    查看>>
    OpenLDAP(2.4.3x)服务器搭建及配置说明
    查看>>
    OpenLDAP编译安装及配置
    查看>>
    Openmax IL (二)Android多媒体编解码Component
    查看>>
    OpenMCU(一):STM32F407 FreeRTOS移植
    查看>>
    OpenMCU(三):STM32F103 FreeRTOS移植
    查看>>
    OpenMCU(三):STM32F103 FreeRTOS移植
    查看>>
    OpenMCU(二):GD32E23xx FreeRTOS移植
    查看>>
    OpenMCU(五):STM32F103时钟树初始化分析
    查看>>
    OpenMetadata 命令执行漏洞复现(CVE-2024-28255)
    查看>>
    OpenMMLab | S4模型详解:应对长序列建模的有效方法
    查看>>
    OpenMMLab | 【全网首发】Llama 3 微调项目实践与教程(XTuner 版)
    查看>>
    OpenMMLab | 不是吧?这么好用的开源标注工具,竟然还有人不知道…
    查看>>
    OpenMMLab | 面向多样应用需求,书生·浦语2.5开源超轻量、高性能多种参数版本
    查看>>
    OpenMP 线程互斥锁
    查看>>