使用TFTP启动Linux内核(STM32MP157)

使用TFTP启动Linux内核(STM32MP157)

发现最近随便转载的很多啊,未经授权禁止转载!抄袭!!否则转载者死全家!!另外这是我的笔记,不是教程,难免会有错误,不具有很高的参考性,望周知。

服务端配置

Ubuntu虚拟机中,安装TFTP服务:

1
sudo apt-get install tftpd-hpa

然后将内核文件复制到**/var/lib/tftpboot**目录中:

1
2
sudo cp uImage /var/lib/tftpboot
# 在Ubuntu 20.04中,tftpd-hpa的默认路径改为:/srv/tftp

复制设备树文件:

1
sudo cp stm32mp157a-fsmp1a-mipi050.dtb /var/lib/tftpboot

测试服务端是否正常(可以忽略):

1
2
3
tftp localhost
tftp> get uImage
Received 7574653 bytes in 1.7 seconds

开发板配置

进入U-boot命令,下载内核:

1
tftp 0xc2000040 uImage

下载设备树:

1
tftp 0xc1000000 stm32mp157a-fsmp1a-mipi050.dtb

启动:

1
bootm 0xc2000040 - 0xc1000000

测试可以启动。

为了避免每次启动都输入这么多命令,可以将这些命令保存成变量:

1
env set tftpboot 'tftp 0xc2000040 uImage;tftp 0xc1000000 stm32mp157a-fsmp1a-mipi050.dtb;bootm 0xc2000040 - 0xc1000000'

将变量保存到SD/MMC:

1
2
env save
# saveenv 命令也可以

保存过后,需要启动的时候只需要在U-boot中输入命令:

1
run tftpboot

坚持原创技术分享,您的支持是我前进的动力!