/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 一起使用。

相关推荐
楼兰公子13 天前
为 RK3588 构建 Debian 14 (forky) 根文件系统镜像,集成 BusyBox 1.38
rk3588·buildroot
楼兰公子16 天前
基于RK3588平台的ALSA音频学习与开发指南
音视频·rk3588
指尖在键盘上舞动16 天前
RKNN 模型部署:onnx转rknn后精度下降 —— 精度调优与问题排查
python·ubuntu·rk3588·rknn·onnx·npu
深圳英康仕16 天前
一款面向AGV智能搬运机器人的RK3588工控机的数据资料整理
嵌入式硬件·rk3588·工控机·agv·智能搬运机器人
道川贤林17 天前
EMMC开发环境的搭建与备份
linux·嵌入式·rk3588·orangepi
Industio_触觉智能21 天前
瑞芯微RK3588工控整机、边缘计算盒子规格书,参数配置性能说明,触觉智能IPC8801
人工智能·ai·边缘计算·rk3588·工控·rk3588j·arm整机
时光飞逝的日子1 个月前
嵌入式大模型部署:从 LLaMA-3 到 Qwen-1.5,在 RK3588 上实现本地 AI 推理(含模型量化教程)
rk3588·模型量化·llama-3·端侧大模型·qwen-1.5
NashSKY1 个月前
RK3588 Debian 系统安装与WiFi/SSH配置笔记
debian·ssh·rk3588
NashSKY1 个月前
RK3588 摄像头图形应用开发笔记
rk3588