【技术分享】迅为RK3568开发板使用TFTP加载内核设备树

 

需求分析

 

在嵌入式项目开发中,为了适配新外设、调整硬件资源分配或修复驱动问题,需要频繁修改设备树和内核。修改完成后,通常需要重新编译生成镜像,并将其烧录到开发板上进行测试。然而,传统的烧录方式不仅需要连接物理接口,还可能因为镜像体积较大而耗费较长时间,这在开发周期紧张的情况下显得尤为低效。

 

 

 

为了解决这一问题,可以采用基于TFTPTrivial File Transfer Protocol)的内核和设备树加载方法。这种方式无需将镜像完整烧录到开发板的存储介质,而是通过网络直接加载和运行新内核与设备树。相比传统烧录方式,TFTP 加载显著减少了镜像更新的等待时间,同时允许更灵活地对不同版本的内核或设备树进行快速切换和验证。

 

 

TFTP加载内核设备树

实验平台:iTOP-RK3568开发板

 

01-安装TFTP服务端

 

首先进行TFTP 服务端的搭建,首先在ubuntu终端中执行以下命令安装TFTP服务:

sudo apt-get install tftp-hpa tftpd-hpa

 

 

 

 

安装完成以后创建 TFTP 服务器工作目录,并对TFTP的服务配置文件进行修改,具体步骤如下:

输入以下命令在家目录创建tftpboot文件夹,如下图所示:

 

 

 

安装完成以后创建 TFTP 服务器工作目录,并对TFTP的服务配置文件进行修改,具体步骤如下:

输入以下命令在家目录创建tftpboot文件夹,如下图所示:

chmod 777 tftpboot

 

 

 

最后使用以下命令修改TFTP配置文件,打开配置文件以后如下图所示:

sudo vim /etc/default/tftpd-hpa

 

 

修改为如下内容,修改完成如下图所示:

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/home/topeet/tftpboot/"

TFTP_ADDRESS=":69"

TFTP_OPTIONS="-l-c-s"

 

 

修改完成保存退出,在终端输入以下命令重启tftpd-hpa服务。

sudo service tftpd-hpa restart

如下图所示:

 

 

 

 

 

02-配置开发板网络

 

TFTP服务端搭建完成之后,进行第二步,配置开发板的网络。

连接好开发板的网线后,上电启动开发板,在加载阶段点击“ctrl+c”进入uboot命令行,如下图所示:

 

 

 

然后来到搭建好TFTP环境的ubuntu终端,输入“ifconfig”命令来查看虚拟机ubuntu的ip,如下图所示:

 

 

 

可以看到ubuntu虚拟机的ip地址为192.168.1.79,然后输入以下命令设置开发板的网络,设置完成如下图所示:

setenv ipaddr 192.168.1.94

setenv serverip 192.168.1.79

setenv gateway 192.168.1.1

 

 

 

然后输入以下命令测试开发板与ubuntu虚拟机之间的网络是否畅通,测试成功如下图所示:

 ping 192.168.1.79

 

 

 

 

如果环境变量不知道哪里设置错了,或者想要恢复成emmc启动,可以使用以下命令重置环境变量

env default -a

Saveenv

 

03-tftp加载内核和设备树

 

在前面两个小节中分别搭建了TFTP服务器以及配置好了开发板的网络,现在进行最后一步,使用tftp加载内核和设备树。

首先将内核镜像boot.img和设备树文件rk3568-evb1-ddr4-v10-linux.dtb拷贝到第一小节创建的“/home/topeet/tftpboot”目录下,拷贝完成如下图所示:

 

 

 

然后根据上一小节内容配置自身ip和server ip,设置完成之后,使用以下命令将内核和设备树通过网络加载进内存之中,如下图所示:

setenv bootcmd "tftpboot 0x08300000 rk3568-evb1-ddr4-v10-linux.dtb;tftpboot 0x0027f800 boot.img ; bootm 0x0027f800 - 0x08300000"

 

 

 

 

 

通过以上命令将boot.img镜像下载到首地址为0x0027f800的内存空间;将rk3568-evb1-ddr4-v10-linux.dtb设备树镜像将下载到首地址为0x08300000的内存空间;随后输入以下命令,等待网络下载内核和设备树,如下图所示:

env run bootcmd

 

 

 

可以看到在这里加载的就是tftp服务端存放内核以及设备树,等待开发板进入系统之后进行调试即可。

 

 

iTOP-RK3568介绍

 

 

posted on   topeet  阅读(10)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示