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