网上有和多此类的文章,找到的都不是很完整,我根据自己实际测试的经验在次,整理了一份,希望能给需要者提供一份帮助,同时也是自己做份记录,以便今后只需。
转载请说明出处:liwenjin.blog.chinaunix.net 谢谢!!
1.首先是到官网下载busybox,下载自己需要的版本。
2.解压
3.进入源码目录
4.make menuconfig
编译选项中选择[*]BUILD BUSYBOX AS A STATIC BINARY
添加交叉编译工具链的前缀(如:arm-none-linux-gnueabi-)Cross Compiler prefix
5.编译 make
6.安装 默认安装在源码目录下_install,
7.进入_install查看是否有bin dev linuxrc sbin usr
8.mkdir 其他需要的目录 (如 dev etc mnt proc var tmp sys root )
9.拷贝 自己的交叉编译工具链的相关库文件。
如cp /home/lwj/toolchain/arm-none-linux-gnueabi/lib ./
10.删除lib下的所有目录,.o .a 文件
11.对库进行瘦身减小文件系统的大小 arm-none-linux-gnueabi-strip lib/*
12 .添加启动文件
在etc下添加inittab文件
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
在etc下添加文件fstab ,内容为
#device mount-point type options dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs default 0 0
tmpfs /dev tempfs default 0 0
挂在文件系统有三个proc sysfs tmpfs 内涵中默认支持前两种,末者需要我们在内核中添加
进入内核源码makeconfig后在FIle System中选中Tmpfs POSIX Access Control LIsts
重新编译内核,由于此篇主要是讲解文件系统的制作,具体如何配置内核系统就不做细讲,此类文章网络上很多,需要者自行去搜索。
接下来在etc下创建init.d 目录,并在其下创建rcS文件,内容为
#!/bin/sh
/bin/mount -a
保存后要对该文件添加可执行权限
然后还要在etc下添加profile文件,内容:
#!/bin/sh
export HOMENAME=LWJ (此处可自己更改,LWJ是以我名字首字母来写的)
export USER=root
export HOME=root
export PS1 ="[$USER@HOMENAME\W]\#"
PATH=/bin"/sbin:/usr/bin:/usr/sbin
LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH
export PATH LD_LIBRARY_PATH
13 最后根文件系统有一个设备节点是必须的
mknod dev/console c 5 1
14之后就可以拷贝_install 下的所有文件到nfs目录下进行测试了
cp _install /source/rootfs -a
本篇文章只是提供制作过程的步骤,具体每个步骤里面实际是做什么用的就没有展开,不理解的可以自己查找相关资料,此外本篇文章主要是面向初学者,高手们可飘过。若有不对的地方请大家提出一起学习。
转载请说明出处:liwenjin.blog.chinaunix.net 谢谢!!