Como posso saber qual módulo do kernel está atendendo a um dispositivo / dev?

7

Como faço para descobrir qual módulo do kernel (como visto digitando lsmod) está atendendo a um dispositivo em particular em / dev?

Em outras palavras, digamos que eu tenha um dispositivo, / dev / mouse0 e quero descobrir qual módulo do kernel está instalado para atender esse dispositivo. Como faço isso?

Outra maneira de ver isso é que alguns módulos do kernel carregados se associam a um dispositivo em / dev. Como se descobre em quais dispositivos um módulo está "conectado"?

    
por regulatre 13.05.2010 / 00:17

2 respostas

9

Normalmente, você pode encontrar essas informações explorando /sys se você estiver em um kernel 2.6.

por exemplo,

$ 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

Portanto, o driver, neste caso, é usbhid . Pode haver uma maneira melhor / mais simples de fazer isso, mas acho que cavar em sysfs geralmente faz o trabalho.

    
por 13.05.2010 / 00:36
0

Não tenho certeza se isso ajudará a encontrar o módulo (embora deva), mas você pode usar lsof para ver o que está acessando o arquivo de dispositivo específico. lsof /dev/mouse0 por exemplo, embora você possa fazer mais com as opções de linha de comando para lsof

mais exemplos de como usar lsof link

    
por 13.05.2010 / 00:20