8

How do I find out which kernel module (as seen by typing lsmod) is servicing a particular device in /dev?

In other words, say I have a device, /dev/input/mouse0 and I want to find out which kernel module is installed to service that device. How do I do that?

Another way to look at this is, some loaded kernel modules associate themselves with a device in /dev. How does one find out which device(s) a module is "attached" to?

AJM
  • 205
regulatre
  • 286
  • 3
  • 11

2 Answers2

11

You can usually find this information by digging through /sys if you're on a 2.6 kernel.

e.g.

$ 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

So the driver in this case is usbhid. There might be a better/neater way of doing this but I find digging in sysfs usually gets the job done.

James
  • 7,809
-1

not sure if this will help finding the module (though it should) but you can use lsof to see what is accessing the particular device file. lsof /dev/mouse0 for example, though you can do more with the commandline options to lsof

more examples of how to use lsof http://wikis.sun.com/pages/viewpage.action?pageId=49906332

cpbills
  • 2,790