Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there any general way to know the name of the driver of all the devices on a linux machine? For example, I want to know the name of my network interface driver and the name of my webcam driver. How can I do it?

share|improve this question
up vote 2 down vote accepted

For devices in /dev check the corresponding entry in /sys/class/<device>/device/driver. Here an example:

ls -l /sys/class/tty/ttyUSB0/device/driver
lrwxrwxrwx 1 root root 0 2013-07-15 11:08 /sys/class/tty/ttyUSB0/device/driver -> ../../../../../../../../../bus/usb-serial/drivers/ftdi_sio

Now you know it's the ftdi_sio. The module can be found with lsmod | grep ftdi_sio.

Another way is to run lspci -k, which nicely tells you which modules are used for which device.

share|improve this answer
fwiw, systool is a generic tool for querying and printing sysfs information in bulk. It might be useful to work that into your answer. The -D option will cause matching devices to be printed underneath their respective kernel modules. – Bratchley Jul 15 '13 at 13:10
For example: dpaste.de/HPdCK – Bratchley Jul 15 '13 at 13:11
@JoelDavis - is systool a standard tool? I didn't see it on any of my RHEL based boxes. – slm Jul 15 '13 at 20:19
@slm yep it's an old 'un too, came out about the same time sysfs did, which was around 2004 or 2005 I think. It's installed with the sysfsutils package that doesn't get updated too often, though (which I take to mean the project has stalled). Not sure why the name is so different but a lot of the documentation I'm finding online seems to imply ambitious plans for the project that apparently never materialized. – Bratchley Jul 15 '13 at 20:31

I believe this probably does what you want:

sudo lshw
share|improve this answer

With this command you should find the name of your driver : lsmod

share|improve this answer
This will find the loadable module NOT necessarily the driver. BTW, I did not generate the downvote. Remember a driver can also be contained in a kernel statically, and thus this command would not be helpful as it lists only modules. – mdpc Jul 15 '13 at 18:28

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.