I know about lsmod, but how do I figure out which driver does what?

$ readlink /sys/class/net/wlan0/device/driver

In other words, the /sys hierarchy for the device (/sys/class/net/$interface/device) contains a symbolic link to the /sys hierarchy for the driver. There you'll also find a symbolic link to the /sys hierarchy for the module, if applicable. This applies to most devices, not just wireless interfaces.

  • 4
    Or basename $( readlink /sys/class/net/eth0/device/driver ). – mattdm Feb 23 '11 at 0:09

Maybe there's a better way, but I've used lshw -class network (as root) and it gives me this output:

       description: Ethernet interface
       product: 82566MM Gigabit Network Connection
       vendor: Intel Corporation
       physical id: 19
       bus info: pci@0000:00:19.0
       logical name: eth0
       version: 03
       serial: 00:a0:d1:a3:87:c8
       size: 1GB/s
       capacity: 1GB/s
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=1.0.2-k2 duplex=full firmware=0.3-0 ip= latency=0 link=yes multicast=yes port=twisted pair speed=1GB/s
       resources: irq:29 memory:fc300000-fc31ffff memory:fc325000-fc325fff ioport:1840(size=32)
       description: Wireless interface
       product: PRO/Wireless 4965 AG or AGN [Kedron] Network Connection
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:06:00.0
       logical name: wlan0
       version: 61
       serial: 00:1d:e0:69:28:07
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=iwlagn ip= latency=0 multicast=yes wireless=IEEE 802.11abgn
       resources: irq:31 memory:c8000000-c8001fff
  *-network DISABLED
       description: Ethernet interface
       physical id: 3
       logical name: vboxnet0
       serial: 0a:00:27:00:00:00
       capabilities: ethernet physical
       configuration: broadcast=yes multicast=yes

You can grep for driver from that output. In my case I use lsmod | grep iwlagn, giving me:

iwlagn                 63559  0 
iwlcore                67702  1 iwlagn
mac80211              123574  2 iwlagn,iwlcore
cfg80211               87657  3 iwlagn,iwlcore,mac80211

Don't ask me what each of those mean :)

  • Thanks. I had tried using lshw, but the driver was lost within all the other configuration. :) – apoorv020 Feb 22 '11 at 9:11
  • 1
    PS, the 4th column is the dependencies column and 3rd column is the sum of these dependencies. One driver typically consists of several different .ko files, each of which has a corresponding in lsmod. – apoorv020 Feb 22 '11 at 9:13

If you're interested in USB based WiFi devices then you can see the driver name by using the lsusb command:

lsusb -t

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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