記錄一次開發板通過 U-Boot 下載內核並掛載 NFS 根文件系統的完整過程,包含網絡協議選擇避坑與 NAND 燒寫後的網卡驅動問題排查。
uImage,拷貝至服務器 /tftpboot/tftp 31000000 uImagebootargs:setenv bootargs noinitrd console=ttySAC0,115200 init=/init \ root=/dev/nfs rw nfsroot=192.168.1.118:/home/rootfs,proto=tcp,nfsvers=3 \ ip=192.168.1.119:192.168.1.118:192.168.1.1:255.255.255.0::eth0:off
DM9000 網卡在 UDP 模式下丟包率超 50%,將 nfsroot 參數指定 proto=tcp 後穩定掛載。
現象:燒寫內核到 NAND,配置 bootcmd=nand read 31000000 300000 300000; bootm 31000000,重啟後內核啟動但掛載根文件系統失敗,提示找不到網卡。

tftp)才會使能網卡硬件bootm 時網卡未初始化,內核驅動無法接管bootcmd 中加入 tftp 命令(哪怕不下載文件)以啟用網卡:setenv bootcmd tftp 31000000 uImage; nand read 31000000 300000 300000; bootm 31000000
bootcmd 應包含必要的硬件初始化序列