正点原子LINUX imx6ull开发板的nfs传输配置(传输慢,失败等问题)

首先要保证局域网的搭建并能开发板ping虚拟机

开发板直连电脑的搭建网络环境(以正点原子阿尔法imx6ull开发板为讲解)-CSDN博客

然后配置:

4.2 Ubuntu NFS SSH 服务开启
4.2.1 NFS 服务开启
后面进行 Linux 驱动开发的时候需要 NFS 启动,因此要先安装并开启 Ubuntu 中的 NFS 服
务,使用如下命令安装 NFS 服务:
sudo apt-get install nfs-kernel-server rpcbind
等待安装完成,安装完成以后在用户根目录下创建一个名为" linux "的文件夹,以后所有
的东西都放到这个" linux "文件夹里面,在" linux "文件夹里面新建一个名为" nfs "的文件夹,
如图 4.2.1 所示:
图 4.2.1 创建 linux 工作目录
图 4.2.1 中创建的 nfs 文件夹供 nfs 服务器使用,以后我们可以在开发板上通过网络文件系
统来访问 nfs 文件夹,要先配置 nfs ,使用如下命令打开 nfs 配置文件 /etc/exports :
sudo vi /etc/exports
并保证内容为:

你的共享文件地址 *(rw,sync,no_subtree_check,no_root_squash)
eg:
/home/lzy/linux/nfs *(rw,sync,no_subtree_check,no_root_squash)
也可以指定某用才能访问户

复制代码
# 共享目录        允许访问的客户端(选项)
/home/lzy/linux/nfs 192.168.10.0/24(rw,sync,no_subtree_check,no_root_squash)

图 4.2.2 修改文件 /etc/exports
重启 NFS 服务,使用命令如下:
sudo /etc/init.d/nfs-kernel-server restart
4.2.2 SSH 服务开启
开启 Ubuntu 的 SSH 服务以后我们就可以在 Windwos 下使用终端软件登陆到 Ubuntu ,比如
使用 SecureCRT , Ubuntu 下使用如下命令开启 SSH 服务:
sudo apt-get install openssh-server
上述命令安装 ssh 服务, ssh 的配置文件为 /etc/ssh/sshd_config ,使用默认配置即可。

报错信息:

=> nfs 80800000 192.168.10.100:/home/lzy/linux/imx6ull/zImage

Using FEC1 device

File transfer via NFS from server 192.168.10.100; our IP address is 192.168.10.101

Filename '/home/lzy/linux/imx6ull/zImage'.

Load address: 0x80800000

Loading: T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T

Retry count exceeded; starting again

=>

Error reading data on serial port:

Access is denied.

报错信息:

=> nfs 80800000 192.168.10.100:/home/lzy/linux/imx6ull/zImage

Using FEC1 device

File transfer via NFS from server 192.168.10.100; our IP address is 192.168.10.101

Filename '/home/lzy/linux/imx6ull/zImage'.

Load address: 0x80800000

Loading: *** ERROR: Cannot mount

报错信息:

=> nfs 80800000 192.168.10.100:/home/linux/nfs/zImage

Using FEC1 device

File transfer via NFS from server 192.168.10.100; our IP address is 192.168.10.101

Filename '/home/linux/nfs/zImage'.

Load address: 0x80800000

Loading: *** ERROR: File lookup fail

成功长这样:

=> nfs 80800000 192.168.10.100:/home/lzy/linux/nfs/zImage

Using FEC1 device

File transfer via NFS from server 192.168.10.100; our IP address is 192.168.10.101

Filename '/home/lzy/linux/nfs/zImage'.

Load address: 0x80800000

Loading: #################################################################

######################

#################################################################

#################################################################

#################################################################

##########################

done

ERROR: File lookup fail"错误,这表示NFS客户端能够连接到服务器,但无法找到指定的文件。

ERROR: Cannot mount"。这通常表示NFS客户端无法连接到NFS服务器或访问指定的共享路径。

这两问题都一样

你首先要先查看你nfs的虚拟机内配置的共享文件地址,只有这个文件夹的文件才能让nfs传输到板子上,配置的地址存在这/etc/exports

所以直接:

sudo nano /etc/exports

打开编辑

地址在这

Ctrl+O 保存

Enter 确定名字

Ctrl+X 退出

