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

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

3天内不再提示

拆解RK3568启动日志:Debian12+Linux6.1下的调试密码,初学者也能看懂

jf_44130326 来源:Linux1024 2026-02-06 16:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

嵌入式开发中,启动日志(Boot Log是硬件调试、驱动开发、系统优化的第一手资料。尤其是基于瑞芯微RK3568(四核A55,主打边缘计算、物联网设备)的方案,搭配Debian12系统与Linux6.1内核时,启动日志能直观反映从硬件初始化到用户登录的全流程。

本文将逐段解析RK3568的启动日志,带你看懂每个阶段的关键信息,理解其对开发者的价值,并教会初学者如何利用日志定位问题。文末附启动流程图和脑图,帮你建立系统化认知。

wKgZPGkaixeAebPbAACpobgZqkc950.png

一、启动日志全解析:从硬件到系统的9个关键阶段

RK3568的启动流程遵循硬件初始化引导程序内核加载用户态启动嵌入式标准逻辑,日志中每个阶段都有明确的标识,我们按时间线拆解:

阶段1DDR内存初始化(硬件调试核心)

启动的第一步是初始化DDR(内存),这是硬件能否正常工作的基础,日志中对应开头的DDR相关配置:

LPDDR4X,324MHzBW=32Col=10Bk=8CS0 Row=16CS1 Row=16CS=2Die BW=16Size=4096MBchangeto324MHz →528MHz →780MHz →1560MHz(final freq)vrefinner16%, vrefout22% (电压基准参数)clkskew0x26 (时钟偏移)

关键信息

内存类型:LPDDR4X,容量4GB(符合RK3568的硬件规格);

频率切换:从324MHz(初始)逐步升频到1560MHz(最终工作频率),需确认硬件供电是否能支撑高频;

时序参数:clk skew(时钟偏移)、vref(电压基准)直接影响内存稳定性,若后续出现内存报错,需优先检查这些参数。

阶段2SPL引导(次级程序加载器)

SPLSecondary Program Loader)是迷你引导程序,负责初始化基础硬件(如MMCSPI)并加载主U-Boot,日志中对应:

U-Boot SPL2017.09(Oct022025-132555)sfccmd=9fH(6BH-x4) → unknown raw ID000(SPI Flash识别失败)Tryingto boot from MMC2 → MMC no card present (MMC2无卡)Tryingto boot from MMC1 → SPL AB-slot _a, successful0, tries-remain7(MMC1成功)

关键信息

启动介质优先级:SPL先尝试SPI Flash(失败),再试MMC2(无卡),最后MMC1(成功),开发者可通过修改U-Boot配置调整优先级;

AB-slotMMC1支持“AB分区启动Android常用的双系统备份机制),此处尝试_slot_a,适合需要高可靠性的设备。

阶段3U-Boot与安全固件(BL31+OP-TEE

U-Boot启动后,会加载ARM可信固件(BL31)和安全操作系统OP-TEE),这是嵌入式设备安全启动的核心:

NOTICE BL31 v2.3()v2.3-645-g8cea6ab0bcl, fwver v1.44(ATF版本)ITCOP-TEE version3.13.0-860-g6c78a7d8c (OP-TEE版本)INFO  Using opteed sec cpu_context! (启用安全上下文)Jumpingto U-Boot(0x00a00000) via ARM Trusted Firmware(0x00040000)

关键信息

安全组件版本:BL31v1.44)和OP-TEEv3.13.0)需与内核、U-Boot版本兼容,否则会出现启动卡死

跳转地址:U-Boot加载到0x00a00000BL310x00040000,需确认内存地址分配无冲突。

阶段4Linux内核启动(驱动与硬件适配)

内核启动是日志中最复杂的部分,涵盖CPU、内存、外设驱动的初始化,我们挑核心信息解析:

1)硬件基础初始化

[  0.980086]Booting Linux on physical CPU0x0000000000[0x412fd050](CPU型号:ARM Cortex-A55)[  0.980114]Linux version6.1.84(sc@linux1024) (内核版本)[  0.995619] Machinemodel: Rockchip RK3568 Linux1024 EVB1 DDR4 V10 Board (硬件型号)[  1.058549] Zoneranges: DMA [mem0x0000000000200000-0xffffffff], Normal [mem0x100000000-0x1ffffffff] (内存分区)

CPU4A55(后续日志会显示“Brought up 1 node, 4 CPUs”);

内存分区:DMA区(用于外设访问)和Normal区(主内存),总内存4GB(对应0x002000000x1ffffffff)。

2)驱动加载状态

内核会自动加载硬件驱动,日志中用probed表示成功,error表示失败:

成功案例:

[  1.429266] rockchip-gpio fdd60000.gpio: probedpinctrl:gpio@fdd60000GPIO驱动成功)[  2.260806] rga2 fdeb0000.rk_rga: probe successfully, irq =87RGA2图形加速驱动成功)[  2.300120] mali fde60000.gpu:Probedasmali0 (MaliGPU驱动成功)

失败案例(需重点关注):

