/sys/kernel/debug/目录解读

这是一个 Orange Pi 5 Plus(RK3588)开发板的 Linux 7.0.3 内核的 debugfs 目录。/sys/kernel/debug 是 Linux 内核的 debugfs 虚拟文件系统挂载点,用于提供内核调试信息,没有功能性用途,仅用于调试

下面按类别详细解释你目录下各个文件/目录的含义、应用场景,并给出实际 Demo。


一、核心基础设施类

目录/文件 说明 典型应用场景
debug_enabled 显示当前 debugfs 是否启用 确认调试功能可用性
devices_deferred 记录设备 probe 被延迟(deferred probe)的原因 排查设备驱动加载顺序问题
device_component component 框架的绑定状态 排查显示/DRM 子系统组件绑定失败
clear_warn_once 清除 WARN_ONCE/printk_once 的一次性标记 重新触发已被抑制的警告

Demo:查看延迟 probe 的设备

bash 复制代码
# 查看哪些设备因为依赖未满足而被延迟加载
cat /sys/kernel/debug/devices_deferred

二、时钟与电源管理类

目录/文件 说明 典型应用场景
clk 时钟树(clock tree)的完整信息 排查时钟配置错误、频率异常
opp Operating Performance Points(CPU/GPU 频率-电压表) 调频调压策略分析
energy_model 能效模型数据 调度器能耗优化调试
pm_genpd Generic Power Domain 状态 电源域开关状态排查
suspend_stats 系统休眠/唤醒统计 休眠唤醒故障分析
wakeup_sources 唤醒源统计 排查异常唤醒

Demo:查看时钟树

bash 复制代码
# 查看所有时钟的状态、使用率、父时钟
cat /sys/kernel/debug/clk/clk_summary

# 查看某个具体时钟
cat /sys/kernel/debug/clk/clk_core_rate

Demo:查看 OPP 表

bash 复制代码
# 查看 CPU 可用的频率-电压组合
cat /sys/kernel/debug/opp/opp_summary

三、GPIO / PinCtrl / I2C 类(嵌入式调试核心)

目录/文件 说明 典型应用场景
gpio GPIO 使用状态、标签、方向 排查 GPIO 冲突、确认引脚占用
pinctrl 引脚复用(mux)配置状态 确认引脚功能配置是否正确
i2c I2C 总线调试信息 I2C 通信故障排查

Demo:GPIO 调试(最常用)

bash 复制代码
# 查看所有 GPIO 的状态
cat /sys/kernel/debug/gpio

# 输出示例:
# GPIOs 0-31, platform/gpiochip0:
#  gpio-0   (                    |led_green           ) out hi
#  gpio-5   (                    |reset_button        ) in  hi IRQ

应用场景:确认某个 GPIO 是否被占用、方向是否正确、电平状态。

Demo:查看 PinCtrl 配置

bash 复制代码
# 查看每个 pin 的复用功能
cat /sys/kernel/debug/pinctrl/pinctrl-rockchip/pinmux-pins

# 查看 pin 配置(上下拉、驱动强度等)
cat /sys/kernel/debug/pinctrl/pinctrl-rockchip/pinconf-pins

四、DMA / 内存类

目录/文件 说明 典型应用场景
dma_buf DMA-BUF 缓冲区信息 GPU/显示缓冲区调试
dma_pools DMA 内存池状态 DMA 内存泄漏排查
dmaengine DMA 引擎通道状态 DMA 传输故障
fea10000.dma-controller 具体 DMA 控制器实例 查看 RK3588 各 DMA 通道使用情况
memblock 启动时内存分配记录 早期内存问题
slab Slab 分配器统计 内核内存使用分析
stackdepot 堆栈追踪存储 KASAN 等检测工具配套
swiotlb SWIOTLB 状态 DMA 映射回退机制调试

Demo:查看 DMA 通道状态

bash 复制代码
# 查看所有 DMA 通道的使用情况
cat /sys/kernel/debug/dmaengine/summary

# 查看特定 DMA 控制器
ls /sys/kernel/debug/fea10000.dma-controller/
cat /sys/kernel/debug/fea10000.dma-controller/status

五、块设备 / 存储类

目录/文件 说明 典型应用场景
block 块设备 I/O 统计 磁盘性能分析
bdi Backing Device Info(写回策略) 脏页回写调试
mmc0, mmc1 eMMC/SD 卡控制器调试 存储卡读写故障
spi-nor SPI NOR Flash 信息 Flash 读写调试
mtd MTD 设备信息 裸 Flash 设备调试
ufshcd UFS 控制器调试 UFS 存储故障

Demo:查看 MMC 状态

bash 复制代码
# 查看 eMMC/SD 卡寄存器状态
cat /sys/kernel/debug/mmc0/ios          # 当前 I/O 设置
cat /sys/kernel/debug/mmc0/regs         # 寄存器值
cat /sys/kernel/debug/mmc0/stat         # 统计信息

六、网络类

目录/文件 说明 典型应用场景
bluetooth 蓝牙子系统调试 蓝牙连接问题
ieee80211 WiFi (mac80211) 调试 WiFi 驱动问题
hns3 海思 hns3 网卡调试 以太网故障

Demo:蓝牙调试

bash 复制代码
# 查看蓝牙 HCI 层信息
cat /sys/kernel/debug/bluetooth/hci0/conn_info
cat /sys/kernel/debug/bluetooth/hci0/keys

