日期:2014-05-16  浏览次数:20773 次

【嵌入式linux】(第四步):安装NFS服务,并挂载到开发板

1.前言

  由于嵌入式linux开发大多数使用的是交叉编译环境,难免很频繁的将文件在开发板和PC环境之间传递,最方便的当然是网络传递了,可以使用FTP,以及挂载NFS两种方式了,显然后者更为方便了。


2.NFS服务安装

   Ubuntu上默认是没有安装NFS服务器的,首先要安装NFS服务程序:

                      sudo apt-get install nfs-kernel-server

          (安装nfs-kernel-server时,apt会自动安装nfs-common和portmap)


3.NFS服务配置

  我只配置了/etc/exports这个文件

   NFS挂载目录及权限由/etc/exports文件定义。

                                               sudo gedit /etc/exports

    比如我是将我的 /home/cfan/nfs6410 目录让10.254.1.*的IP共享, 则在该文件末尾添加下列语句:

        /home/cfan/nfs6410 10.254.1.*(rw,sync,no_root_squash)

      然后保存退出。

      /home/cfan/nfs6410 就表示共享目录,当然,你可以随便换成自己喜欢的目录。

      10.254.1.*:前面三位是你主机(NFS客户端)的ip地址(本机终端ifconfig命令就可以获得本机的ip地址)。

      rw:读/写权限,只读权限的参数为ro;

      sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。

      no_root_squash:NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。

    


重启nfs服务  sudo /etc/init.d/nfs-kernel-server restart 


配置NFS后一定要重启NFS服务。


4.挂载目录到开发板

 查看PC端IP地址,终端中输入 ifconfig   ,比如我的IP是10.254.1.104

 


同样方法查看开发板的IP,但是一般情况下开发板的IP不在同一个网段,就需要修改了

在开发板的串口终端中输入  ifconfig eth0 10.254.1.108 netmask 255.255.255.0 up  ,我这里是将IP改为了10.254.1.108,这个按照你的实际情况修改


互相ping一下,看看是否联通了

PC -> OK6410


OK6410 -> PC


在开发板的终端中输入 mount -n -o nolock 10.254.1.104:/home/cfan/nfs6410/ /mnt/  ,这个看自己的实际挂载目录进行修改,但是前面的目录一定要和PC端的一样,我这里是将PC的/home/cfan/nfs6410/ 目录挂载到开发板的 mnt/目录下

PC端


开发板端查看


这样以后就可以在PC端开发,直接在开发板上面运行了,只要把文件复制到共享的目录中就可以了。


5.开发板启动自动设置

  大家的开发板是不是每次重启后IP都变了,还有就是每次都要挂载NFS是不是觉得很麻烦呢,我有个简单的方法,就是修改开发板的/etc/init.d/rcS这个启动文件。

在开发板的终端中输入 : vi /etc/init.d/rcS

在下图中的位置添加刚刚在上面用到的两条命令

ifconfig eth0 10.254.1.108 netmask 255.255.255.0 up
mount -n -o nolock 10.254.1.104:/home/cfan/nfs6410/ /mnt/


不会使用VI的最好先查查怎么用,只要几个简单的命令就可以了,

比如 i ,进入文本编辑模式

esc 退出文本编辑模式

:wq 保存并退出。


重启一下开发板看看,是不是已经自动挂载了NFS了。

PC端如果是用路由器DHCP分配IP,建议将IP固定,否则IP换了后开发板也无法连接到PC机的,路由器的静态IP绑定里面可以设置的。