通过 nfs 在 u-boot 中加载文件

通过 nfs 在 u-boot 中加载文件

注意:这不是关于使用 nfs 作为 rootfs 或使用 tftp 下载内核。

U-boot 基于v2017.11,该板是定制的,但类似于 imx6dl-sabresd。

我已经CONFIG_CMD_NFS=y入驻.config了我在 Arch Linux 主机上有一个正在运行的 nfs 服务器。我可以将 nfs 共享挂载为我的 rootfs。

我的 nfs 共享位于/srv/nfs/foo/etc/exports.d/foo.exports看起来像

/srv/nfs/foo *(rw,async,no_subtree_check,no_root_squash)

当我尝试执行例如时nfs $loadaddr $nfsroot/boot/zImage,它只是继续打印T超时。 (nfsroot=/srv/nfs/foo以匹配导出。)文件存在于共享上并且网络正在运行(ping $serverip工作)。

答案1

我需要在 nfs 服务器上启用 udp。在 Arch Linux 上,它位于/etc/nfs.conf

[nfsd]
udp=y

我没有任何其他定制(除了导出)。

仔细研究一下,似乎较新版本的 nfs(作为参考,我使用的是nfs-utils2.3.1)默认禁用 udp,但显然 u-boot 需要 udp 支持。

相关内容