i.MX6ULL终结者Linux文件系统的构建BusyBox构建根文件系统

本文详细介绍了如何使用BusyBox构建Linux根文件系统,包括获取BusyBox源码、配置编译和创建必要的目录及添加库文件。通过修改BusyBox源码以支持中文显示,并指导读者进行menuconfig配置,最终完成根文件系统的构建。
摘要由CSDN通过智能技术生成

制作根文件系统有专门的工具可以使用,叫做BusyBox,BusyBox是标准Linux工具的一个单个可执行实现。BusyBox包含了一些简单的工具,例如cat和echo,还包含了一些更大、更复杂的工具,例如grep、find、mount以及telnet。有些人将BusyBox称为Linux工具里的瑞士军刀.简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令。在本节我们使用BusyBox来制作一个根文件系统。

1 获取BusyBox源码

BusyBox可以从官网下载,官网地址为:https://busybox.net/,如图 1.1所示:
在这里插入图片描述

图 1.1

在官网左侧的“Get BusyBox”栏有一行“Download Source”,点击“Download Source”即可打开BusyBox的下载页,如图 1.2所示:
在这里插入图片描述

图 1.2

在这里插入图片描述

图 1.3

从上图可以看出,目前最新的BusyBox 版本是 1.31.1。大家可以选择其中的一个版本下载使用。不过还是建议大家使用我们提供的1.29.0 版本的 BusyBox。目前测试还没有出现任何问题。BusyBox源码路径:i.MX6UL终结者光盘资料/06_Linux驱动例程/第三方库源码/busybox-1.29.0.tar.bz2。准备好源码之后就可以构建根文件系统了。

32.3.2 编译BusyBox构建根文件系统

将准备好的BusyBox源码上传到Ubuntu虚拟机下并解压。使用下列命令解压:
tar -xvf busybox-1.29.0.tar.bz2
解压完成后得到busybox-1.29.0目录,如图 2.1所示:
在这里插入图片描述

图 2.1

下面几个步骤开始配置busybox源码并编译。
1、指定平台和交叉编译工具
打开 busybox 的顶层 Makefile,修改CROSS_COMPILE(第164行)和ARCH(第190行)的值,如下所示:
164 CROSS_COMPILE ?= /usr/local/arm/gcc-linaro-4.9.4-2017.01-
x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-

190 ARCH ?= arm
2、修改Busybox源码,支持中文
直接编译busybox源码,使用串口电脑终端时中文显示不正常。需要修改busybox源码,取消busybox 对中文显示的限制。
修改文件:busybox-1.29.0/libbb/printable_string.c,找到函数 printable_string,修改如下:

12 const char* FAST_FUNC printable_string(uni_stat_t *stats, const char *str) 
13 {
    
14         char *dst; 
15         const char *s; 
16 
17         s = str; 
18         while (1) {
    
...... 
30         if (c < ' ') 
31           break; 
32         /* 注释掉下面这个两行代码 */ 
33         /* if (c >= 0x7f) 
34             break; */ 
35         s++; 
36 } 
37 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值