当前位置:首页>Linux>Linux debugfs文件系统及常见调试节点介绍

Linux debugfs文件系统及常见调试节点介绍

  • 2026-09-08 04:31:10
Linux debugfs文件系统及常见调试节点介绍

更多内容可以加入Linux系统知识库套餐(教程+视频+答疑)

文章目录

  • 一、什么是debugfs
  • 二、/proc/filesystems
  • 三、debugfs的挂载
    • 3.1、fstab 的文件结构
    • 3.2、手动挂载与卸载
  • 四、debugfs 常见目录有哪些
    • 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
    • 4.5、suspend_stats

一、什么是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

字段详解:

文件系统(<文件系统>)

  • 表示需要挂载的设备或资源。
  • 可以是:
    • 磁盘分区设备路径(如 /dev/sda1)。
    • 分区的 UUID(如 UUID=xxxx-xxxx)。
    • 分区的标签(如 LABEL=mydata)。
    • 网络文件系统(如 NFS 的 server:/path)。
    • 特殊虚拟文件系统(如 proc 或 tmpfs)。

挂载点(<挂载点>)

  • 表示文件系统挂载的位置(路径)。
  • 示例:
    • 根文件系统 /
    • /home、/boot 等目录
    • none 表示没有特定挂载点(通常用于虚拟文件系统)。

文件系统类型(<文件系统类型>)

  • 指定文件系统的类型。
  • 常见类型:
    • ext4:常用的 Linux 文件系统。
    • xfs:另一种高性能文件系统。
    • vfat:兼容 FAT 文件系统(适合 U 盘)。
    • ntfs:Windows 的 NTFS 文件系统。
    • swap:交换分区。
    • tmpfs:内存文件系统。
    • proc:虚拟文件系统,用于内核和进程信息。

挂载选项(<挂载选项>)

  • 定义挂载时的选项,可以是单个或多个,以逗号分隔。
  • 常见选项:
    • defaults:默认选项,包含 rw(读写)、relatime(减少写入)等。
    • ro:只读挂载。
    • rw:读写挂载。
    • noexec:禁止执行二进制文件。
    • nosuid:禁止使用 SUID 和 SGID 权限位。
    • nodev:不允许设备文件。
    • async/sync:异步/同步 I/O。
    • noatime/relatime:控制文件访问时间的更新。

dump()

  • 指定是否需要使用 dump 工具备份该文件系统:
    • 0:不需要备份。
    • 1:需要备份。

fsck()

  • 指定文件系统在启动时是否需要检查(由 fsck 工具完成):
    • 0:不检查。
    • 1:优先检查(通常根文件系统为 1)。
    • 2:非根文件系统按顺序检查。

3.2、手动挂载与卸载

mount

四、debugfs 常见目录有哪些

挂载后,/sys/kernel/debug 目录下会有多个子目录或文件,这些条目可能根据内核配置和加载的模块不同而有所不同。例如:

4.1、/sys/kernel/debug/gpio

4.2、/sys/kernel/debug/pinctrl

  • 了解系统GPIO复用情况
  • 了解系统GPIO 驱动能力

pinmux-pins :复用功能进行操作

实现位置:

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

4.3、/sys/kernel/debug/wakeup_sources

  • 说明:通过此节点,可以实时了解,驱动的运行情况
  • 排查:系统未进入休眠的原因

4.4、/sys/kernel/debug/sleep_time

4.5、suspend_stats

最新文章

随机文章