OK6410挂载nfs文件系统 (实现网络文件共享)

来源:互联网 发布:windows怎么修改图标 编辑:程序博客网 时间:2024/05/21 06:47

NFS就是网络文件系统,用NFS可以实现把宿主机的目录挂载到开发板上,这样用宿主机进行交叉编译时就不用用USB或者SD卡将编译好的文件拷贝到开发板上运行了.

1.OK6410的板子的网孔插上网线连接到PC网线接的那个路由器上

2.首先在linux虚拟机上准备nfs共享目录:/nfs/root

linux虚拟机上:

mkdir   nfs

chmod  777 nfs

cd  nfs

mkdir root

chmod  777  root

cd root

mkdir   succeed

3.在虚拟机上配置nfs服务

首先判断linux上是否安装有nfs

我的是在/etc/init.d文件下看看是否有portmap   nfs  

/etc/init.d/portmap

/etc/init.d/nfs

如果没有这些执行:

su - root

apt-get install  portmap

apt-get install  nfs-kernel-server

4.编辑exports文件

vi   /etc/exports

添加这个:/nfs/root  *(rw,sync,no_root_squash)

5.启动nfs服务

/etc/init.d/portmap  restart

/etc/init.d/nfs   restart

检测运行状态(也可以不检测)

/etc/init.d/portmap  status

出现  is running...

否则

/etc/init.d/portmap  start

 /etc/init.d/nfs  start

6.ping通 开发板跟虚拟机linux

再虚拟机linux上执行

ifconfig

知道虚拟主机IP为125.217.32.237

 

启动开发板进入到linux系统

再终端上输入

ifconfig

得到开发板linux的IP为。。。。。

如果IP跟虚拟主机的IP不在同一网段,就修改下

ifconfig  eth0  125.217.23.32   (反正是125.217.32.xx同一网段)

ping一下

终端上输入ping  125.217.32.237

得到PING 125.217.32.237 (125.217.32.237): 56 data bytes
64 bytes from 125.217.32.237: seq=0 ttl=64 time=24.942 ms
64 bytes from 125.217.32.237: seq=1 ttl=64 time=1.518 ms
64 bytes from 125.217.32.237: seq=2 ttl=64 time=1.025 ms
64 bytes from 125.217.32.237: seq=3 ttl=64 time=0.906 ms
64 bytes from 125.217.32.237: seq=4 ttl=64 time=0.743 ms

ctrl+c退出

packets transmitted, 5 packets received, 0% packet loss

这时候PING通了

7.挂载nfs文件到开发板上

再终端上输入

mount   -t   nfs  125.217.32.237:/nfs/root    /mnt  -o nolock

含义是: 宿主机IP:宿主机的nfs目录    开发板挂载目录

然后进入到/mnt下就看到/nfs/root下的目录succeed了

8. umount   /mnt

/**************************************************************************************/

注意:

1.板子跟电脑的linux系统可以PING通了,终端上还是出现 mount   提示:  mount: RPC: Unable to receive; errno = No route to host》》》》??

这时候可能要关闭防火墙

在虚拟主机linux上执行

service iptables stop

service nfs restart

或者你mount露写了一个 -o nolock

2.为了测试主机上NFS服务是否启动,

先在虚拟主机上mount -t nfs  125.217.32.237:/nfs/root    /mnt
然后用命令:ls  /mnt查看挂载内容(或者看能否在mnt目录下看到nfs/root目录)
成功后卸载umount

3. IP必须得ping通

4.如果要修改arm板子上IP重启后不改变,如果是 yaffs2文件的话

就在

/etc/init.d/rcS文件,在/sbin/ifconfig lo 127.0.0.0
 
下添加一行/sbin/ifconfig eth0 125.217.32.23  up

修改/etc/eth0-settin
 (不知道那个/etc/init.d/ifconfig-eth0要不要修改)
将其IP地址改成你想要设置的IP
 

重启开发板,

使用ifconfig命令,就发现IP地址已经修改过来了


如果是cramfs文件,只能重做一个cramfs文件,cramfs是只读的

/********************************************************************************************************************************************************************/

1.确定自己用网线把电脑跟开发板连接了起来,或者接到路由器或者交换机上

2.再虚拟机linux上service  iptables    stop

3. /etc/init.d/portmap   start

4./etc/init.d/nfs  start

5.启动开发板进入到uboot,在 u-boot 命令行下输入以下命令设置 u-boot 启动参数:
setenv bootargs "root=/dev/nfs nfsroot=192.168.0.231:/6410/root
ip=192.168.0.232:192.168.0.231:192.168.0.2 0 1:255.255.255.0:witech.com.
cn:eth0:off console=ttySAC0,115200"
saveenv

 (注意nfsroot=192.168.0.231:/6410/root是自己挂载nfs的目录,ip=192.168.0.232是自己开发板的IP,自己设的,但要同一网段,后面的192.168.0.231:192.168.0.201:255.255.255.0是在虚拟机linux上的ifconfig看到的eth0看到的IP)   

6.重新启动开发板,就挂载NFS网络文件系统了

7.在开发板上的linux命令行输入writeyaffs就可以开始自动烧写(注意MY 6410_yaffs2_v1.0.tgz 一定要放在系统根目录下)

8.要放在文件系统根目录下)
设置 u-boot 启动参数:
setenv bootargs "root=/dev/mtdblock2 rootfstype=yaffs2
console=ttySAC0,115200"
saveenv   

9.   重启启动就可以使用yaffs2文件系统了!!


原创粉丝点击