ubuntu下tiny6410通过NFS启动系统的方法总结

折腾了好几天,论坛上基本上关于挂载NFS文件系统的问题都遇到过。

昨天晚上终于挂载成功,就把我是怎样挂载成功的以及一些问题的解决和注意事项和大家分享。希望对那些没有挂载成功的人有所帮助,也希望更多的人能与人分享自己的成功,促进共同进步。
首先挂载前,请仔细检查以下硬件设备是否都连接好:
1、电源线插上
2、串口线连接好开发板COM0和PC机
3、USB电缆连接开发板和PC机
4、网线插上!
其中最容易忽略的就是网线没有插上,导致像这样的问题一直没有解决
rpcbind: server x.x.x.x not responding, timed out
Root-NFS: Unable to get mountd port number from server, using default
Root-NFS: Server returned error -5 while mounting /home/glorin/sharetmp/filesys
针对这种问题,有两个地方要注意,除了上面的网线没有插上外,另外的就是主机IP(我的是虚拟机中的ubuntu的IP)和开发板的IP不在同一

个网段内。
解决方法改主机IP

更改主机IP方法:
$ sudo vim  /etc/network/interfaces
然后设置:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.20(参考)
netmask 255.255.255.0
gateway 192.168.1.1(参考)
修改后重启网络配置:
sudo /etc/init.d/networking restart
完了保证设置完全正确,对于使用ubuntu系统的人,请修改/etc/NetworkManager/nm-system-settings.conf
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=false
 将managed=ture改为false。
 然后执行sudo /etc/init.d/network-manager restart,重新配置一下。(对于DNS,设置的话:sudo /etc/resolv.conf即可)
至此主机IP地址设置完成。
注:以上地址仅供参考,请根据各自情况设置。


好了,那么就开始挂载NFS。
1.设置共享目录
例如我们采用/home/localhost/arm6410/root作为NFS共享目
$ sudo mkdir arm6410
$ cd  arm6410
$ sudo mkdir root   
$ chmod 777 arm6410  
$ chmod 777 root
注:共享目录和飞凌的不一样,我想很多人也许出问题就在这里。这就涉及到工作目录和系统根目录的问题了。记住的就是我们打开终端,然

后创建的目录是在/home/XXX。你可以在根文件系统的home下看到XXX。


2.设置IP
上面已经讲过怎么设置,请参考。


3.配置NFS服务并启动

安装NFS

在虚拟机上新建一个终端,依次输入以下命令:
sudo apt-get install portmap
sudo apt-get install nfs-kernel-server
sudo gedit /etc/exports

在弹出的文本编辑器中编辑exports文件,在最后一行添加:
/home/localhost/arm6410/root  *(rw,sync,no_root_squash)

 

启动NFS服务

sudo /etc/init.d/portmap restart
sudo /etc/init.d/nfs-kernel-server restart


为了测试主机上NFS服务是否启动,先假设已经设置好主机的IP地址为:192.168.1.20
sudo mount -t nfs  192.168.1.20:/home/localhost/arm6410/root   /mnt
然后用命令:ls  /mnt查看挂载内容(或者看能否在mnt目录下看到arm6410/root目录)
成功后卸载sudo umount  /mnt


4.在开发板上设置并保存启动参数
在u-boot命令行下输入以下命令设置u-boot启动参数:
setenv bootargs "root=/dev/nfs nfsroot=192.168.0.20:/home/localhost/arm6410/root   ip=192.168.1.10:192.168.1.20:192.168.1.1:255.255.255.0:arm6410:eth0:off console=ttySAC0,115200"
saveenv
重新启动开发板,Linux内核启动后会自动挂载NFS文件系统。同样注意的就是共享目录。
以上步骤成功后,后面烧写yaffs2文件按照手册上即可。

5、若烧写还出现问题,那说明就是网络设置或者NFS配置问题。

解决方法:

网络问题:

请先在主机中打开运行->cmd->ping 192.168.1.20  看能否ping通,不能请自己修改IP

然后在虚拟机中的linux系统,我的是ubuntu,连接好开发板和虚拟机的串口,在minicom中的ping 192.168.1.10(也就是开发板的IP)

看能否ping通,不能请修改IP

若是以上都能ping通,说明网络设置没有问题。

NFS配置问题:

一般是防火墙的问题,请关闭linux防火墙。

1) 重启后生效 
开启: chkconfig iptables on 
关闭: chkconfig iptables off 

2) 即时生效,重启后失效 
开启: service iptables start 
关闭: service iptables stop 

需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。 

在开启了防火墙时,做如下设置,开启相关端口, 
修改/etc/sysconfig/iptables 文件,添加以下内容: 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT


你可能感兴趣的:(ubuntu下tiny6410通过NFS启动系统的方法总结)