正点原子I.MX6ULL嵌入式Linux根文件构建

啥是根文件系统

根文件系统一般叫做rootfs。根文件系统的这个“根”字就说明了这个文件系统的重要性,它是其他文件系统的根,没有这个“根”,其他的文件系统或者软件就别想工作。比如我们常用的 ls、mv、ifconfig 等命令其实就是一个个小软件,只是这些软件没有图形界面,而且需要输入命令来运行。这些小软件就保存在根文件系统中。

使用BusyBox构建根文件系统

BusyBox 是一个集成了大量的 Linux 命令和工具的软件,像 ls、mv、ifconfig 等命令 BusyBox 都会提供。BusyBox 就是一个大的工具箱,这个工具箱里面集成了 Linux 的许多工具和命令。一般下载 BusyBox 的源码,然后配置 BusyBox,选择自己想要的功能,最后编译即可。

  • 下载源码并修改,官网地址是https://busybox.net/
mkdir rootfs
tar -vxjf busybox-1.29.0.tar.bz2

1.修改Makefie

# 第164行改为如下内容
CROSS_COMPILE ?= /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
# bbox: we may have CONFIG_CROSS_COMPILER_PREFIX in .config,
# and it has not been included yet... thus using an awkward syntax.
ifeq ($(CROSS_COMPILE),)
CROSS_COMPILE := $(shell grep ^CONFIG_CROSS_COMPILER_PREFIX .config 2>/dev/null)
CROSS_COMPILE := $(subst CONFIG_CROSS_COMPILER_PREFIX=,,$(CROSS_COMPILE))
CROSS_COMPILE := $(subst ",,$(CROSS_COMPILE))
#")
endif

2.修改文件busybox1.29.0/libbb/printable_string.c

32/* 注释掉下面这个两行代码 */
33 /* if (c >= 0x7f)
34 break; */

47 /* 修改下面代码 */
48 /* if (c < ' ' || c >= 0x7f) */
49 if( c < ' ')

3.修改busybox-1.29.0/libbb/unicode.c

1022 /* 修改下面一行代码 */
1023 /* *d++ = (c >= ' ' && c < 0x7f) ? c : '?'; */
1024 *d++ = (c >= ' ') ? c : '?';

1032 /* 修改下面一行代码 */
1033 /* if (c < ' ' || c >= 0x7f) */
1034 if(c < ' ')

3.配置busybox
输入命令make menuconfig打开图形化配置。
图形化配置配置项如下:

1.Location: 
 -> Settings 
-> Build static binary (no shared libs)
取消选中“Simplified modutils”
2.Location: 
-> Settings 
-> vi-style line editing commands
 选择“vi-style line editing commands ”
3.Location: 
-> Linux System Utilities 
 -> mdev (16 kb) //确保下面的全部选中,默认都是选中的
4.Location: 
 -> Settings
 -> Support Unicode //选中
-> Check $LC_ALL, $LC_CTYPE and $LANG environment variables //选中

4.编译busybox

make
# 指定编译结果的存放目录
make install CONFIG_PREFIX=/home/sml/linux/nfs/rootfs

如上流程,就可以构建一个初级rootfs,目前还不能使用,需要一些其他文件继续完善rootfs。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值