1:新建nfs目录以存放我们构建的根文件系统,因为通过nfs挂载根文件系统,更加方便调试工作;在/etc/exports文件中添加如下内容/home/zonda/linux/nfs *(rw,sync,no_root_squash)
2:解压busybox,设置架构与编译器
CROSS_COMPILE ?= /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- ..... ARCH ?= arm
3:配置busybox
make defconfig
4:生成根文件系统
make install CONFIG_PREFIX=/home/zonda/linux/nfs/rootfs
5:在生成的根文件系统下添加lib库 ,mkdir lib进入安装的交叉编译器的此目录里/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib;将此目录下所有的*so*和.a文件都拷贝到 rootfs/lib 目录中
cp *so* *.a /home/zonda/linux/nfs/rootfs/lib/ -d
这里面有个ld-linux-armhf.so.3是个软链接,不是真正的库文件,必须先移除掉,再复制才能成功复制
继续进入以下目录/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/lib
cp *so* *.a /home/zonda/linux/nfs/rootfs/lib/ -d
6:在生成的根文件系统添加/usr/lib库
进入以下目录/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib
cp *so* *.a /home/zonda/linux/nfs/rootfs/usr/lib/ -d
7:添加其他文件夹完成后,根问价系统大致有后面这几个文件夹bin dev lib linuxrc mnt proc root sbin sys tmp usr
8:创建/etc/init.d/rcS 文件,一定要给其可执行权限,一定要给其可执行权限,一定要给其可执行权限
#!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/usr/lib export PATH LD_LIBRARY_PATH runlevel mount -a mkdir /dev/pts mount -t devpts devpts /dev/pts echo /sbin/mdev > /proc/sys/kernel/hotplug mdev -s
9:创建/etc/fstab 文件
#<file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 tmpfs /tmp tmpfs defaults 0 0 sysfs /sys sysfs defaults 0 0
10: 创建/etc/inittab 文件
#etc/inittab ::sysinit:/etc/init.d/rcS console::askfirst:-/bin/sh ::restart:/sbin/init ::ctrlaltdel:/sbin/reboot ::shutdown:/bin/umount -a -r 7 ::shutdown:/sbin/swapoff -a