[  2.483354] GTP-ERR[_do_i2c_write432]: I2c transfer error! (-110) (GTP触摸芯片I2C超时)[  5.910894] GTP-ERR[gt1x_ts_probe587]: GTPinitfailed!!! (触摸驱动初始化失败)[FAILED] Failed to start usbdevice.service: Manage USB device functions. (USB设备服务启动失败)

阶段5:文件系统挂载(系统可用性基础)

内核启动后,会挂载根文件系统(Debian12使用ext4),日志中对应:

[  6.088111]EXT4-fs (mmcblk0p6) recovery complete (mmcblk0p6分区修复完成)[  6.088308]EXT4-fs (mmcblk0p6) mounted filesystem with ordered data mode (根分区挂载成功)[  8.422110]EXT4-fs (mmcblk0p7) mounted filesystem with ordered data mode (oem分区挂载)[  8.527496]EXT4-fs (mmcblk0p8) mounted filesystem without journal (userdata分区挂载)

关键信息

分区对应:mmcblk0EMMC设备,p6是根分区(/)、p7oem分区(厂商数据)、p8userdata(用户数据);

日志中“without journal”表示userdata分区关闭了ext4日志(适合对性能要求高的场景)。

阶段6:用户态初始化(systemd服务管理)

Debian12使用systemd管理系统服务,日志中用[ OK ][FAILED]标识服务状态:

成功服务:

[ OK ]Started rkaiq_3A.service: Enable Rockchip camera engine rkaiq (RK相机引擎服务成功)[ OK ] Started ssh.service: OpenBSD Secure Shell server (SSH服务成功,可远程登录)[ OK ] Started lightdm.service: Light Display Manager (图形登录管理器成功)

警告/失败服务(需优化):

Configuration file lib/systemd/system/rkaiq_3A.serviceismarked world-writable (服务文件权限过宽,有安全风险)[FAILED] Failed to start usbdevice.service (USB服务失败,需检查驱动或配置)

阶段7:最终登录(系统就绪)

当所有服务启动完成后,系统进入登录界面:

Welcometo Debian GNU/Linux12(bookworm)!root@linaro-alip# (root用户登录成功,系统就绪)

二、启动日志对开发者的3大核心价值

启动日志不是无用的打印信息,而是嵌入式开发的调试指南针,其价值主要体现在3个维度:

1.硬件调试:验证硬件设计正确性

DDR稳定性:若日志中出现“DDR init failed”,需检查硬件供电(如VDD_DDR)、时序参数(clk skewtdqss)是否与datasheet匹配;

外设连接:比如“GTP触摸I2C超时,可能是硬件接线错误(SDA/SCL接反)、上拉电阻缺失,或触摸芯片本身故障;

供电检查:日志中vdd_logic init 900000 uV(逻辑供电900mV)、vdd_gpu init 900000 uVGPU供电900mV),若数值异常(如低于800mV),会导致外设工作不稳定。

2.驱动开发:定位驱动适配问题

驱动加载失败:日志中“probe failed”表示驱动未正确匹配硬件,需检查设备树(DTS)中硬件地址是否正确(如I2C设备地址0x14是否与实际一致);

兼容性问题:比如Mali GPU驱动“probed as mali0”但后续“gpu hang”,需确认内核版本与GPU驱动版本是否兼容(RK3568Mali G52-2EE需搭配特定版本驱动);

资源冲突:日志中can't request region for resource [mem 0xfde40000-0xfde4ffff]”表示NPU内存地址被占用,需修改设备树调整内存分配。

3.系统优化:缩短启动时间、提升稳定性

启动时间分析:日志中每个阶段都有时间戳(如[ 0.980086]),可统计各阶段耗时——比如SPL阶段耗时100ms,内核启动耗时5s,用户态服务耗时3s,针对性优化慢阶段(如禁用无用服务);

服务管理:通过systemctl status usbdevice.service查看失败服务的详细日志,禁用无关服务(如不需要相机可关闭rkaiq_3A.service);

文件系统优化:日志中“ext4 recovery complete”表示根分区上次异常关机,可通过e2fsck提前修复,避免启动时耗时修复。

三、初学者如何利用启动日志?3步上手法

对嵌入式初学者来说,不用一开始看懂所有细节,掌握按阶段拆分抓关键字查手册3步方法即可:

第一步:按启动阶段拆分日志

先在日志中标记出6个核心阶段,对应前文解析的结构:

1.DDR初始化:找“DDR”“LPDDR4X”“Size”关键字;

2.SPL/U-Boot:找“U-Boot SPL”“Trying to boot from”

3.安全固件:找“BL31”“OP-TEE”

4.内核启动:找“Linux version”“Booting Linux”“probed”“error”

5.文件系统:找“EXT4-fs”“mounted”

6.用户态:找“systemd”“[ OK ]”“[FAILED]”

第二步:关注关键判断词

日志中80%的问题都能通过关键字定位:

成功标识OKprobedmountedBooted

失败标识errorFAILEDtimeoutinit failed

硬件信息CPUDRAMMMCI2CUSB(对应具体硬件)。

举例:看到“GTP-ERR: I2c transfer error (-110)”,先确认:

1.阶段:内核驱动加载;

