U-Boot 中使用 nfs 命令加载文件报错指南

本文讲述了在U-Boot环境中使用nfs从Ubuntu18.04服务器下载Linux内核镜像时遇到的问题,包括因NFS版本不兼容导致的文件查找失败和传输中断,以及相应的解决方法,涉及修改NFS配置和重启服务。
摘要由CSDN通过智能技术生成


在嵌入式 Linux 开发中,我们经常使用 nfs 命令加载服务端的共享文件或者挂载文件系统。关于服务端 NFS 服务的搭建可以参考基于 NFS 的文件共享实现

U-Boot 也支持了 nfs 命令,笔者在 U-Boot 命令模式下,学习使用 nfs 命令从服务端(虚拟机 Ubuntu 18.04)下载 Linux 内核镜像文件到开发板 RAM 的过程中遇到了一些问题,经过一番波折终于都解决了,故此记录一下。

问题一

问题描述

  • 开发板 ping 服务端 IP 通过,但是在使用 nfs 命令下载 Linux 内核镜像文件时出现了文件查找失败的错误:
  • Loading: *** ERROR: File lookup fail

错误原因

  • NFS 版本不兼容导致的共享文件找不到
    • U-Boot 中 NFS 为 V2 版本
    • 服务端 NFS 为 V3、V4 版本

解决方案

  • 修改服务端 /etc/default/nfs-kernel-server 文件:
sudo vim /etc/default/nfs-kernel-server

  • 重启 NFS 服务:
sudo service nfs-kernel-server restart
  • 查看一下服务端 NFS 版本:
sudo cat /proc/fs/nfsd/versions

  • 如果已经有 +2 则说明 V2 版本 NFS 服务已经开启,如果为 -2 则说明系统内核虽然已经支持了 V2 版本的 NFS,但还没有开启;
  • 开启 V2 版本的 NFS,用 vim 编辑器打开 /etc/nfs.conf 文件,如果没有该文件则会自动创建一个:
sudo vim /etc/nfs.conf
  • 配置 udp 和 vers2 为 y:

  • 再次重启 NFS 服务:
sudo service nfs-kernel-server restart
  • 再次查看 NFS 版本,V2 版本开启了:

  • 测试下载,出现问题二

问题二

问题描述

  • 使用 nfs 命令下载文件过程中出现传输中断,打印 T T T…

解决方案

  • 编辑服务端 /etc/hosts 文件:
sudo vim /etc/hosts
  • 添加开发板 IP 和服务端 NFS 共享文件目录:

  • 再次重启 NFS 服务:
sudo service nfs-kernel-server restart
  • 再次测试下载,问题解决:

更多内容

  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
U-Boot 是一个嵌入式Linux启动加载器,它通常用于引导和初始化像 Linux 内核这样的操作系统在嵌入式设备上。使用 U-Boot 进行 NFS 挂载是为了在设备启动过程从远程网络文件系统(NFS加载文件或目录,这对于更新固件、配置文件或其他数据非常有用。 下面是使用 U-Boot 进行 NFS 挂载的基本步骤: 1. 配置NFS服务器: 在NFS服务器上设置共享目录,并确保网络连接可用。通常需要在NFS服务器上创建一个 exports 文件,指定要共享的路径及其访问权限。 2. 设置U-Boot环境变量: 在U-Boot命令,你需要设置几个环境变量以便挂载NFS。这些变量包括: - `nfsargs`: 用于传递给内核的NFS挂载参数,如 `nfsroot=/path/to/server:/exported/directory`。 - `ipaddr`: NFS服务器的IP地址。 - `serverip`: 如果NFS服务器有多个IP地址,可以选择其一个作为默认挂载地址。 - `tftp` 和 `tftpargs` (如果使用TFTP下载内核和启动文件) 或 `fdtaddr` 和 `fdtfile` (如果使用FDT文件):与NFS挂载无关但也是U-Boot常规配置的一部分。 3. 挂载NFS: 使用 `nfsload` 命令NFS服务器下载文件到设备的内存,然后使用 `fatload` 或 `bootm` 命令将内核和启动文件加载到内存。 4. 启动内核: 使用 `bootm` 命令启动内核,带上之前配置的NFS根目录参数。 相关问题: 1. 如何在U-Boot查看和设置环境变量? 2. 如果NFS服务器不可达,U-Boot有什么备用机制? 3. 如何通过U-Boot配置TFTP或者FDT文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello阿尔法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值