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文件系统了!!