最小Linux文件系统

本文基于:使用arm-poky-linux-gnueabi-编译busybox
busybox执行make install后 ,可以在安装目录下看到bin、sbin、usr三个目录和一个指向busybox可执行文件的软链接linuxrc
make install后生成文件
仅有 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

你可能感兴趣的:(嵌入式linux学习,linux)