更多内容可以加入Linux系统知识库套餐(教程+视频+答疑)
文章目录
- 4.1、/sys/kernel/debug/gpio
- 4.2、/sys/kernel/debug/pinctrl
- 4.3、/sys/kernel/debug/wakeup_sources
- 4.4、/sys/kernel/debug/sleep_time
一、什么是debugfs
特点:
- 轻量级:debugfs 的实现非常简单,主要用于调试和诊断,不适合作为生产环境的核心工具。
- 灵活性:它允许开发者在运行时动态地添加或移除文件和目录,以便提供与内核模块或子系统相关的调试信息。
- 交互性:通过标准的文件操作(如读取、写入),用户可以轻松地获取内核的实时状态或修改内核的某些运行参数。
用途: - 调试内核模块:很多内核模块会在 debugfs 中创建条目,便于开发者查看模块的状态或调整参数。
- 获取内核状态信息:如调试文件中存储的统计信息、性能数据、硬件信息等。
- 修改内核行为:某些条目可以通过写操作调整内核模块的行为或测试特定功能。
- 查看特定子系统信息:如 I/O 调度、内存管理、文件系统状态等。
二、/proc/filesystems
/proc/filesystems 是一个特殊的虚拟文件,它显示了当前内核中支持的文件系统类型列表。这个文件不包含实际的文件系统,而是列出了内核支持的文件系统类型,这些类型可以在系统中挂载和使用。
每行显示一个文件系统类型,格式通常是:
nodev filesystem_type
其中:
- nodev 表示这些文件系统不是设备文件系统,而是内核中的虚拟文件系统或者网络文件系统。
- filesystem_type 是文件系统的名称,例如 ext4、tmpfs、proc 等。
通过读取 /proc/filesystems 可以了解系统支持的文件系统类型,这对于系统管理员在挂载文件系统或了解系统能力方面很有用。

三、debugfs的挂载
3.1、fstab 的文件结构
/etc/fstab 是 Linux 和 Unix 系统中用于定义文件系统自动挂载的配置文件。它的全称是 File System Table,内容描述了系统启动时哪些文件系统需要挂载、挂载到哪里、以及挂载时的参数。
/etc/fstab 文件通常由多行配置组成,每行定义一个挂载点。每行的字段按以下格式排列:
root@lubancat:/etc# vim fstab
debugfs /sys/kernel/debug debugfs defaults 00
字段详解:
文件系统(<文件系统>)
- 分区的 UUID(如 UUID=xxxx-xxxx)。
- 网络文件系统(如 NFS 的 server:/path)。
- 特殊虚拟文件系统(如 proc 或 tmpfs)。
挂载点(<挂载点>)
- none 表示没有特定挂载点(通常用于虚拟文件系统)。
文件系统类型(<文件系统类型>)
- vfat:兼容 FAT 文件系统(适合 U 盘)。
- ntfs:Windows 的 NTFS 文件系统。
挂载选项(<挂载选项>)
- defaults:默认选项,包含 rw(读写)、relatime(减少写入)等。
- nosuid:禁止使用 SUID 和 SGID 权限位。
- noatime/relatime:控制文件访问时间的更新。
dump()
fsck()
- 指定文件系统在启动时是否需要检查(由 fsck 工具完成):
3.2、手动挂载与卸载
mount
四、debugfs 常见目录有哪些
挂载后,/sys/kernel/debug 目录下会有多个子目录或文件,这些条目可能根据内核配置和加载的模块不同而有所不同。例如:

4.1、/sys/kernel/debug/gpio
4.2、/sys/kernel/debug/pinctrl
pinmux-pins :复用功能进行操作

实现位置:

Pinconf-pins :对驱动能力、上下拉

4.3、/sys/kernel/debug/wakeup_sources
4.4、/sys/kernel/debug/sleep_time
4.5、suspend_stats