正点原子u-boot学习nfs版本不匹配解决方案
问题
在学习正点原子的《Linux之系统移植和根文件系统构建篇》的3.2讲时,视频教程使用nfs在uboot环节下载zImage镜像,我下载时一直显示T T T,下载超时。
通过查阅资料,在这篇文章中发现了可能是nfs的版本不匹配问题。
嵌入式Linux开发——解决uboot无法使用nfs服务从ubuntu中下载文件(TTT、cannot mount等错误)
问题定位
上面的解决方法是直接开启nfs2,但是我发现我使用的ubuntu24.04版本根本就不支持nfs2功能。查看命令:grep CONFIG_NFSD_V2 /boot/config-$(uname -r)
如图显示为not set,则表明内核层面就不支持 NFSv2,所以也就不可能开启NFSv2。在这种情况下,可以选择降低ubuntu的版本,但是太麻烦了,在github上找到了一个nfsv2的程序,可以解决这个问题。
NFSv2下载地址
NFSv2安装使用流程
- 下载源代码,并在ubuntu中解压;
- 在源代码目录下创建一个build文件夹
mkdir build - 进入build目录,执行命令
cmake .. - 执行命令
make,获得最终的nfsv可执行文件 - 关闭系统nfs,
sudo apt remove nfs-kernel-server - 彻底禁用rpcbind,
sudo systemctl stop rpcbind rpcbind.socket,`sudo systemctl disable rpcbind rpcbind.socket`` - 重启系统
在需要使用nfsv2的使用,进入build文件夹执行命令
# 格式:./nfsv2 [你要共享的文件夹路径]# 例如:你要下载 /home/user/linux/zImage,那就指定该目录sudo./nfsv2 /home/user/linux
如上图所示,成功下载
缺点
每次使用需要重新启动
卸载了系统nfs,后续想使用系统nfs,需要重新下载配置
