根文件系统制作 Busybox 1.7.0 交叉编译器为 gcc 版本 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
1.编译Busybox.
修改Busybox根目录的Makefile文件
(1)ARCH= arm
(2)CROSS_COMPILE=arm-linux-
然后执行make defconfig命令,编译Busybox。
2.安装Busybox
make CONFIG_PREFIX=dir_path install
patn是安装的路径,我的是/home/NFS/nfs/rootfs,
执行完成后,安装的文件夹就有如下文件/目录
bin linuxrc sbin usr
3安装glibc库
把glibc库中的动态库文件(*.so*)拷贝到根文件系统中的/lib库。
(1)在制作的根文件目录下面新建/lib。
(2)进入交叉编译工具链工具库的glibc库。
1)#cd /usr/local/arm/gcc-3.4.5-glibc-2.3.6/arm-linux/lib
将以下动态库拷贝到rootfs/lib下
执行命令 #cp *.so* /home/NFS/nfs/rootfs/lib
2)#cd /usr/local/arm/gcc-3.4.5-glibc-2.3.6/arm-linux/lib
将以下动态库拷贝到rootfs/lib下
#cp ./libstdc++.so.* rootfs/lib -a
4构建根etc目录(静态创建)
etc目录存放配置文件。
首先在制作的根文件系统下面新建一个etc目录
etc目录下面有3个文件
(1)inittab。该文件中的每一个条目用来定义一个子进程,并确定它的启动方法。
(2)init.d/rcS。是一个可执行的脚本文件,是系统启动后最先执行的命令。
(3)fstab。该文件定义了文件系统的静态信息。
首先新建initab,内容如下:
#/etc/inittab
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/bin/umount -a -r
其次创建init.d/rcS文件
#!/bin/sh
ifconfig eth0 192.168.1.114
mount -a
并且要把rcS文件改为可执行的
chmod +x etc/init.d/rcS
最后创建/etc/fstab文件,内容如下:
# device mount-point type options dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
5.构建dev目录。先采用静态创建。
新建dev文件夹,然后创建2个节点
sudo mknod console c 5 1
sudo mknod null c 1 3
6新建proc mnt tmp sys root文件夹