Linux Find Wireless Driver Chipset Information

Posted on in Categories , , , , last updated December 12, 2017

How do I find out Wireless driver chipset information under a Linux operating system? How do I get wireless card chipeset information without opening my systems or laptop using a Linux? How can I find out which Wi-Fi driver is installed on my Linux laptop? How do I see the information of currently installed WiFi drivers on my Ubuntu or Debian Linux laptop?

The simplest command to get this information is to use the lspci command. This utility show information about PCI buses in the system and devices connected to them. The PCI configuration space is restricted to root user. So you need to run this command as root user to get all possible information.

You may need to run update-pciids command to get the current version of the pci.ids file from the Internet and install it to get accurate results.

Syntax

The syntax is as follows:

lspci
lspci -k | more
lspci | less
lspci | grep -i intel
lspci | grep -i wireless

Sample outputs:

0c:00.0 Network controller: Intel Corporation PRO/Wireless 5300 AGN [Shiloh] Network Connection

Note down 0c:00.0 and enter the following command:
lspci -vv -s 0c:00.0
Sample outputs:

0c:00.0 Network controller: Intel Corporation PRO/Wireless 5300 AGN [Shiloh] Network Connection
	Subsystem: Intel Corporation Device 1121
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- 
	Kernel driver in use: iwlagn
	Kernel modules: iwlagn

So I am using iwlagn driver. To get driver information type the following modinfo command:
$ modinfo iwlagn
Sample outputs:

filename:       /lib/modules/2.6.32-23-generic-pae/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko
alias:          iwl4965
license:        GPL
author:         Copyright(c) 2003-2009 Intel Corporation 
version:        1.3.27k
description:    Intel(R) Wireless WiFi Link AGN driver for Linux
firmware:       iwlwifi-4965-2.ucode
firmware:       iwlwifi-5150-2.ucode
firmware:       iwlwifi-5000-2.ucode
firmware:       iwlwifi-6050-4.ucode
firmware:       iwlwifi-6000-4.ucode
srcversion:     BB501FCC68D0C8213107D3B
alias:          pci:v00008086d00000084sv*sd*bc*sc*i*
alias:          pci:v00008086d00000083sv*sd*bc*sc*i*
alias:          pci:v00008086d00000089sv*sd*bc*sc*i*
alias:          pci:v00008086d00000088sv*sd*bc*sc*i*
alias:          pci:v00008086d00000087sv*sd*bc*sc*i*
alias:          pci:v00008086d00000086sv*sd*bc*sc*i*
alias:          pci:v00008086d00004239sv*sd*bc*sc*i*
alias:          pci:v00008086d00004238sv*sd*bc*sc*i*
alias:          pci:v00008086d0000422Csv*sd*bc*sc*i*
alias:          pci:v00008086d0000422Bsv*sd*bc*sc*i*
alias:          pci:v00008086d0000008Esv*sd*bc*sc*i*
alias:          pci:v00008086d0000008Dsv*sd*bc*sc*i*
alias:          pci:v00008086d0000423Dsv*sd*bc*sc*i*
alias:          pci:v00008086d0000423Csv*sd*bc*sc*i*
alias:          pci:v00008086d0000423Bsv*sd00001011bc*sc*i*
alias:          pci:v00008086d0000423Asv*sd00001021bc*sc*i*
alias:          pci:v00008086d0000423Asv*sd00001001bc*sc*i*
alias:          pci:v00008086d00004237sv*sd*bc*sc*i*
alias:          pci:v00008086d00004236sv*sd*bc*sc*i*
alias:          pci:v00008086d00004235sv*sd*bc*sc*i*
alias:          pci:v00008086d00004232sv*sd*bc*sc*i*
alias:          pci:v00008086d00004237sv*sd00001216bc*sc*i*
alias:          pci:v00008086d00004232sv*sd00001326bc*sc*i*
alias:          pci:v00008086d00004232sv*sd00001306bc*sc*i*
alias:          pci:v00008086d00004232sv*sd00001206bc*sc*i*
alias:          pci:v00008086d00004232sv*sd00001305bc*sc*i*
alias:          pci:v00008086d00004232sv*sd00001205bc*sc*i*
alias:          pci:v00008086d00004230sv*sd*bc*sc*i*
alias:          pci:v00008086d00004229sv*sd*bc*sc*i*
depends:        iwlcore,mac80211,cfg80211
vermagic:       2.6.32-23-generic-pae SMP mod_unload modversions 586TSC 
parm:           swcrypto50:using software crypto engine (default 0 [hardware])
 (bool)
parm:           queues_num50:number of hw queues in 50xx series (int)
parm:           11n_disable50:disable 50XX 11n functionality (int)
parm:           amsdu_size_8K50:enable 8K amsdu size in 50XX series (int)
parm:           fw_restart50:restart firmware in case of error (int)
parm:           antenna:select antenna (1=Main, 2=Aux, default 0 [both]) (int)
parm:           swcrypto:using crypto in software (default 0 [hardware]) (int)
parm:           disable_hw_scan:disable hardware scanning (default 0) (int)
parm:           queues_num:number of hw queues. (int)
parm:           11n_disable:disable 11n functionality (int)
parm:           amsdu_size_8K:enable 8K amsdu size (int)
parm:           fw_restart4965:restart firmware in case of error (int)

Finally, you can run the following to get info about vendor & product code:
lspci -n -s 0c:00.0
Sample outputs:

0c:00.0 0280: 8086:4235

Where,

  • 0280 – Network controller:
  • 8086:4235 – Intel Corporation Ultimate N WiFi Link 5300

Or the all in one following option:
$ lspci -nn -s 0c:00.0
Sample outputs:

0c:00.0 Network controller [0280]: Intel Corporation Ultimate N WiFi Link 5300 [8086:4235]

