注意:这不是关于使用 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-utils
2.3.1)默认禁用 udp,但显然 u-boot 需要 udp 支持。