uboot 启动网络根文件系统

uboot 版本:U-Boot 2017.03 (Jun 03 2020 - 13:12:42 +0800)
此uboot 版本默认创建了很多环境变量。所以只需要在默认的环境变量基础上稍加修改,就可以通过nfs 启动文件系统。

默认环境变量 →
netargs=setenv bootargs console=${console},${baudrate} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
netboot=echo Booting from net …; run netargs; setenv get_cmd tftp; ${get_cmd} ${image}; ${get_cmd} ${fdt_addr} ${fdt_file}; bootz ${loadaddr} - ${fdt_addr};

修改或添加环境变量 →
setenv serverip 192.168.5.11
setenv ipaddr 192.168.5.9
setenv netargs setenv bootargs console=tty1 console=ttymxc0,115200 root=/dev/nfs ip=192.168.5.9:192.168.5.1::255.255.255.1 nfsroot=192.168.5.11:/home/book/nfs_rootfs,v3,tcp
run netboot -->可直接启动

Tip : 设置完serverip 和 ipaddr 后,看ping 结果(需关闭电脑自带防火墙):

=> ping 192.168.5.11
ethernet@020b4000 Waiting for PHY auto negotiation to complete… done
Using ethernet@020b4000 device
host 192.168.5.11 is alive

console=tty1 console=ttymxc0 是在开机启动时,可以在开发板和串口都进行启动log的打印。
还需要修改文件系统中etc/ininttab
添加 tty1::askfirst:-/bin/sh
参考文章:嵌入式Linux | 设置LCD屏幕为终端控制台_51CTO博客_Linux lcd驱动