一.在PC机上制作根文件系统(文件系统包括:目录和目录里面的文件,内核加载目录和文件的方式)
1.
mkdir rootfs
cd rootfs
mkdir bin etc dev lib proc sbin sys usr mnttmp var
mkdir usr/bin usr/lib usr/sbin lib/modules
2.
创建设备文件
(以下是linux启动的时候必要的两个文件)
cd rootfs/dev
mknod –m 666 console c 5 1
mknod –m 666 null c 1 3
3.
加入配置文件
tar xvzf etc.tar.gz(文件可下载:http://download.csdn.net/detail/yeyiliang/9846212)
cp etc/* rootfs/etc/ -rf
4.添加内核模块
进入到linux内核源码
make modules ARCH=armCROSS_COMPILE=arm-linux-
make modules_install ARCH=armINSTALL_MOD_PATH=../rootfs(路径根据自己的具体情况定)
5.编译和安装busybox(下载:http://download.csdn.net/detail/yeyiliang/9846211)
配置busybox make menuconfig
编译,安装。Make,makeinstall
二.arm linux内核配置NFS
1. make menuconfig ARCH=arm
2. 进入到genaeral set up
3. 将initial RAM filesystem and RAM disk 去掉
4. 然后退出进入到File System
5. 然后到 NET FILE SYSTEM
进入到net filesystem ,然后保证ROOT FILESYSTEM ON NET 是选中的。然后保存退出。
6. 然后编译内核make uImage ARCH=arm CROSS_COMPILE=arm-linux-(在OK6410的linux源码中可以直接 make zImage,编译完成后在arch/arm/boot 会看到zImage)
三.PC机上安装NFS服务器,并启动。
四.开发板uboot的设置。
1.开发板开机自动通过tftp从/tftpboot/下载zImage(具体的设置参考http://blog.csdn.net/yeyiliang/article/details/72453489)
2.在uboot中做NFS的相关配置
setenv bootargsnoinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.1.103:/home/yeyiliang/share/rootfsip=192.169.0.232:192.168.0.103:192.168.0.1:255.255.255.0::eth0:off
说明:192.168.1.103:/home/yeyiliang/share/rootfsPC机的IP地址和根文件系统所在的目录。192.169.0.232:192.168.0.103:192.168.0.1:255.255.255.0开发板的IP地址和PC机的IP地址,网关,子网掩码。