注意:这不是关于使用 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)
当我尝试做 egnfs $loadaddr $nfsroot/boot/zImage
时,它只是继续打印T
超时。(nfsroot=/srv/nfs/foo
以匹配导出。)该文件存在于共享中并且网络正在运行(ping $serverip
工作)。
我需要在 nfs 服务器上启用 udp。在 Arch Linux 上,这是在
/etc/nfs.conf
:我没有任何其他自定义(除了导出)。
研究一下,似乎较新版本的 nfs(作为参考,我使用的是
nfs-utils
2.3.1)默认禁用 udp,但显然 u-boot 需要 udp 支持。