七、多媒体 / 显示类(RK3588 重点)

目录/文件 说明 典型应用场景
dri Direct Rendering Infrastructure (DRM/KMS) 显示管道调试
v4l2 Video4Linux2 调试 摄像头视频流调试
media Media 子系统拓扑 视频数据流链路分析

Demo:DRM 显示调试

bash 复制代码
# 查看所有显示管道状态
cat /sys/kernel/debug/dri/0/state

# 查看连接器(HDMI/DP/MIPI)状态
cat /sys/kernel/debug/dri/0/connector_status

# 查看显存分配
cat /sys/kernel/debug/dri/0/framebuffer

Demo:V4L2 摄像头调试

bash 复制代码
# 查看 V4L2 设备拓扑
cat /sys/kernel/debug/v4l2/topology

# 查看具体视频节点信息
ls /sys/kernel/debug/v4l2/video0/

八、Tracing / 性能分析类(最强大的调试工具)

目录/文件 说明 典型应用场景
tracing ftrace 完整功能入口 内核函数追踪、性能分析
sched 调度器调试 CPU 调度问题

Demo:使用 ftrace 追踪函数调用(最实用的 Demo)

bash 复制代码
# 1. 进入 tracing 目录
cd /sys/kernel/debug/tracing

# 2. 查看可用的追踪器
cat available_tracers
# 输出:function function_graph nop ...

# 3. 启用函数追踪(追踪所有内核函数,开销较大)
echo function > current_tracer
echo 1 > tracing_on

# 4. 运行你要测试的程序...
sleep 5

# 5. 查看追踪结果
cat trace | head -100

# 6. 关闭追踪
echo 0 > tracing_on
echo nop > current_tracer

Demo:追踪特定函数

bash 复制代码
# 只追踪 gpio 相关函数
cd /sys/kernel/debug/tracing
echo nop > current_tracer
echo gpio* > set_ftrace_filter    # 过滤 gpio 开头的函数
echo function > current_tracer
echo 1 > tracing_on

# 执行 GPIO 操作后查看
cat trace

# 清理
echo 0 > tracing_on
echo > set_ftrace_filter

Demo:函数图追踪(带调用关系和时间)

bash 复制代码
cd /sys/kernel/debug/tracing
echo function_graph > current_tracer
echo 1 > tracing_on
# ... 执行操作 ...
echo 0 > tracing_on
cat trace | head -50

九、中断 / 定时器 / 杂项

目录/文件 说明 典型应用场景
hte Hardware Timestamping Engine 硬件时间戳调试
irq (隐含在 gpio 等中) 中断信息 中断风暴排查
rseq Restartable Sequences 用户态并发优化调试
remoteproc 远程处理器(MCU/R5)管理 RK3588 MCU 核心调试
virtio-ports VirtIO 串口状态 虚拟化调试

十、安全建议

⚠️ 重要提示 :debugfs 包含大量内核内部信息,某些文件可写,可能被利用提权:

  • 生产环境建议限制 debugfs 访问权限:mount -o remount,mode=700 /sys/kernel/debug
  • 容器环境不要挂载 /sys/kernel/debug,这是常见的容器逃逸向量
  • 多个 CVE(如 CVE-2026-31546、CVE-2026-43380)都与 debugfs 接口处理不当有关

总结:Orange Pi 5 Plus 常用调试组合

调试目标 使用的 debugfs 路径
GPIO 引脚冲突 /sys/kernel/debug/gpio + /sys/kernel/debug/pinctrl
显示/HDMI 问题 /sys/kernel/debug/dri/0/state
摄像头不工作 /sys/kernel/debug/v4l2/ + /sys/kernel/debug/media
系统卡顿/性能 /sys/kernel/debug/tracing/
eMMC/SD 故障 /sys/kernel/debug/mmc0/
设备不识别 /sys/kernel/debug/devices_deferred
休眠唤醒问题 /sys/kernel/debug/suspend_stats + /sys/kernel/debug/wakeup_sources

这些工具在 RK3588 平台的嵌入式 Linux 开发中非常实用,建议配合 dmesgsysfs 一起使用。

相关推荐
Industio_触觉智能1 天前
瑞芯微RK3588工控整机、边缘计算盒子规格书,参数配置性能说明,触觉智能IPC8801
人工智能·ai·边缘计算·rk3588·工控·rk3588j·arm整机
时光飞逝的日子9 天前
嵌入式大模型部署:从 LLaMA-3 到 Qwen-1.5,在 RK3588 上实现本地 AI 推理(含模型量化教程)
rk3588·模型量化·llama-3·端侧大模型·qwen-1.5
NashSKY11 天前
RK3588 Debian 系统安装与WiFi/SSH配置笔记
debian·ssh·rk3588
NashSKY12 天前
RK3588 摄像头图形应用开发笔记
rk3588
NashSKY13 天前
RK3588 Linux SDK 编译、烧录与 MIPI 屏配置流程
linux·rk3588
是专家不是砖家14 天前
RK3588 下位机搜索不到问题排查
rk3588·can-oepn·声光报警器·udp收不到数据
郭涤生16 天前
不同主机之间网络通信-以太网连接复习
开发语言·rk3588
郭涤生16 天前
飞凌 RK3588 开发板同显 / 异显模式切换
c++·rk3588
楼兰公子16 天前
RK3588 + Buildroot + Linux 7.0** 环境的内核调试进阶课题
rk3588·kernel·进阶调试