2012-10-25 69 views
7

在運行的Linux系統上,我想知道哪個設備驅動程序模塊創建了特定的sysfs條目。有可能知道嗎?我知道我可以grep內核源碼中的相關字符串並嘗試識別。但是,有沒有辦法做到這一點?確定創建sysfs條目的內核模塊

+0

這是C或C++嗎? – vdbuilder

回答

2

你可以找到哪個驅動程序通過源代碼創建了一個sysfs條目。如果驅動程序分別在其init/exit序列中使用device_create_file()/ device_remove_file(),則可以確定驅動程序已創建sysfs屬性文件。 您還可以在源文件中找到DEVICE_ATTR(_name,_mode,_show,_store)宏以找出sysfs文件提供的功能。 通常,您可以捕捉該文件或向其回送一個字符串。 A cat /sys/.../file,將對應_show函數和一個echo /sys/.../file將對應於宏中提到的_store函數。

+0

感謝三麗鷗的答覆。我知道你提到的事情。我的問題是,給定一個sysfs條目,是否可以告訴哪個驅動程序模塊(如果由lsmod列出)屬於正在運行的Linux系統上。 – Sann

+0

我懷疑有一種直接的方式來做到這一點..如果你碰到一個,那麼請在這裏分享:) – shinymetal