Как узнать, какой модуль ядра (набрав 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