1 BusyBox初步编译
1.1 下载解压
1.2 BusyBox中文字符支持
- 修改 busybox 源码,取消 busybox 对中文显示的限制,打开文件 busybox-1.29.0/libbb/printable_string.c
- 修改文件 busybox-1.29.0/libbb/unicode.c
1.3 配置 busybox
1.4 编译BusyBox
- 配置好busybox 以后开始编译,我们可以指定编译结果的存放目录:
- 编译完成以后会在 busybox 的所有工具和文件就会被安装到 rootfs 目录中
2 Rootfs构建:
2.1 向根文件系统添加 lib
/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib
/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/lib
/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib
复制代码
- 向 rootfs 的“/lib ”目录添加库文件
- 向 rootfs 的“usr/lib ”目录添加库文件
- 至此,根文件系统的库文件就全部添加好了,可以使用“du”命令来查看一下 rootfs/lib 和rootfs/usr/lib 这两个目录的大小,命令如下
2.2 创建目录:如 dev、proc、mnt、sys、tmp 和 root 等
2.3 创建/etc/init.d/rcS
- rcS 是个shell脚本,Linux内核启动以后需要启动一些服务,而rcS就是规定启动哪些文件的脚本文件,在 rootfs 中创建/etc/init.d/rcS 文件。
第3行
,PATH 环境变量保存着可执行文件可能存在的目录第4行
,LD_LIBRARY_PATH环境变量保存着库文件所在的目录。第7行
,使用mount命令来挂载所有的文件系统,这些文件系统由文件/etc/fstab 来指定,所以我们一会还要创建/etc/fstab 文件。第11和12行
,使用 mdev 来管理热插拔设备,通过这两行,Linux内核就可以在/dev目录下自动创建设备节点。
2.4 创建/etc/fstab文件
2.5 创建/etc/inittab文件
近期评论