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

2019-07-12 15:26发布

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绑定里面可以设置的。