准备:首先在你的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