问题一、低版本uboot和高版本deepin或者ubuntu搭配进行开发时,发现nfs不能使用。
原因:uboot默认启动nfs,使用协议为2。而高版本的deepin或者ubuntu17之后nfs就默认支持3和4,因此需要deepin或者ubuntu支持协议2
解决方案:修改:/etc/default/nfs-kernel-server,尾部加上:RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"。然后重启nfs:/etc/init.d/nfs-kernel-server restart。即可使用
问题二、uboot加载完成内核后,利用nfs挂载根文件系统时,一样出现nfs不能使用。 原因:linux内核默认启动nfs,使用协议为2,即使在配置时,选择支持了更高级别的版本,但是未修改默认使用版本,依然会默认使用协议为2。而高版本的deepin或者ubuntu17之后nfs就默认支持3和4,因此需要deepin或者ubuntu支持协议2,或者内核启动nfs挂载,默认使用3以及以上版本挂载nfs。
解决方案:
A、按照问题一解决。
B、此方法不用修改nfs服务器,而是在uboot的bootargs环境变量中,关于nfs的参数中添加nfsver=3,
例如:“……root=/dev/nfs proto=tcp,nolock,nfsvers=3, rw nfsroot=192.168.1.149:……”,请根据自己需求修改。
以上为我折腾中摸索出的,且imx6ull测试通过的,有什么不同解决方案,或者不完善,或者不正确的地方,请共享经验。
|