因为用的开发板是韦东山老大的jz2440,看的视频是国嵌的视频。两个开发环境不同。韦老大的是ubuntu,而国嵌是redhat。所以在学习中经常要在两个系统中相互游走。这次学习到挂载nfs文件系统时遇到了比较多的问题,所以记录总结下在ubuntu中和redhat中怎么挂载nfs文件系统。
ubuntu:
制作好文件系统后,
安装nfs服务:root@embed-virtual-machine:/work/rootyaffs2# sudo apt-get install nfs-kernel-server rpcbind
配置:在它的配置文件/etc/exports 里面增加如下内容,以后网络文件系统访问/work/rootyaffs2 目录。
root@embed-virtual-machine:/work/rootyaffs2# gedit /etc/exports
因为我们的文件系统在/work/rootyaffs2 目录下,所以在文档末尾增加如下内容
/work/rootyaffs2 *(rw,sync,no_root_squash)
启动 nfs 服务。
root@embed-virtual-machine:/work/rootyaffs2# sudo /etc/init.d/rpcbind restart
root@embed-virtual-machine:/work/rootyaffs2# sudo /etc/init.d/nfs-kernel-server restart
检查服务是否开启
root@embed-virtual-machine:/work/rootyaffs2# service rpcbind status
rpcbind start/running, process 820
root@embed-virtual-machine:/work/rootyaffs2x# service nfs-kernel-server status
nfsd running
设置虚拟机。终端上print看看开发板的各个ip
ipaddr开发板ip
1)设置--桥接模式
2)编辑--虚拟网络编辑器--桥接到 Realtek PCI........(在windows中本地连接上查找具体名字)
3)设置新的网络:新建一个网络连接eth0
地址ip和开发板ip同一个网段(不能完全相同),
默认路由和本地连接的默认网关一样,
本地ip:在本地连接上设置ip地址
本地ip地址设置和serverip一样
子网掩码设置和开发板的一样
然后在超级终端中ping下虚拟机和主机是否想通。
然后设置启动参数:
ubuntu中:
set bootargs noinitrd root=/dev/nfs nfsroot=192.168.7.200:/work/rootyaffs2qq ip=192.168.7.17:192.168.7.200:192.168.7.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200
redhat中:
set bootargs noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.7.200:/work/rootyaffs2qq ip=192.168.7.17:192.168.7.200:192.168.7.1:255.255.255.0::eth0:off
设置好后save保存。然后重启开发板。
虚拟机开启nfs服务
/etc/init.d/rpcbind restart
/etc/init.d/nfs restart
检查是否开启
service rpcbind status
service nfs status
遇到的问题:
1.学长发的能用的文件系统,我在windows下直接解压后在复制到虚拟机中的/work中,这样就会就会失效软连接挂载不上,只能把压缩包复制到虚拟机中在解压,
2.在redhat中遇到的问题:
ubuntu中挂载时会自动关闭防火墙,但是在redhat中不会,所以开启了nfs服务后要关闭虚拟机中的防火墙
#service iptables stop
3.这次遇到的是重新烧写的内核没有网卡驱动导致不能挂载。
我在开发板上第一次烧写一个之前做的内核,但是挂不上,检查IP,桥接,启动参数,都没问题,但是还是挂不上,最好发现启动内核时没有打印出dm9000这类的
参数。最后在虚拟机上的内核文件发现制作的uImage没有制作网络驱动那部分。修改内核重新制作uimage后再次烧写和挂载,最好成功挂上
阅读(1689) | 评论(0) | 转发(0) |