首先要保证局域网的搭建并能开发板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. 完整检查流程
如果以上步骤都不能解决问题,请按以下流程检查:
-
网络层面:
-
确认服务器和开发板IP地址配置正确
-
检查路由器/交换机设置
-
确认没有IP冲突
-
-
NFS服务器层面:
-
确认NFS服务正常运行
-
检查/etc/exports配置语法
-
查看NFS日志:
sudo tail -f /var/log/messages
-
-
客户端层面:
-
确认U-Boot支持NFS
-
尝试使用其他网络服务(如TFTP)测试网络连通性
-
-
文件层面:
-
确认文件没有损坏
-
尝试传输一个小文件测试NFS功能
-