Mastering Embedded Linux Programming 学习 (六)在百问网157开发板上,使用TFTP启动Linux内核
一、在ubuntu上安装配置TFTP服务
sudo apt install tftpd-hpa
mkdir -p /home/tao/tftpboot
chmod 777 /home/tao/tftpboot
sudo vim /etc/default/tftpd-hpa
然后把内核的镜像和设备树拷贝到该目录下
重新启动TFTP服务
sudo service tftpd-hpa restart
二、设置u-boot启动参数
setenv ipaddr 192.168.123.21
setenv serverip 192.168.123.220
setenv fdtaddr 0xC4000040
setenv bootfile uImage
setenv fdtfile stm32mp157c-myboard.dtb
setenv netloadimage tftp ${loadaddr} ${bootfile}
setenv netloadfdt tftp ${fdtaddr} ${fdtfile}
setenv netargs "setenv bootargs rootdelay=3 root=/dev/mmcblk0p5"
setenv netboot "echo Booting from network ...\; run netloadimage\; run netloadfdt\; run netargs\; bootm ${loadaddr} - ${fdtaddr}"
setenv bootcmd run netboot
saveenv
三、使用TFTP启动
在u-boot命令行键入${bootcmd}启动
由于当前的Linux内核还没有网卡驱动,无法通过nfs挂载根文件系统
四、快捷命令
tftp 0xC2000040 uImage
tftp 0xC3000040 stm32mp157c-myboard.dtb
bootm 0xC2000040 - 0xC3000040