IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 嵌入式Linux开发——解决uboot无法使用nfs服务从ubuntu中下载文件(TTT、cannot mount等错误) -> 正文阅读

[系统运维]嵌入式Linux开发——解决uboot无法使用nfs服务从ubuntu中下载文件(TTT、cannot mount等错误)

前言:

最近在学习正点原子嵌入式Linux开发板uboot的移植实验,移植完之后想测试网络部分的驱动能否工作正常。最后经过测试发现tftp可以正常下载,nfs却一直报错无法下载文件,最后也是折磨了两天才解决了问题,特写下此博客进行记录、总结。

项目场景:

我的轻薄本没有网口,事先买了一个刷过固件可以连校园网的路由器。准备好路由器之后,校园网通过一根网线接路由器的wan口,剩余两个lan口,一个接到正点原子alpha开发板的ENET2、笔记本电脑连路由器的WiFi、ubuntu改为桥接静态ip,使得三者在同一网段内(windows、ubuntu、uboot(不是linux内核))

ubuntu192.168.10.218
uboot192.168.10.220
windows192.168.10.46

具体实物图:

然后测试了一下测试三者是否能互相ping通(只有windows和ubuntu无法ping通uboot,其余四种情况都可以正常ping通),ubuntu和windows无法ping通uboot好像是uboot没有解析ping命令,但是这个不影响后面的实验。下面是三者互相ping的截图

uboot ping ubuntu和windows
ubuntu ping windows
windows ping ubuntu

根据教程,一开始想使用nfs服务但行不通,但使用tftp服务可以正常下载、nfs没调通这个问题就没有过多理会。直到学习根文件系统测试时,根文件系统都是通过nfs进行挂载,我一开始还是想取巧避开nfs用tftp进行挂载,但是我看了看linux内核文件好像只支持nfs、没有看到tftp的字眼,而且后面的教程都是用nfs,所以就躲不掉了,只能先调通nfs才能继续往下走。

nfs服务下载失败

nfs cannot mount错误

tftp服务可以正常下载

?

解决方案:

因为我能通过tftp服务进行下载,说明我的网络拓扑应该是没有什么问题的,问题应该就在nfs服务这部分。这期间我看了正点原子常见错误的总结、还有一些大佬们的博客、咨询某宝技术客服最后才得以解决,大家可以按顺序针对下面的情况进行设置和排查。

1、关闭杀毒软件(火绒等)、关闭windows的防火墙、ubuntu的也关闭。(嫌麻烦ubuntu的我就直接卸载了)

2、uboot使用的nfs版本是version2,而ubuntu16以上默认是version3或者version4,通过sudo cat /proc/fs/nfsd/versions可以查看当前ubuntu支持的nfs版本。我用的ubuntu版本是20.04,为了兼容要修改 /etc/default/nfs-kernel-server配置文件,通过sudo vim /etc/default/nfs-kernel-server进入文件进行修改。

nfs 不支持version2

修改之后重启nfs服务(sudo service nfs-kernel-server restart)看是否能成功下载,如果还是不行继续往下看。

3、出现cannot mount或者编译一段时间后出现TTT错误,可以查看一下/etc/hosts、/etc/exports这两个配置文件

sudo vim /etc/exports????????????????sudo vim /etc/hosts

/etc/hosts 要添加的内容

/etc/exports添加的内容分为三部分

1:nfs服务共享目录绝对路径

2:*代表所有的ip都可访问

???????如果只限定一个ip只需将*改为192.168.10.220(要和ubuntu在同一网段)

???????如果要使用同一网段只需将*改为192.168.10.*

3:(rw,sync,no_root_squash)为nfs服务的一些命令参数

?

修改完exports后记得重新声明一下 sudo exportfs? -ar、重启一下nfs服务。

我看完很多人的博客到这步基本上都弄好了,nfs可以成功下载文件了,但是我的还是不行。

4:设置完上述内容后打印nfs的version还是出现-2,我用netstat看一下nfs对应端口,发现没有udp只有tcp

netstat -a | grep "nfs"

设置一下这个文件/etc/nfs.conf

sudo vim /etc/nfs.conf

注意重新启动nfs服务?sudo service nfs-kernel-server restart?重新执行netstat,出现了udp

sudo cat /proc/fs/nfsd/versions可以发现出现了+2,即支持nfs服务的version2,接下来要做的就是验证一下

在uboot中执行命令nfs 80800000 192.168.10.218:/home/lpme/linux/nfs/zImage发现可以成功下载

其中一些T可能是网络问题,我们看一下dram里面的内容和zImage(用winhex打开)里的内容是否相同

md.b 80800000 2000

?

?进行比较两者是相同的,即nfs服务可以正常使用了。

总结:

非常感谢你能看到这里,希望这篇文章能帮你解决问题。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:56:36  更:2022-10-22 21:57:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年9日历 -2024/9/19 9:27:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码