0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

北京迅为电子 2025-02-21 14:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

需求分析

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

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

TFTP加载内核设备树

实验平台:iTOP-RK3568开发板

01-安装TFTP服务端

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

sudo apt-get install tftp-hpa tftpd-hpa

wKgZO2e4FpqAXIz8AAFBigZr75U139.png

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

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

wKgZO2e4FpqAXIz8AAFBigZr75U139.png

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

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

chmod 777 tftpboot

wKgZO2e4FtCAHrcEAAAtx0v2AEU009.png

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

sudo vim /etc/default/tftpd-hpa

wKgZPGe4Ft6ASkbaAAAuFUJMG_U404.png

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

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/home/topeet/tftpboot/"

TFTP_ADDRESS=":69"

TFTP_OPTIONS="-l-c-s"

wKgZO2e4FvWAPTPFAAAwnVjF2EE854.png

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

sudo service tftpd-hpa restart

如下图所示:

wKgZO2e4FuuANzJMAAAbfgWgZuo266.png

02-配置开发板网络

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

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

wKgZO2e4FwmAEQI9AACRyVltEc0549.png

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

wKgZPGe4FxSADJQjAAGE_hRcXnA996.png

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

setenv ipaddr 192.168.1.94

setenv serverip 192.168.1.79

setenv gateway 192.168.1.1

wKgZO2e4Fx-ADqcJAAAfldUVoBk443.png

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

ping 192.168.1.79

wKgZPGeKDHCAZbrgAADh29HOWW0080.png

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

env default -a

Saveenv

03-tftp加载内核和设备树

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

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

wKgZO2e4FzKALUP7AAArU4r6RVA237.png

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

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

wKgZO2e4Fz-AWV1SAAAcHJRKVqY174.png

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

env run bootcmd

wKgZPGe4F0iAWRJHAANGtJTaXYQ025.png

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

iTOP-RK3568介绍

wKgZPGe4F06AEZq6AAUBdgiKHLE767.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • TFTP
    +关注

    关注

    0

    文章

    24

    浏览量

    14761
  • 开发板
    +关注

    关注

    25

    文章

    6133

    浏览量

    113542
  • RK3568
    +关注

    关注

    5

    文章

    628

    浏览量

    7587
  • 迅为电子
    +关注

    关注

    0

    文章

    83

    浏览量

    305
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RK3568开发板驱动指南Linux中通用SPI设备驱动

    RK3568开发板驱动指南Linux中通用SPI设备驱动
    的头像 发表于 01-23 11:02 3454次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>驱动指南Linux中通用SPI<b class='flag-5'>设备</b>驱动

    北京RK3568开发板OpenHarmony系统南向驱动开发内核HDF驱动框架架构

    北京RK3568开发板OpenHarmony系统南向驱动开发内核HDF驱动框架架构
    的头像 发表于 03-11 14:13 1566次阅读
    北京<b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>OpenHarmony系统南向驱动<b class='flag-5'>开发</b><b class='flag-5'>内核</b>HDF驱动框架架构

    【教程上新】基于iTOP-RK3568开发板的OpenCV开发手册

    【教程上新】基于iTOP-RK3568开发板的OpenCV开发手册
    的头像 发表于 02-08 15:22 2003次阅读
    【教程上新】基于<b class='flag-5'>迅</b><b class='flag-5'>为</b>iTOP-<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>的OpenCV<b class='flag-5'>开发</b>手册

    RK3568开发板资料20个+手册+配套视频教程

    RK3568开发板资料20个+手册+配套视频教程
    的头像 发表于 02-14 14:37 1.1w次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>资料20个+手册+配套视频教程

    基于RK3568开发板的嵌入式学习之Linux驱动视频

    基于RK3568开发板的嵌入式学习之Linux驱动视频
    的头像 发表于 05-19 16:30 1743次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b>基于<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>的嵌入式学习之Linux驱动视频

    RK3568开发板系统编程手册全新升级

    RK3568开发板系统编程手册全新升级
    的头像 发表于 06-25 15:50 1897次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>系统编程手册全新升级

    RK3568开发板GPIO之外接模块

    RK3568开发板GPIO之外接模块
    的头像 发表于 08-24 17:41 2851次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>GPIO之外接模块

    RK3568开发板可实现多屏异显控方案

    RK3568开发板可实现多屏异显控方案
    的头像 发表于 07-15 17:30 2622次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>可实现多屏异显控方案

    RK3568开发板外接模块之HX711 称重模块

    RK3568开发板外接模块之HX711 称重模块
    的头像 发表于 08-30 15:24 2587次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>外接模块之HX711 称重模块

    RK3568开发板Debian系统使用python 进行摄像头开发

    RK3568开发板Debian系统使用python 进行摄像头开发
    的头像 发表于 09-14 16:58 2560次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>Debian系统使用python 进行摄像头<b class='flag-5'>开发</b>

    RK3568开发板助力智能车载产业快速发展

    RK3568开发板助力智能车载产业快速发展
    的头像 发表于 01-23 13:59 1233次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>助力智能车载产业快速发展

    RK3568开发板驱动开发指南-输入子系统

    RK3568开发板驱动开发指南-输入子系统
    的头像 发表于 02-23 15:11 2081次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>驱动<b class='flag-5'>开发</b>指南-输入子系统

    基于RK3568开发板全国产平台,快速实现APP开机自启动技术分享

    基于RK3568开发板全国产平台,快速实现APP开机自启动技术分享
    的头像 发表于 11-21 13:58 1429次阅读
    基于<b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>全国产平台,快速实现APP开机自启动<b class='flag-5'>技术</b>分享

    RK3568开发板模型推理测试实战LPRNet 车牌识别

    RK3568开发板模型推理测试实战LPRNet 车牌识别
    的头像 发表于 08-25 14:55 1076次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>模型推理测试实战LPRNet 车牌识别

    工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战:RK3568内核模块符号导出详解

    工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战:
    的头像 发表于 11-21 13:25 696次阅读
    【<b class='flag-5'>迅</b><b class='flag-5'>为</b>工业<b class='flag-5'>RK3568</b>稳定可靠】itop-<b class='flag-5'>3568</b><b class='flag-5'>开发板</b>Linux驱动<b class='flag-5'>开发</b>实战:<b class='flag-5'>RK3568</b><b class='flag-5'>内核</b>模块符号导出详解