uBoot以tftp远程加载Linux内核

Linux开发板u-boot以tftp的方式远程加载Linux内核

环境

开发板:STM32MP157

tftp服务器系统:Ubuntu18.04

开发板以网线直接连接至电脑。

服务器部分

tftp服务搭建

在Ubuntu系统上安装tftp服务,执行以下命令:

sudo apt-get install tftp-hpa tftpd-hpa

安装完成后,新建一个文件夹作为tftp服务的工作目录(用于存放所需远程加载的Linux内核等文件):

mkdir tftpboot

修改tftp服务配置:

sudo vim /etc/default/tftpd-hpa

TFTP_DIRECTORY修改为刚刚创建的目录的路径,TFTP_OPTIONS增加"-c"选项,修改后的配置为:


# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure -c"

TFTP_DIRECTORY:文件上传和下载的目录。
TFTP_OPTIONS:增加“-c”,-c代表可以往服务器上传文件。

tftpd-hpa服务配置文件修改完成后,重启tftpd-hpa服务:

sudo service tftpd-hpa restart

准备内核和设备树文件

将需要远程加载的内核文件(uImage)和设备树文件(.dtb)拷贝至tftpboot目录:

cp {PATH}/uImage /home/tftpboot/
cp {PATH}/*.dtb /home/tftpboot/

{PATH}:内核文件和设备树文件的路径。

开发板u-boot环境配置

启动开发板,敲回车进入uboot。

设置IP地址(与电脑在同一网段):

setenv ipaddr 192.168.137.10

设置网关地址:

setenv ipaddr 192.168.137.1

设置子网掩码:

setenv netmask 255.255.255.0

设置服务器地址(Ubuntu(tftp服务器)的IP地址):

setenv serverip 192.168.137.135

保存前面的网络配置:

saveenv

查看开发板与服务器的网络是否通畅:

ping 192.168.137.135

若出现 host 192.168.137.135 is alive,则表示网络通畅(可能会需要多ping两次)。

设置加载的linux内核和设备树:

setenv bootcmd “tftp c2000000 uImage;tftp c4000000 stm32mp157a-itop.dtb;bootm c2000000 - c4000000”

保存配置:

saveenv

可以使用print命令查看写入的配置:

print

加载启动远程Linux内核:

run bootcmd

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值