将上一篇博客中制作的根文件系统通过NFS挂载到开发板内核中,方便开发过程中修改程序文件。
1、 修改内核,使内核支持网络,使内核支持NFS以及NFS方式挂载根文件系统
a) 进入内核目录
b) #make menuconfig
c) General setup -> [ ]Initial RAM filesystem and RAM disk support(取消该项)
d) Device Drivers -> [*]Networkdevice support -> []Ethernet (10 or 100Mbit)
-><*>DM9000 support 选中
e) File systems -> [*]Network File Systems -><*>NFSclient support 以及后边的几个version 都选中
f) #make zImage 编译内核
g) #make modules 编译内核模块
h) #make modules_installINSTALL_MOD_PATH=(rootfs的路径) (安装编译完的内核模块)
i) cp arch/arm/boot/zImage /tftproot 将编译完的内核复制到tftp服务路径下
2、 修改u-boot 启动参数 bootargs
#setenv bootargs noinitrd console=ttySAC2,115200 init=/initroot=/dev/nfs nfsroot=192.168.2.254:/nfs_share/rootfs(nfs服务器地址:/rootfs路径)
ip=192.168.2.14:192.168.2.254:192.168.2.1:255.255.255.0::eth0:off
(ip=开发板启动后的IP:NFS服务器的IP:网关:子网掩码:主机名:开发板网卡:dhcp等服务开关等)
#saveenv
3、 配置虚拟机的nfs服务器
#rpm –qa | grep nfs
nfs-utils-1.0.9-16.el5
nfs-utils-lib-1.0.8-7.2
system-config-nfs-1.3.23-1.el5
如果以上软件包已经安装就可以直接配置,否则先安装nfs服务软件
#vim/etc/export
添加以下内容
/nfs_share/rootfs192.168.2.*(rw,sync,no_root_squash)
关闭iptables和selinux 后重启nfs服务
#servicenfs restart
完成后可以 在本机新建一个目录挂载一下试试,如果没有问题就可以上板子测试了。
4、 打开开发板电源,在出现U-boot信息后按下键盘任意键,进入u-boot的命令行界面
#tftp c0008000 zImage
#bootm zImage
以下为遇到的一些错误
(1)启动内核过程中出现如下情况
dm9000: read wrong id0x2b2a2928
dm9000 dm9000: read wrongid 0x2b2a2928
dm9000 dm9000: read wrongid 0x2b2a