一、busybox的编译
首先是交叉编译设置,打开busybox根目录下的Makefile,进行修改
[attach]220792[/attach]
一般情况下,为了让busybox能够独立于其他的库文件而可以单独运行,需要将busybox编译成静态的。
#make menuconfig
Busybox Settings --->
Build Options --->
Build BusyBox as a static binary (no shared libs) //静态
Installation Options --->
Don't use /usr //make install的时候不会安装到根目录,而是安装到./_install
Linux System Utilities --->
mdev //相当于udev
Support /etc/mdev.conf
Support command execution at device addition/removal
Shells --->
Choose your default shell (msh) //具有ash没有的功能,比如支持tab补齐,历史纪录等等的高级功能
而编译成静态的分为glibc和uclibc,如果系统没有安装uclibc的话,那就会报下面的错
[attach]220793[/attach]
解决办法是打开 applets/applets.c 将其中的错误注释掉
[attach]220794[/attach]
其他的busybox选项根据需要进行选择!
#make
#make install
这样就在./_install目录下生成了busybox
[attach]220795[/attach]
二、ramdisk文件系统生成
[attach]220796[/attach]
上图中首先创见了一个10M的文件系统映象
然后使用losetup命令将此镜像与块设备/dev/loop0进行挂接
如果出现"ioctl: LOOP_SET_FD:设备或资源忙",说明/dev/loop0设备还和一文件联系,可用losetup /dev/loop0查看地,并可用-d 删除
[attach]220797[/attach]
上图是用命令mke2fs来格式化此块设备/dev/loop0,其实就是格式化我们刚生成的那个文件系统镜像,ext2格式
[attach]220798[/attach]
上图是挂载文件系统镜像,可见经过刚才格式化之后的文件系统镜像里面只有lost+found这个文件夹
之后可以将步骤一中生成的_install目录下的所有文件拷贝进来即可,
/et/init.d/rcS文件如下修改
[attach]220799[/attach]
其他的系统配置文件可以根据需要进行更改
[1] [2] [3] [4] [5] 下一页