Tip: Update pci database

Type the following command download new version of the PCI ID list to get accurate info from lspci:

sudo update-pciids
lspci | more
lspci | grep -i wireless

Sample outputs:

Fig.01: Running update-pciids and lspci commands on a Linux
Fig.01: Running update-pciids and lspci commands on a Linux

Once updated just pass the -k to the lspci command:
$ lspci -k
Sample outputs:

00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM Controller (rev 09)
	Subsystem: Lenovo 3rd Gen Core processor DRAM Controller
	Kernel driver in use: ivb_uncore
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
	Subsystem: Lenovo 3rd Gen Core processor Graphics Controller
	Kernel driver in use: i915
	Kernel modules: i915
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04)
	Subsystem: Lenovo 7 Series/C210 Series Chipset Family USB xHCI Host Controller
	Kernel driver in use: xhci_hcd
00:16.0 Communication controller: Intel Corporation 7 Series/C216 Chipset Family MEI Controller #1 (rev 04)
	Subsystem: Lenovo 7 Series/C216 Chipset Family MEI Controller
	Kernel driver in use: mei_me
	Kernel modules: mei_me
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)
	Subsystem: Lenovo 82579LM Gigabit Network Connection (Lewisville)
	Kernel driver in use: e1000e
	Kernel modules: e1000e
00:1a.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #2 (rev 04)
	Subsystem: Lenovo 7 Series/C216 Chipset Family USB Enhanced Host Controller
	Kernel driver in use: ehci-pci
00:1b.0 Audio device: Intel Corporation 7 Series/C216 Chipset Family High Definition Audio Controller (rev 04)
	Subsystem: Lenovo 7 Series/C216 Chipset Family High Definition Audio Controller
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
00:1c.0 PCI bridge: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 1 (rev c4)
	Kernel driver in use: pcieport
	Kernel modules: shpchp
00:1c.1 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2 (rev c4)
	Kernel driver in use: pcieport
	Kernel modules: shpchp
00:1c.2 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 3 (rev c4)
	Kernel driver in use: pcieport
	Kernel modules: shpchp
00:1d.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #1 (rev 04)
	Subsystem: Lenovo 7 Series/C216 Chipset Family USB Enhanced Host Controller
	Kernel driver in use: ehci-pci
00:1f.0 ISA bridge: Intel Corporation QM77 Express Chipset LPC Controller (rev 04)
	Subsystem: Lenovo QM77 Express Chipset LPC Controller
	Kernel driver in use: lpc_ich
	Kernel modules: lpc_ich
00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
	Subsystem: Lenovo 7 Series Chipset Family 6-port SATA Controller [AHCI mode]
	Kernel driver in use: ahci
	Kernel modules: ahci
00:1f.3 SMBus: Intel Corporation 7 Series/C216 Chipset Family SMBus Controller (rev 04)
	Subsystem: Lenovo 7 Series/C216 Chipset Family SMBus Controller
	Kernel modules: i2c_i801
02:00.0 System peripheral: Ricoh Co Ltd MMC/SD Host Controller (rev 07)
	Subsystem: Lenovo MMC/SD Host Controller
	Kernel driver in use: sdhci-pci
	Kernel modules: sdhci_pci
03:00.0 Network controller: Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] (rev 34)
	Subsystem: Intel Corporation Centrino Advanced-N 6205 AGN
	Kernel driver in use: iwlwifi
	Kernel modules: iwlwifi

Using lshw command

One can use the lshw command as follows
$ lshw -C network
$ lshw -C network | more

Look for “Wireless interface”. Here is a sample outputs:

Fig.02: Finding WiFi chipset and driver information on Linux
Fig.02: Finding WiFi chipset and driver information on Linux

The following grep command extract only needed info such as driver name and other stuff:
$ lshw -C network | grep -B 1 -A 12 'Wireless interface'

A note about USB WiFi device

You need to use the lsusb command:
$ lsusb
Try to look a wireless or network device in the list.

A note about lsmod command

To see the status or list of all drivers (modules) loaded in the Linux Kernel, run the lsmod command:
$ lsmod
$ lsmod | more

OR use the grep command/egrep command to filter outputs:
$ lsmod | grep -i wifi
Sample outputs:

iwlwifi               249856  1 iwldvm
cfg80211              610304  3 iwlwifi,mac80211,iwldvm

Look like I am using iwlwifi. Verify it with the following modinfo command:
$ modinfo iwlwifi

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

Share this on (or read 10 comments/add one below):

10 comment

  1. the output is below,can anyone tell me my chipset information,

    00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 18)
    00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 18)
    00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06)
    00:1a.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
    00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)
    00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 06)
    00:1c.1 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 2 (rev 06)
    00:1c.2 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 3 (rev 06)
    00:1c.4 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 5 (rev 06)
    00:1d.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
    00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a6)
    00:1f.0 ISA bridge: Intel Corporation Mobile 5 Series Chipset LPC Interface Controller (rev 06)

  2. I am trying to find the ip address and other netstats to put onto a Raspberry Pi so it can read my wifi. I am trying to get the info by using the terminal in linux Mint. However all the code I have been given to do this (ifconfig netstats -nr) doesn’t work. I have searched the web and nothing seems to give me simple stats like ip address, subnet, router address, broadcast address and gateway. The above I have entered but I do not get what I seek. Also I do not understand the bar sign ‘I’ (eg lscpi ‘I’ less)that you place between codes. Could you please help. Mike

    1. The bar, often called pipe, is how you pipe the output of the lspci command into the input of the command called less. What less does is to show you only a page of information at a time. It also lets you search through all of that information and do many other things with it.
      You can explore the other things by looking up the less command on the Internet.

Leave a Comment