转自:王文松博客:http://blog.csdn.net/mybelief321/article/details/9896613
开发环境:Ubuntu 12.04
开发板:mini2440 256M NandFlash 64M SDRAM
交叉编译器:arm-linux-gcc 4.4.3 点此可下载
BusyBox版本:busybox-1.13.3 点此可下载
yaffs制作工具:mkyaffsimage
yaffs2制作工具:mkyaffs2image(适合64M)、mkyaffs2image-128(适合128M以上,我的256M的用这个)
接上一节:http://blog.csdn.net/mybelief321/article/details/9995199
1、首先,将咱们制作根文件系统的BusyBox和mkyaffs2image-128M存放在一个文件夹内,如下
2、执行命令:mkdir rootfs 建立一个文件夹rootfs,咱们的根文件目录将建立在这里,要记得这个目录的绝对路径奥,我的路径为/home/song/rootfs_make/rootfs,咱们在安装BusyBox的时候要使用这个路径。
配置BusyBox
3、执行命令:tar -zxf busybox-1.13.3.tar.gz 解压咱们的busybox (注意,该命令前边千万不要加sudo啊!)
4、BusyBox集合了几百个命令,在一般系统中并不需要全部使用。可以通过配置 BusyBox来选择这些命令、定制某些命令的功能(选项)、指定BusyBox的连接方法(动态连接还是静态连接)、指定BusyBox的安装路径。执行命令:cd busybox-1.7.0/ 进入该文件夹
5、执行命令:make menuconfig 进入图形配置界面。
6、下面仅介绍一些常用的选项,以后可以自己添加补全。
Busybox Settings --->
Busybox Library Tuning --->
[*] Fancy shell prompts
选择Facncy Shell prompts一项,这可以使我们在profile这个文件中设置的命令提示符PS1中的转义字符生效
7、指定是否使用静态连接
Busybox Settings --->
Build Options --->
[ *] Build BusyBox as a static binary (no shared libs)
这里选择静态链接,以静态链接的方式生成需要的命令!我按照韦老师上使用动态链接没有成功(注意,我在这里首先要真挚的道歉!!!括号里的话是我后加上去的,这里选择了静态链接,所以后面有一步像lib内加入库是没必要的,我在这一节做了纠正http://blog.csdn.net/mybelief321/article/details/10068293)
8、选择交叉编译工具
Busybox Settings --->
Build Options --->
() Cross Compiler prefix进入Cross Compiler prefix中编辑交叉编译工具前缀为arm-linux-,如下图
9、支持mdev。这可以很方便地构造 /dev目录,并且可以支持热插拔设备。另外,为方便调试,选中mount、umount命令,并让mount命令支持NFS(网络根文件系统)
Linux System Utilities --->
[*] mdev
[*] Support /etc/mdev.conf
[*] Support command execution at device addition/removal
[*] mount
[*] Support mounting NFS file systems
[*] umount
[*] Support option -a
以上这些选项默认都是选择的。
10、支持Initttab。
Init Utilities --->
[*] Support reading an inittab file
选择这一项,可以使我们放在/etc下的inittab这个文件被busybox 的init进程解析,如下图
以上这些选项,默认的好像都选上了!
11、配置完这些后,退出,选择YES保存
编译和安装BusyBox
12、执行命令:make 编译Busybox
出现下图,编译完成
友情提示:在这里不要随便使用sudo,我前边用的sudo makemenuconfig 、sudo vim Makefile 、sudo make结果出现了下边的提示错误,很可恶的!!!
13、执行命令:make CONFIG_PREFIX=/home/song/rootfs_make/rootfs install 将BusyBox安装到你创建的rootfs文件夹内
出现下图表示已经安装完成
14、执行命令:cd ../rootfs/ 进入咱们的rootfs文件夹内,可以看到BusyBox已经安装到了此目录,自动生成了/bin /sbin /usr linuxrc这4个目录和文件