Назад | Перейти на главную страницу

Как узнать, какой модуль ядра обслуживает устройство / dev?

Как узнать, какой модуль ядра (набрав lsmod) обслуживает конкретное устройство в / dev?

Другими словами, допустим, у меня есть устройство / dev / mouse0, и я хочу узнать, какой модуль ядра установлен для обслуживания этого устройства. Как я могу это сделать?

Другой способ взглянуть на это: некоторые загруженные модули ядра связывают себя с устройством в / dev. Как узнать, к какому устройству (ам) подключен модуль?

Обычно вы можете найти эту информацию, покопавшись /sys если вы используете ядро ​​2.6.

например

$ ls -la /dev/input/mouse1   
crw-r----- 1 root root 13, 33 2010-03-08 15:56 /dev/input/mouse1
$ ls -la /sys/class/input/mouse1/device/driver 
lrwxrwxrwx 1 root root 0 2010-05-12 23:33 /sys/class/input/mouse1/device/driver -> ../../../../../../bus/usb/drivers/usbhid

Итак, драйвер в этом случае usbhid. Возможно, есть лучший / более аккуратный способ сделать это, но я считаю, что копание в sysfs обычно выполняет свою работу.

не уверен, что это поможет найти модуль (хотя должно), но вы можете использовать lsof чтобы узнать, что обращается к конкретному файлу устройства. lsof /dev/mouse0 например, хотя вы можете сделать больше с параметрами командной строки для lsof

больше примеров того, как использовать lsof http://wikis.sun.com/pages/viewpage.action?pageId=49906332