rootfs制作日记(启动采用 System v init)
一.制作环境
PC环境: Red Hat Enterprise Linux 4
嵌入设备CPU体系:s3c2410
交叉工具:arm-linux-
需要的源代码:
BusyBox 1.1.3.tar.bz2 bash-3.2.tar.bz2 sysvinit-2.86.tar.bz2
文件夹路径:
/home/codes/ 存放要编译的代码
/home/rootfs/ 要制作的rootfs
二.移植步骤
1. 移植busybox
(1)解压 BusyBox 1.1.3.tar.bz2 到/home下
(2)修改Makefile文件 设置好交叉编译工具
ARCH ?=arm
CROSS_COMPILE ?=arm-linux-
(3)行make menuconfig,然后进行设置(只是列举关键选项,其他自己选择)
图1
如图1在General Configuration中,一定要选择“Support for devfs”选项,现在的Busybox新版本去掉了这个选项,不过应该可以通过修改配置文件加入。
图2
如图2在Build Options选项中,选择使用“静态库”以及设置交叉编译工具的PREFIX。
(实际中可以采用动态库,我后来采用的动态库,使得busy box的更小)
图3
如图3 在Linux System Utilities选项中,“Support loopback mounts”和“Support for the old /etc/mtab file”2个选项应该选中。
图4
如图4:在Init Utilities选项中,“Support reading an inittab file”应该选中,这样可以根据自己编写的inittab文件初始化;“Support running commands with a controlling-tty”应该选中,否则会提示非常困扰的“/bin/sh: can't access tty; job control turned off”的提示,尽管可以进入控制台命令行。
(其实如果采用自己的 system v init 完全可以不选这个)
图 5
如图5:在Shell选项中,应该选中默认shell:ash,否则不会生成sh,导致不能解释脚本文件。<