本文基于:使用arm-poky-linux-gnueabi-编译busybox
busybox执行make install后 ,可以在安装目录下看到bin、sbin、usr三个目录和一个指向busybox可执行文件的软链接linuxrc
仅有 bin、sbin、usr 这 3 个目录和软链接 linuxrc,这是不足以构成一个可用的根文件系统
1、完善目录结构
mkdir dev etc lib proc sys tmp var
2、添加c库
(1)、查找动态库依赖:readelf -d busybox|grep NEEDED
```
$ readelf -d busybox|grep NEEDED
0x00000001 (NEEDED) 共享库:[libm.so.6]
0x00000001 (NEEDED) 共享库:[libresolv.so.2]
0x00000001 (NEEDED) 共享库:[libc.so.6]
```
(2)、在交叉编译工具里寻找动态库文件(libresolv.so.2 libc.so.6 libm.so.6) :如:find . -name libc.so.6
(3)、复制到lib
3、添加初始化配置脚本
在“/etc”目录下添加系统启动所需的初始化配置脚本,BusyBox 提供了一些初始化范
例脚本,在“examples/bootfloppy/etc/”目录下。将这些配置文件复制到busybox下的 “etc”
目录:
lin@ubuntu:~/workspace/imx6/OKMX6DL-C/linux-4/busybox-1.30.1/_install/etc$ ls
fstab init.d inittab profile
编辑inittab,注释掉tty2::askfirst:-/bin/sh
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
#tty2::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a -r
4、其他功能的增加
(1)、挂载sysfs等文件系统
sysfs是 Linux 内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与 proc 有些类似,但除了与 proc相同的具有查看和设定内核参数功能之外,还有为 Linux 统一设备模型作为管理之用。相比于 proc 文件系统,使用 sysfs导出内核数据的方式更为统一,并且组织的方式更好,它的设计从 proc 中吸取了很多教训。
打开etc/fstab默认内容如下
proc /proc proc defaults 0 0
发现目前系统启动后只挂在了proc文件系统。 Linux 2.6 以上内核的 sysfs 等都没有挂载
修改fstab文件内容如下:
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
本文参考:
https://blog.csdn.net/lp10031312/article/details/52588190