之前使用cramfs或yaffs作为根文件系统,开发起来很不方便,需要修改一点文件都要重新烧写nand,在开发时推荐挂载虚拟机下的nfs分区作为根文件系统。
NFS文件系统可以虚拟pc机的一个目录作为嵌入式linux的文件系统,非常适合开发时使用:

1)首先要能够正确配置虚拟机的NFS服务,将文件系统放在虚拟机/NFS目录里。
我们提供的虚拟机已经配置好了,新安装虚拟机配置见附录。

2)IP分配:
虚拟机采用桥接模式设置IP!见参考文章2
主机XP:192.168.0.1
SEP4020开发板:192.168.0.2
vmware虚拟机Linux:192.168.0.3


3)正确设置u-boot的启动参数(如果有兴趣可以学习一下Linux传参机制和参数的含义):

set bootargs root=/dev/nfs rw nfsroot=192.168.0.3:/nfs ip=192.168.0.2:192.168.0.3:255.255.255.0 console=ttyS0,115200 mem=32mb



4)Linux内核要支持NFS分区,编译时在File system里面选择,我们提供的SEP4020 Linux2.6.16已经选好了;

5)加载vmlinux.img,才能从u-boot里正确传递信息,zimage不可以;

启动时出现若出现如下信息,说明加载成功: 
   
IP-Config: Guessing netmask 255.255.255.0 
   
IP-Config: Gateway not on directly connected network. 
   
Looking up port of RPC 100003/2 on 192.168.0.3 
   
Looking up port of RPC 100005/1 on 192.168.0.3 
   
VFS: Mounted root (nfs filesystem). 
   
Mounted devfs on /dev 
   
Freeing init memory: 104K 
   
init started: BusyBox v1.9.2 (2008-08-15 10:15:54 CST) 
   
starting pid 701, tty '': '/etc/init.d/rcS' 
   

******************************** 
   
SEU 4020 ARM Linux-2.6.16     
   
******************************** 
   

# mount all........... 
   
# Starting mdev......... 
   
starting pid 709, tty '': '/bin/sh' 
   
/ #




附录 NFS分区挂载及使用方法

[技术]
为何要挂载NFS分区?
答:可以将PC机的一个目录虚拟,通过网络共享给2410开发板载linux使用,省去了将程序烧入flash的烦恼

介绍下如何挂载NFS分区
准备工作
1)安装nfs-kernel-server 
ubuntu下执行apt-get install nfs-kernel-server
2)在根目录建立nfs文件夹,也可以建立在其他地方
3)Linux的IP为192.168.0.3
4) 开发板的IP为192.168.0.2

开始
1)修改 /etc/exports文件

添加以下内容 
   

/nfs 192.168.0.2(rw,sync,no_root_squash) 
   

2)在终端中执行以下指令 
   
#exportfs -rav 
   

# '/etc/init.d/nfs-kernel-server' restart



第二条指令我是把那个文件拖到终端上才能执行的,奇怪

返回如下

* Stopping NFS kernel daemon                                                                                  [ OK ]  
   
* Unexporting directories for NFS kernel daemon...                                                             [ OK ]  
   
* Exporting directories for NFS kernel daemon...                                                                      exportfs: /etc/exports [2]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.1.241:/nfs". 
   
Assuming default behaviour ('no_subtree_check'). 
   
NOTE: this default has changed since nfs-utils version 1.0.x 
   

                                                                                                               [ OK ] 
   
* Starting NFS kernel daemon                                                                                  [ OK ]  
   
root@kyon-desktop:/etc/init.d#



NFS服务启动完毕

3)进入开发板控制台操作

输入 
   
mount -t nfs -o nolock 192.168.0.3:/nfs /tmp



意思是把nfs目录虚拟到开发板的tmp目录中
如果没有错误提示,恭喜你成功了
去看看tmp目录有没有原来nfs目录里的东西吧,比如我就在nfs目录里建立了一个helloworld文体

4)结束挂载,使用命令
umount /tmp




其他参考文章:

1)[NFS]VM虚拟机下挂载NFS分区
http://hi.baidu.com/aokikyon/blog/item/a6b418f58a1ffe23bd3109e1.html
2) [ubuntu]如何在VM虚拟Ubuntu中同时使用双网卡