刚入门时,本人也是对环境的搭建一头雾水,埋头苦干了很久才搞定。
环境这个问题,千变万化各种稀奇古怪的原因都可能出现,而且你问人别人也不一定能帮你解决,因为别人未必遇到过这个问题,恰好今晚一人来问,我就想把nfs挂载问题给详细说明下,让大家少走弯路
这里对有无路由器情况分开分析
环境
1.Ubuntu14.04
2.普通路由器
3.JZ2440
4.网线若干
一.有路由器
开发板 路由器 pc机连接方式
开发板和pc机通过网线连接路由器的lan口
有路由器的话那nfs是分分钟搞定的
1.设置虚拟机网络配置为桥接
这时虚拟机和pc机的ip分别是
要用nfs首先得确保nfs服务器启动
在linux终端执行 /etc/init.d/nfs-kernel-server restart 确保nfs服务器已经开启
2.将nfs挂载目录写入/etc/exports
vim /etc/exports
/home/edisongao/weidongshan/nfs_root/first_fs *(rw,sync,no_root_squash)
可自行拷贝
格式如下
3.然后可以在虚拟机中尝试挂载看是否成功,挂载成功后才可以在开发板上挂载成功
执行mount -t nfs 192.168.1.118:/home/edisongao/weidongshan/nfs_root/first_fs /mnt
执行成功后 方可进行下一步
4.开发板上电进入Linux系统
挂载条件:上述操作均完成 然后在开发板上ping pc机和虚拟机 Ping通即可 ping不同不可挂载完成
首选得设置网卡
ifconfig eth0 192.168.1.100
mount -t nfs -o nolock 192.168.1.101:/home/edisongao/weidongshan/nfs_root/
即可挂挂载成功
上面讲的是开发板的手动挂载nfs
那么我们要开发板上电后自动挂载咋办 在完成上述的基础上
重启开发板进去Uboot
然后print查看bootargs
设置bootargs为如下
set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.118:/home/edisongao/weidongshan/nfs_root/first_fs ip=192.168.1.100**(开发板ip):192.168.1.118(虚拟机ip)**:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0
粗体为注释 方便修改
然后启动就可以了
2.无路由器 开发板和pc机直连
开发板和PC机直连的话不能实现自动挂载 但是手动挂载没问题
①.虚拟机的ubuntu网络连接必须是桥接模式,ubuntu系统启动之前电脑主机必须要有网络,否则会提示
启动ubuntu系统,启动后用网线直接连接电脑和开发板,然后启动开发板,不进uboot菜单模式,启动系统,开发板启动系统后才会形成另一个网络节点,没启动之前和在boot菜单界面电脑主机是没有本地ip地址的,启动之后开发板和电脑形成一个网络,电脑主机才会有本地ip地址,所以要保持开发板系统运行。
②.使用命令ifconfig配置ubuntu的IP和电脑在同一个网段,例如我的ubuntu配置如下(ubuntu使用ifconfig命令需要超级权限):
ifconfig eth0 192.168.1.100
③.启动开发板启动无线网卡 设置ip地址
ifconfig eth0 192.168.1.102
这时会看见开发板的网口等已经亮了~
④.由于是直连 开发板没有启动网卡的时候 电脑是提示无本地连接的 启动后就有本地连接了这里去设置PC的ip地址
设置为192.168.1.101
然后就可以挂载了
mount -t nfs -o nolock 192.168.1.101:/home/edisongao/weidongshan/nfs_root/ /mnt
使用nfs 比如我有一个编译出的模块wm8976.ko
可以虚拟机上
cp ./wm8976.ko /home/edisongao/weidongshan/nfs_root/first_fs
拷贝到我们挂载的目录
这个时候开发板上ls /mnt就可以看到wm8976.ko了
接下来就可以挂载insmod wm8976.ko文件进行各种操作啦
作者:Edison Gao(小白要学arm)