使用busybox-1.17.2来制做文件系统linux
交叉编译工具:arm-linux-gcc-3.4.1 (已经导入到PATH环境变量中)工具
如下是具体步骤:oop
1.从busybox官方网站上下载busybox1.17.2网站
2.配置Busyboxthis
2-1.修改Makefile文件spa
进入busybox目录ip
将ARCH ?= $(SUBARCH) 修改成it
ARCH ?= armio
将CROSS_COMPILE ?= 修改成console
CROSS_COMPILE ?= arm-linux-
2-2,make menuconfig配置busybox选项,以下图所示:
3.编译前须要作的修改
3-1.在目录busybox-1.17.2下修改networking/interface.c文件,加入宏定义:
#define ARPHRD_INFINIBAND 32
该修改是为了解决在编译时出现的如下错误:
networking/interface.c:807: error: `ARPHRD_INFINIBAND' undeclared here (not in a function)
3-2.在目录busybox-1.17.2下修改networking/libiproute/ipaddress.c文件,加入对IFLA_OPERSTATE的条件编译,
以下图所示:
该修改是为了解决如下错误:
networking/libiproute/ipaddress.c:167: error: `IFLA_OPERSTATE' undeclared (first use in this function)
3-3..在目录busybox-1.17.2下修改networking/libiproute/iplink.c文件,加入对IFLA_LINKINFO的条件编译,
以下图所示:
该修改是为了解决如下错误:
networking/libiproute/iplink.c:...:error: `IFLA_LINKINFO' undeclared (first use in this function)
4.使用命令make install 命令进行编译和安装,完成后可在./_install目录下找到咱们须要的全部工具包
5. 如今开始制做文件系统,首先建立主目录rmdk,而后再rmdk目录下建立如下子目录:
bin sbin dev etc lib home root usr var proc mnt tmp sys
6.建立并编辑/etc/fstab文件,内容可以下:
proc /proc proc defaults 0 0 (最后那个0用于标记是否进行修复自检)
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
7.建立并编辑/etc/initab文件,内容可以下(可根据本身须要编写):
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::once:/usr/etc/rc.local
8.建立并编辑/etc/init.d/rcS文件,内容可以下:
mount -t tmpfs mdev /dev
mkdir /dev/pts
mount -t devpts devpts /dev/pts
mount -t sysfs sysfs /sys
mount -a
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
将rcS文件加上可执行权限,使用命令: chmod 777 rcS
9.建立基本的设备节点:
#mknod /dev/console c 5 1
#mknod /dev/null c 1 3
#mknod /dev/mem c 1 1
10.将busybox-1.17.2/_install目录下bin和sbin的文件拷贝到rmdk/bin和rmdk/sbin目录中。
11.在rmdk目录下建立指向rmdk/bin/busybox的符号连接linuxrc,命令以下:
#ln -s bin/busybox ./linuxrc
12.使用dd命令制做16M大小的ramdisk.img文件,具体命令是: #dd if=/dev/zero of=ramdisk.img bs=1M count=16 #mke2fs -F ramdisk.img #mkdir tmpmnt #mount -o loop ramdisk.img tmpmnt #cp -a rmdk tmpmnt #umount tmpmnt #rm -rf tmpmnt 至此,ramdisk.img文件系统制做完成