主要记录下如何在ARM开发板上挂载NFS文件系统。
PC主机:Ubuntu9.10
目标板:FL2440开发板,Linux内核2.6.12
ubuntu主机上
配置ubuntu网络使用桥接方式连接,具体方法查看:http://www.jianshu.com/p/ac2b423a0599
安装nfs服务
sudo apt-get install nfs-kernel-server
sudo apt-get install portmap nfs-common-
编辑/etc/exports文件,建立共享文件夹,我将/work/nfs_root/文件夹设为共享文件夹,/etc/exports中添加如下内容
/work/nfs_root * (rw,sync,no_root_squash)
4.启动NFS服务
sudo /etc/init.d/nfs-kernel-server start
sudo /etc/init.d/portmap start
NOTE:确保每次Ubunu重启时都要启动这两个服务,否则NFS根文件不能挂载
FL2440开发板设置
-
首先确保arm板上移植的内核开启了网络文件系统
配置开发板Linux内核,开启NFS客户端,如下界面所示,可能有的配置界面不同,具体设置:File system → Network File System → NFS client support;注意配置完之后,要将编译后的内核重新烧写进开发板
连线
将FL2440通过直通网线连接到路由器(注意:不是连接电脑,我使用的是笔记本,笔记本使用无线网络连接)启动FL2440,linux运行后,设置IP地址
设置板子上的ip与ubuntu虚拟主机的IP在同一个网段,设置完成后,ping ubuntu虚拟主机,看是否能ping通,如果不能ping通,则查看ubuntu的网络连接是否为桥接方式,并且要保证ubuntu能联网设置共享文件夹
使用如下命令:
mkdir /mnt/nfs挂载NFS文件系统
FL2440的板子上执行命令:
mount -o nolock 192.168.1.99:/work/nfs_root /mnt/nfs
这条语句可以理解为将ip地址为192.168.1.99的/work/nfs_root目录中的内容共享到FL2440开发板中linux系统的/mnt/nfs目录下
注意: FL2440的ip地址为192.168.1.111,ubuntu主机的ip地址为192.168.1.99通过FL2440访问ubuntu上的内容
在FL2440上进入 /mnt/nfs目录就可以看到ubuntu上/work/nfs_root目录下的内容,如果需要传输文件到FL2440板上,则可以将文件放到ubuntu的/work/nfs_root目录下让平台启动的时候自动挂载
分为两步,设置IP地址和设置NFS自动挂载设置IP地址
在/etc/init.d/rcS文件中设置ip地址为192.168.1.111,在文件中添加下面的内容,如果文件中有设置eth0的ip,那么将IP更改为192.168.1.111
/sbin/ifconfig eth0 192.168.1.111 up-
设置自动挂载
同样是在/etc/init.d/rcS文件中的最后一行添加如下内容:echo "mount host matchine to platform dir /mnt/ ..." mount -t nfs -o nolock 192.168.1.99:/work/nfs_root/ /mnt/
这样在FL2440启动后,就可以自动挂载NFS文件系统了
几个注意点
- 要确保移植到ARM板上的linux内核开启了NFS网络文件系统
- 虚拟机要使用桥接方式,根据文章开头提到的教程进行设置
- 这里面说的IP地址要根据电脑配置的实际情况进行更改,只要是电脑主机IP(win7)、虚拟机中ubuntu的IP和FL2440的IP在同一个网段即可**
- 之前将FL2440通过网线连接到电脑上始终ping不通,后来将FL2440通过直通网线连接到路由器上就ping通了,之后一切正常,我的PC使用的是无线网络,注意:这里有的教程上说是将ARM板连接到电脑,不知道具体怎么操作