出处:http://blog.csdn.net/glorin/article/details/6287733,感谢作者
设置目标板IP地址先
u-boot>setenv etnaddr 11:22:33:44:55:66 是设置板子的mac地址。
u-boot>setenv ipaddr 192.168.0.54是设置板子的IP地址。
u-boot>setenv serverip 192.168.0.55是设置提供内核下载的服务器IP地址。
还需要u-boot>setenv gatewayip 192.168.0.1 设置网关
u-boot>setenv netmask 255.255.255.0 设置子网掩码
可能还需要有其他的设置,看一下用户手册上的说明和例子。
最后u-boot>saveenv
首先挂载前,请仔细检查以下硬件设备是否都连接好:
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