最简Linux根文件系统制作

  1. 下载busybox(https://busybox.net/),放入ubuntu,解压。
    这里写图片描述

  2. 修改顶层Makefile,加入编译器。
    最简Linux根文件系统制作_第1张图片

  3. make menuconfig 修改安装目录。
    最简Linux根文件系统制作_第2张图片

  4. make编译,make install安装到rootfs目录
    最简Linux根文件系统制作_第3张图片

  5. 查看busybox需要的动态链接库
    最简Linux根文件系统制作_第4张图片

  6. 在rootfs下创建lib文件夹
    最简Linux根文件系统制作_第5张图片

  7. 拷贝编译器的库到lib目录下(-a,软链接状态也复制了)
    这里写图片描述

这里写图片描述

注意:要将/usr/local/arm/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/libc下的lib文件夹下的内容全部复制,包括arm-linux-gnueabihf文件夹!!!!!!不按照这个目录结构复制的话,会导致库加载器加载不了动态链接库,程序无法执行。

最简Linux根文件系统制作_第6张图片

8.创建设备文件(拷贝ubuntu的dev目录,这样就不用自己一个个单独创建了),此步骤在添加使用mdev后不用操作!可保持dev目录为空。
最简Linux根文件系统制作_第7张图片

9.etc目录下的init启动脚本
最简Linux根文件系统制作_第8张图片

inittab文件
最简Linux根文件系统制作_第9张图片

最简Linux根文件系统制作_第10张图片

10.虚拟文件系统 proc sysfs tmpfs
最简Linux根文件系统制作_第11张图片

11.完善文件inittab
这里写图片描述

13.etc下创建init.d文件夹,创建rcS脚本(删除上面第九步的rcS),脚本内容如下:
最简Linux根文件系统制作_第12张图片

14.etc下创建hostname文件,内容如下:
这里写图片描述

15.etc下创建fstab文件
最简Linux根文件系统制作_第13张图片

16.etc下创建profile文件,因为inittab里会执行/bin/sh程序,在etc/init.d/rcS脚本执行完后,将在终端启动一个shell,shell启动过程会根据文件etc/profile配置登录环境
最简Linux根文件系统制作_第14张图片

17.etc下创建group与passwd文件
最简Linux根文件系统制作_第15张图片

18.最后的文件目录结构
最简Linux根文件系统制作_第16张图片

19.登陆使用界面截图
最简Linux根文件系统制作_第17张图片

这里显示nfs挂载是只读的,只要在uboot里的netargs写成root=/dev/nfs rw。rw就可以读写了,不再是只读了。

你可能感兴趣的:(最简Linux根文件系统制作)