准备:首先在你的Linux上确定nfs挂载没问题,然后设置好你要挂载nfs的目录:

vi打开/etc/exports,末尾添加  /opt/EmbedSky/root_nfs *(rw,sync,no_root_squash)

                               注释:/opt/EmbedSky/root_nfs:要共享的目录

                                         * :允许所有的网段访问

                                         rw :读写权限

                                         sync:资料同步写入内在和硬盘

                                         no_root_squash:nfs客户端共享目录使用者权限

重启服务:

#sudo /etc/init.d/portmap restart                      //重启portmap
 #sudo /etc/init.d/nfs-kernel-server restart       //重启nfs服务
 #showmount -e                                                  //显示共享出的目录

其次,你要把TQ2440制作的根文件系统root_qtopia_2.2.0_2.6.30.4_20100601.tar.bz2解压到root_nfs目录下(如果高手的话,自己制作根目录也行)。

TQ2440制作的根文件系统要修改一个地方,

修改文件系统/etc/init.d/rcS   (此rcS为共享文件系统目录下,不是虚拟机Linux目录下的)
#net_set &                              //注释掉

1.OK,接下来要弄开发板了,首先连接好开发板,接上电源,然后把开发板拨到nfs启动。通过超级终端可以看到下面内容:

##### EmbedSky BIOS for SKY2440/TQ2440 #####
 Press Space key to Download Mode !#####    Boot for Nor Flash Main Menu   #####
 #####     EmbedSky USB download mode     ##### [1] Download u-boot or STEPLDR.nb1 or other bootloader to Nand Flash
 [2] Download Eboot (eboot.nb0) to Nand Flash
 [3] Download Linux Kernel (zImage.bin) to Nand Flash
 [5] Download CRAMFS image to Nand Flash
 [6] Download YAFFS image (root.bin) to Nand Flash
 [7] Download Program (uCOS-II or TQ2440_Test) to SDRAM and Run it
 [8] Boot the system
 [9] Format the Nand Flash
 [0] Set the boot parameters
 [a] Download User Program (eg: uCOS-II or TQ2440_Test)
 [b] Download LOGO Picture (.bin) to Nand  Flash
 [l] Set LCD Parameters
 [n] Enter TFTP download mode menu
 [o] Download u-boot to Nor Flash
 [r] Reboot u-boot
 [t] Test Linux Image (zImage)
 [q] quit from menu
 Enter your selection:

2.接着我们选择0,设置启动参数。按0选项后,进入如下:

##### Parameter Menu #####
 [1] Set NFS boot parameter
 [2] Set Yaffs boot parameter
 [3] Set parameter
 [4] View the parameters
 [d] Delete parameter
 [s] Save the parameters to Nand Flash
 [q] Return main Menu
 Enter your selection:

我们选1,进入NFS参数设置。

设置内容如下:

Enter your selection: 1
 Enter the PC IP address:(xxx.xxx.xxx.xxx)
 192.168.1.133                                                       //你的linux上的IP
 Enter the SKY2440/TQ2440 IP address:(xxx.xxx.xxx.xxx)
 192.168.1.6                                                           //你的开发板IP
 Enter the Mask IP address:(xxx.xxx.xxx.xxx)
 255.255.255.0                                                      //子网掩码
 Enter NFS directory:(eg: /opt/EmbedSky/root_nfs)
 /opt/EmbedSky/root_nfs                                    //你的linux上设置的nfs挂载目录

然手确定,选s保存,然后再选q退出。接着按8启动系统。呵呵,接着你就可以看到系统进入一个你熟悉的界面了。

-------------------------

注意问题:1.首先要确定能ping的通;2.确定nfs有启动;3.确定nfs挂载的目录没写错。

另一位大牛总结的注意点

step1:

在使用nfs服务前,我们需要先关闭伟大的防火墙要不然有可能失败。

指令:  ufw disable 
step2:

安装nfs,有人说ubuntu12.04已经安装了最新版的,我不信,所以我要试试。。。

指令:sudo apt-get install nfs-kernel-server

step3:

打开/etc/exports文件,在末尾加入: /home/daysmark/nfsdir *(rw,sync,no_root_squash)

注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定义,各字段含义如下:

/home/daysmark/nfsdir:要共享的目录

* :允许所有的网段访问

rw :读写权限

sync:资料同步写入内在和硬盘

no_root_squash:nfs客户端共享目录使用者权限

重启服务:
#sudo /etc/init.d/portmap restart                      //重启portmap
#sudo /etc/init.d/nfs-kernel-server restart       //重启nfs服务
#showmount -e                                                  //显示共享出的目录

step4:

现在可以在本机上试一下:
#sudo mount -t nfs 192.168.0.149: /home/daysmark/nfsdir /mnt

注:192.168.0.149为本机linux的IP地址

这样就把共享目录挂到了/mnt目录,不信?你touch一个文件到nfsdir里,然后cd到/mnt下你看看有木有。^_^

取消挂载用这个指令:
#sudo umount /mnt

如果用在嵌入式设备上挂载,要加上参数-o nolock

我在开发板上使用的挂载命令:

mount -t nfs 192.168.0.149:/home/daysmark/nfsdir /mnt  -o nolock

每次挂在都需要输入这么长的命令?  写个脚本吧!

echo "mount? [yes|no]"
read project_no
 if [ $project_no = "yes" ];then
 echo "mount nfs -> /mnt"
 mount -t nfs 192.168.0.149:/home/daysmark/nfsdir /mnt -o nolock
 elif [ $project_no = "no" ];then
 umount /mnt
 echo "unmount from /mnt"
 else echo "error please input yes or no"
 fi