3. 制作根文件系统
3.1. 配置
3.1.1. 拷贝源码,并解压
[root@localhost test]# cp ../LS1B/busybox-1.19.2-default.tar.gz ./ l[root@localhost test]# ls
1b-linux-3.0-d8b47bb 1b-linux-3.0-d8b47bb.tar.gz busybox-1.19.2-default.tar.gz [root@localhost test]# tar -zxf busybox-1.19.2-default.tar.gz [root@localhost test]# ls
1b-linux-3.0-d8b47bb busybox-1.19.2-default 1b-linux-3.0-d8b47bb.tar.gz busybox-1.19.2-default.tar.gz [root@localhost test]# cd busybox-1.19.2-default
6
[root@localhost busybox-1.19.2-default]#
和linux内核一样,通过执行make menuconfig来配置,输入后回车如下图所示
3.1.2. 配置选项简述
Busybox Settings --->
Build Options --->
[*] Build BusyBox as a static binary (no shared libs)
(/opt/GCC/gcc-3.4.6-2f/bin/mipsel-linux-) Cross Compiler prefix (交叉编译器的绝对路径前缀,根据自己情况修改) Busybox Library Tuning --->
[*] vi-style line editing commands [*] Fancy shell prompts
Init Utilities --->
[*] init
[*] Support reading an inittab file
[*] Run commands with leading dash with controlling tty [*] Support running init from within an initrd (not initramfs) Miscellaneous Utilities --->
[ ] ionice [ ] ubiattach [ ] ubidetach [ ] ubimkvol [ ] ubirmvol [ ] ubirsvol [ ] ubiupdatevol
7
3.2. 编译
执行make
[root@localhost busybox-1.19.2-default]# make 执行完后,如下
然后执行make install
[root@localhost busybox-1.19.2-default]# make install
8
已经把需要的东西放到当前目录的_install下
然后在这基础上制作根文件系统
3.3. 构建根文件系统 3.3.1. 建立系统根目录
[root@localhost nfsramdisk]# mkdir LS1B [root@localhost nfsramdisk]# cd LS1B [root@localhost LS1B]# ls
[root@localhost LS1B]# mkdir dev home proc tmp var etc lib mnt sys usr etc/rc.d root var/log [root@localhost LS1B]# ls
dev etc home lib mnt proc root sys tmp usr var [root@localhost LS1B]#
3.3.2. 建立设备文件
建立console和串口设备文件
[root@localhost LS1B]# mknod -m 600 dev/console c 5 1 [root@localhost LS1B]# mknod -m 600 dev/ttyS2 c 4 66 [root@localhost LS1B]#
9
3.3.3. 建立系统配置文件
注意:以下的配置文件不是在开发主机的根目录下创建的。
3.3.3.1. 添加etc/inittab文件
[root@localhost LS1B]# vim etc/inittab
::sysinit:/etc/rc.d/rc.sysinit // 指定系统启动后首先执行的文件 #Example of how to put a getty on a serial line(rot a terminal)
ttyS2::respawn:~/bin/sh #no login(启动后进入shell) #::respawn:/sbin/getty -L ttyS2 115200 vt100 #use login #tty::respawn:~/bin/sh
#Stuff to do when restarting the init process ::restart:/sbin/init
#Stuff to do before rebooting
::ctrlaltdel:/sbin/reboot // 捕捉ctrl+alt+del键,重启文件系统 ::shutdown:/bin/umount -a -r // 当关机时卸载所有文件系统 ::shutdown:/sbin/swapoff -a ~ ~
\新] 14L, 553C 已写入 [root@localhost LS1B]#
3.3.3.2. 新建etc/rc.d/rc.sysinit文件
[root@localhost LS1B]# vim etc/rc.d/rc.sysinit
#!/bin/sh
#Set binary path
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
#Config dev environment
mount -t tmpfs -o size=64k,mode=0755 tmpfs /dev mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
#mknod -m 600 /dev/console c 5 1 #mknod -m 600 /dev/ttyS2 c 4 66
#mount all filesystem defined in /etc/fstab
10