2.硬件:GTP触摸芯片(I2C总线);

3.问题:I2C超时(错误码- 110),优先检查硬件接线。

第三步:搭配工具深入调试

光看日志不够,需用工具进一步分析:

1.实时查看日志:系统启动后,用dmesg查看内核日志,journalctl -u usbdevice.service查看特定服务的详细日志;

2.日志保存:用dmesg > boot.log保存日志到文件,方便后续分析;

3.硬件手册对照:比如RK3568的《Datasheet》中“I2C控制器章节,确认时钟频率、地址是否与日志中一致。

四、可视化工具:启动流程与脑图

为了帮你更直观理解,我整理了RK3568的启动流程图和核心脑图:

1.启动流程图

wKgZPGkaixeAWmQhAAE6OHtqRIo360.png

2.启动日志核心脑图

wKgZPGkaixeAM_ziAAFNX7AbNrI310.png

五、总结:启动日志是嵌入式开发的显微镜

RK3568+Debian12的开发者来说,启动日志不仅是启动过程的记录,更是:

硬件工程师万用表:验证DDRI2CUSB等硬件是否正常;

驱动工程师的调试器:定位驱动适配与兼容性问题;

系统工程师的优化指南:缩短启动时间、提升系统稳定性;

初学者的学习手册:理解嵌入式系统01的启动逻辑。

下次拿到RK3568的启动日志,不妨按阶段拆分抓关键字查手册的步骤试试——你会发现,很多之前卡壳的问题,都能在日志中找到答案。

如果觉得有用,欢迎分享给身边的嵌入式同行,也可以在评论区留言你的日志调试经历~

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

    关注

    5209

    文章

    20655

    浏览量

    336974
  • Linux
    +关注

    关注

    88

    文章

    11817

    浏览量

    219535
  • RK3568
    +关注

    关注

    5

    文章

    654

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞芯微RK3568:Debian系统如何安装Docker

    本文基于HD-RK3568-IOT评估板演示Debian系统安装Docker,该方法适用于RK356X全系产品。
    的头像 发表于 09-18 17:26 2680次阅读
    瑞芯微<b class='flag-5'>RK3568</b>:<b class='flag-5'>Debian</b>系统如何安装Docker

    RK3568-GDB程序调试方法说明

    RK3568-GDB程序调试方法说明
    的头像 发表于 01-19 16:16 3581次阅读
    <b class='flag-5'>RK3568</b>-GDB程序<b class='flag-5'>调试</b>方法说明

    RK3568-Linux系统使用手册(二)

    RK3568-Linux系统使用手册(二)
    的头像 发表于 01-22 10:48 2913次阅读
    <b class='flag-5'>RK3568-Linux</b>系统使用手册(二)

    RK3568-Linux系统启动卡制作及系统固化

    RK3568-Linux系统启动卡制作及系统固化
    的头像 发表于 01-22 11:06 3134次阅读
    <b class='flag-5'>RK3568-Linux</b>系统<b class='flag-5'>启动</b>卡制作及系统固化

    【HZ-RK3568开发板免费体验】HZ-RK3568开发板操作系统编译

    : linux-5.10-gen-rkr6 Log saved at /home/jack/HZ-EVM-RK3568-5.10-KERNEL-SDK/output/sessions/2025-08-13_09-14-12
    发表于 08-17 09:15

    怎样对RK3568 Debian10 EC20进行调试

    怎样对RK3568 Debian10 EC20进行调试呢?有哪些调试步骤?
    发表于 03-02 10:50

    怎样对RK3568 Debian10 AP6275S Bluetooth进行调试

    怎样对RK3568 Debian10 AP6275S Bluetooth进行调试呢?
    发表于 03-02 06:06

    RK3568 Debian10 AP6275s wifi的调试步骤有哪些呢

    RK3568 Debian10 AP6275s wifi的调试步骤有哪些呢?
    发表于 03-02 08:50

    【求助】自研RK3568工控板,原厂SDK的Linux启动失败

    在哪里,感谢。附件有我启动日志以及设备树的配置。 目前主要是想把linux内核跑起来,在linux可以进行很多的验证工作。*附件:
    发表于 10-09 08:29

    linux初学者入门

    linux初学者入门
    发表于 10-27 14:34 14次下载
    <b class='flag-5'>linux</b><b class='flag-5'>初学者</b>入门

    只有工程师能看懂的动态图你能看懂几个?

    本文档的主要内容详细介绍的是只有工程师能看懂的动态图你能看懂几个?
    的头像 发表于 05-18 09:55 6832次阅读
    只有工程师<b class='flag-5'>能看懂</b>的动态图你<b class='flag-5'>能看懂</b>几个?

    ROC RK3568 PC固件Debian

    电子发烧友网站提供《ROC RK3568 PC固件Debian.txt》资料免费下载
    发表于 09-20 09:51 8次下载
    ROC <b class='flag-5'>RK3568</b> PC固件<b class='flag-5'>Debian</b>

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

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

    电路图你能看懂

    电子发烧友网站提供《电路图你能看懂.pdf》资料免费下载
    发表于 10-07 09:58 49次下载

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

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