06 H5直接使用网络文件系统

H5板上有提供有线网卡接口,可以在内核启动进入内存文件系统后,再进入网络文件系统。这样比使用sd卡上的文件系统更便于调试开发.

// 在pc上准备好文件系统, 如我已把前面busybox编译得到并已配置好的_install整个目录复制并改名为"/disk3/h5fs"

在pc上配置共享nfs目录, 修改/etc/export文件,增加:
/disk3/h5fs  *(rw,sync,insecure,no_root_squash)
//no_root_squash表示板子的用户使用root权限来访问网络文件系统
//insecure 允许跨网段来挂载 

保存退出后,重启nfs服务:
service nfs restart //如果报没有nfs服务的错误, 则yum install nfs*
chkconfig nfs on    //设开机自启动nfs服务, centOS7上执行需修改/etc/rc.local增加
            systemctl start nfs.service

还需要关闭防火墙和selinux:
systemctl disable firewalld.service  //关闭防火墙

//关闭selinux
vim /etc/selinux/config
修改第7行: SELINUX=disabled
保存退出

系统重启后生效

//在uboot上配置bootargs环境变量,使用网络文件系统. 如我pc的ip地址为192.168.1.10, 则:
setenv bootargs "root=/dev/nfs nfsroot=192.168.1.10:/disk3/h5fs rw  ip=192.168.1.11:192.168.1.10:192.168.1.1:255.255.255.0:jk:eth0:off console=ttyS0,115200"
//ip=开发板ip:主机ip:网关:掩码:开发板的机器名:使用的网卡设备:off 
//off表示不自动获取ip, 使用指定的ip地址 
//console=ttyS0 通过开发板的第0个uart来调试, 115200波特率

//当板上内核版本较低而pc上的内核版本较高时(pc上系统一般都使用高版本的nfs协议版本了,而板上系统默认使用v2版本就会连不上pc上的nfs服务器),可能还需要在挂载的参数上指定使用nfs服务的第3/4版本通信协议:
nfsroot语句需改成:  `nfsroot=192.168.1.10:/disk3/h5fs,proto=tcp,nfsvers=4 rw  ...` 
//nfs默认是使用udp, 改成tcp会稳定点

环境变量修改完成后, 执行"saveenv"保存环境变量.
重启uboot后应就可以进入网络文件系统了.


如果需要内核启动后不经过内存文件系统后,直接进入网络文件系统,可以设置不使用内存文件系统。在uboot上操作:
setenv bootcmd "fatload mmc 0:1 0x46000000 Image; fatload mmc 0:1 0x48000000 sun50i-h5-nanopi-neo2.dtb; booti 0x46000000 0:0 0x48000000"

setenv bootargs "root=/dev/nfs nfsroot=192.168.1.10:/disk3/h5fs,nfsvers=4,proto=tcp rw  ip=192.168.1.11:192.168.1.10:192.168.1.1:255.255.255.0:jk:eth0:off console=ttyS0,115200"

saveenv  //保存环境变量后,重启后就可以了

进入文件系统后, 还可以通过"cat /proc/cmdline"查看到内核使用bootargs的具体信息.
//其实板上的initramfs也是通过读取此信息,从而获知下一步是要进入网络文件系统还是进入sd上的文件系统.

当进入网络文件系统失败时需要注意的地方:

1.  确认pc的nfs共享服务是否配置好,可以在另一pc上挂载测试是否可以访问.

2.  确认uboot上的bootargs是否正确, 尤其ip地址这些不可以写错.
    也可以在内核启动时的输出信息里,查看"Kernel command line ..."的语句是否正确.

3.  检查网线是否连接,内核启动后,rj45接口正确情况下应有灯亮起.

4.  实在不行,还可以用"wireshark"抓网络数据包来分析,确认是否接收到板的nfs访问的请求, 注意数据包里的错误信息. 为了减少其它网络数据的干扰,可以让板通网线直接连接pc.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值