你可以改文件夹地址到你要传输的文件也就是到zImage的地址,也可以改动zImage文件到你设置的nfs共享文件夹,反正这两个就要一样

输入:

查看NFS服务的详细状态信息:

sudo systemctl status nfs-server.service

这样就是对的

如果还出错,把问题丢给ai继续问看看还有什么问题

报错:Error reading data on serial port: Access is denied.

NFS加载zImage时出现了超时问题,同时串口访问也存在权限问题。让我帮您分析并提供解决方案。

解决方案

1. 检查网络连接

首先确认开发板与NFS服务器之间的网络连接是否正常:

复制代码
# 在U-Boot中尝试ping NFS服务器
=> ping 192.168.10.100

如果ping不通,请检查:

  • 网络线缆连接

  • 开发板和服务器是否在同一子网

  • 服务器防火墙设置

2. 验证NFS服务器配置

在NFS服务器上检查配置:

复制代码
# 检查NFS共享配置
sudo cat /etc/exports

# 确保有类似这样的行:
/home/lzy/linux/imx6ull 192.168.10.0/24(rw,sync,no_subtree_check)

# 重新导出NFS共享
sudo exportfs -ra

# 检查NFS服务状态
sudo systemctl status nfs-server

3. 检查文件权限和路径

确认zImage文件存在且权限正确:

复制代码
# 检查文件是否存在
ls -la /home/lzy/linux/imx6ull/zImage

# 确保文件有读取权限
chmod +r /home/lzy/linux/imx6ull/zImage

4. 尝试使用TFTP替代NFS

如果NFS问题持续存在,可以考虑使用TFTP协议:

复制代码
# 在U-Boot中使用TFTP
=> setenv serverip 192.168.10.100
=> setenv ipaddr 192.168.10.101
=> tftp 80800000 zImage

5. 解决串口访问权限问题

对于串口访问被拒绝的问题:

复制代码
# 检查当前用户是否在dialout组中
groups

# 如果没有,添加用户到dialout组
sudo usermod -a -G dialout $USER

# 或者更改串口设备权限
sudo chmod 666 /dev/ttyUSB0  # 替换为您的实际串口设备

6. 尝试指定NFS版本

在U-Boot命令中指定NFS版本:

复制代码
=> nfs 80800000 192.168.10.100:/home/lzy/linux/imx6ull/zImage nfsvers=3

7. 完整检查流程

如果以上步骤都不能解决问题,请按以下流程检查:

  1. 网络层面

    • 确认服务器和开发板IP地址配置正确

    • 检查路由器/交换机设置

    • 确认没有IP冲突

  2. NFS服务器层面

    • 确认NFS服务正常运行

    • 检查/etc/exports配置语法

    • 查看NFS日志:sudo tail -f /var/log/messages

  3. 客户端层面

    • 确认U-Boot支持NFS

    • 尝试使用其他网络服务(如TFTP)测试网络连通性

  4. 文件层面

    • 确认文件没有损坏

    • 尝试传输一个小文件测试NFS功能

相关推荐
uoscn15 小时前
链接脚本(Linker Scripts)
linux·arm开发·arm
wuxingge16 小时前
浪潮服务器-型号NF5270M3做raid
服务器
橘子真甜~16 小时前
C/C++ Linux网络编程2 - Socket编程与简单UDP服务器客户端
linux·运维·服务器·网络编程api·udp协议·udp通信
咬_咬16 小时前
C++仿muduo库高并发服务器项目:Poller模块
服务器·开发语言·c++·epoll·muduo
深圳市恒讯科技16 小时前
服务器与普通个人电脑的主要区别是什么?
运维·服务器
qq_2813174716 小时前
nginx安装配置、故障处置、性能优化
运维·nginx
未来之窗软件服务16 小时前
服务器运维(十一)SQLite3 php封装——东方仙盟炼气期
运维·服务器·sqlite·服务器运维·数据库驱动·东方仙盟
QT 小鲜肉17 小时前
【QT/C++】Qt样式设置之CSS知识(系统性概括)
linux·开发语言·css·c++·笔记·qt
yachuan_qiao17 小时前
专业的建筑设备监控管理系统选哪家
大数据·运维·python
Elias不吃糖17 小时前
NebulaChat 框架学习笔记:深入理解 Reactor 与多线程同步机制
linux·c++·笔记·多线程