【问题标题】:Identify kernel module which created a sysfs entry识别创建 sysfs 条目的内核模块
【发布时间】:2012-10-25 17:35:31
【问题描述】:

在一个正在运行的 Linux 系统上,我想知道哪个设备驱动程序模块创建了一个特定的 sysfs 条目。有可能知道吗?我知道我可以 grep 内核源代码中的相关字符串并尝试识别。但是,有没有办法不这样做?

【问题讨论】:

    标签: linux-kernel linux-device-driver


    【解决方案1】:

    您可以通过查看源代码找到哪个驱动程序创建了 sysfs 条目。如果驱动程序在其初始化/退出序列中分别使用 device_create_file()/device_remove_file(),那么您可以确定驱动程序已创建了一个 sysfs 属性文件。 您还可以在源代码中找到 DEVICE_ATTR(_name, _mode, _show, _store) 宏,以了解 sysfs 文件提供了哪些功能。 通常,您可以 cat 文件或向其回显字符串。 cat /sys/.../file 对应 _show 函数,echo /sys/.../file 对应 _store 函数宏。

    【讨论】:

    • 感谢三丽鸥的回复。我知道你提到的那件事。我的问题是,给定一个 sysfs 条目,是否可以在正在运行的 Linux 系统上判断它属于哪个驱动程序模块(如果由 lsmod 列出)。
    • 我怀疑有没有直接的方法可以做到这一点。如果你遇到了,请在这里分享:)
    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多