使用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 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中输入命令: