上次好像我们讲到了自己配的内核到挂在完nfs就挂掉了,提示是找不到init是吧~记得好像是,所以今天我们来解决掉这个问题,从新开始制作一个根目录文件系统。
这里不得不下载的就是busybox啦~这是木有办法的啦,谁叫这是神奇呢~又截止到我码下这些文字的时刻,2013/12/05晚上23:10分,busybox官网发布的最新版本是29 June 2013 -- BusyBox 1.21.1 (stable)
所以到busybox官网把busybox1.21.1下载下来
http://www.busybox.net/
然后tar解压出来~再再然后直接make menuconfig进入配置菜单
1.Busybox Settings --->Build Options --->
如下配置,编译成静态库,这样会省去一点麻烦,以后我们再编译成动态库的形式~
然后指定交叉编译器arm-linux-
2.Busybox Settings --->Installation Options --->
这里是编译busybox后的安装位置,这里最好不要选择默认的,我们把busybox的安装路径设置成nfs共享文件系统根目录的,比如说我是这样的设置:
3.其他暂时先保持默认~exit出来后就可以make -j2啦~
4.在make install busybox之前,首先创建根目录文件夹和根目录下系统常备的文件夹~您可以看一下您linux发行版的根目录下都有哪些文件夹~类似的,我也在根目录也创建这些文件夹~但是这里由于时间关系和不浪费您宝贵的时间,我直接贴出脚本来。
Creat file脚本文件,脚本不要用sudo去执行,后面你会知道错的
然后执行完脚本之后用管理员身份创建和复制几个文件
如果上面的脚本不能执行的话,就手动复制那些necessary files
然后,比如我建立的根目录是/home/chanfai/workspace/rootfs,那么busybox编译后的安装路径也是这个~
所以,现在可以切入busybox目录下make install,然后逐个逐个修改根目录的文件
1.etc/inittab,系统init进程配置文件,参考busybox源码example/inittab文件说明
Inittab配置
2.etc/init.d/rcS,系统启动加载项文件
rcS配置
3.etc/fstab 系统挂载文件系统列表文件,
Fstab配置
4.etc/profile用户环境配置文件
Profile配置
5.etc/sysconfig/HOSTNAME,填入自己的用户名字,我这里是chanfai
6.还有一点,为了必须某些bug,rootfs/lib目录要求某些动态库~其实就是交叉编译器里面的一些动态库,说明这个很费时间的,这里我是比较懒,从友善编译好的文件系统中直接抽出lib目录部分~
cp过去就行,记得带上-a参数保持软连接状态
好,文件系统暂时就这样先定,最后来一张图结束这一次的吐槽~