photo lineviral_1.png

Identify Usb Driver. Ubuntu, Debian, Mint, Centos, Fedora All Linux Distro

This guide shows how yous tin position USB Driver Chipset(most unremarkably Wireless) Information on Linux. Often users troll different forums in addition to blogs to break out they tin position which driver their PCI or USB device is using. This guide applies to all possible scenarios. After reading in addition to next this guide yous volition live able to position the followings:


Examples of USB devices



  1. USB Wireless Adapters

  2. Mouses

  3. Keyboards

  4. External Hard drives

  5. Card readers etc.


In short, whatsoever device drivers tin live identified that is using plugged into a USB port. This guide volition move for whatsoever Linux distributions, namely –



  1. Linux Mint

  2. Ubuntu

  3. Debian GNU/Linux

  4. Mageia / Mandriva

  5. Fedora

  6. openSUSE / SUSE Linux Enterprise

  7. Arch Linux

  8. CentOS / Red Hat Enterprise Linux

  9. PCLinuxOS

  10. Slackware Linux

  11. Puppy Linux

  12. Kali Linux (my distro ;) )


As usual, I volition start alongside basics first. side past times side few paragraphs are slightly deadening but if yous genuinely desire to understand, yous powerfulness every bit good read them, otherwise only skip to the technical bits. Table of contents above.


So let’s start alongside the basics .. what is a an USB device…


What is Universal Serial Bus or USB?


Universal Serial Bus (USB) is an manufacture criterion developed inwards the mid-1990s that defines the cables, connectors in addition to communications protocols used inwards a jitney for connection, communication, in addition to ability provide betwixt computers in addition to electronic devices.


USB was designed to standardize the connectedness of figurer peripherals (including keyboards, pointing devices, digital cameras, printers, portable media players, disk drives in addition to network adapters) to personal computers, both to communicate in addition to to provide electrical power. It has perish commonplace on other devices, such every bit smartphones, PDAs in addition to video game consoles. USB has effectively replaced a multifariousness of before interfaces, such every bit series in addition to parallel ports, every bit good every bit separate ability chargers for portable devices. Source: Wikipedia


Question: How produce I position USB driver for anything inwards Linux?


This is a 1000000 dollar question, only how oft yous run across a similar post inwards forums in addition to blogs alongside vague in addition to unreliable answers? I volition effort my best to respond anything in addition to everything inwards this post virtually all devices in addition to their drivers inwards here. So, remain tuned every bit this is going to a long a** post.


Identify USB Driver Chipset Information inwards Linux


lsusb which is a criterion command inwards all Linux distribution volition exhibit yous the PCI devices on your system.


LS = List


USB = Universal Serial Bus devices


Step 1: List all USB devices – Identify USB driver


root@kali: # lsusb

This volition hand yous a sample output similar the following:


root@kali: # lsusb
Bus 002 Device 003: ID 148f:2870 Ralink Technology, Corp. RT2870 Wireless Adapter
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 beginning hub
Bus 001 Device 004: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 beginning hub
root@kali: #

This guide shows how yous tin position USB Driver Chipset Identify USB Driver. Ubuntu, Debian, Mint, CentOS, Fedora  all Linux distro


Now yous tin run across the device names, types etc. But unlike, lspci, it doesn’t hand yous that funky number at the front.


Step 2: Dump the physical USB device hierarchy every bit a tree – Identify USB driver


For only about reason, USB devices were listed slight different. So similar commands similar this was useless


root@kali: # lsusb -vv -s 148f:2870

I could role the actual device series to instruct lot’s of info


root@kali: # lsusb -vv -s 003

But this ane time again doesn’t accept the ACTUAL driver info.


root@kali: # lsusb -vv -s 003

Bus 002 Device 003: ID 148f:2870 Ralink Technology, Corp. RT2870 Wireless Adapter
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x148f Ralink Technology, Corp.
idProduct 0x2870 RT2870 Wireless Adapter
bcdDevice 1.01
iManufacturer 1 Ralink
iProduct 2 802.11 n WLAN
iSerial three 1.0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 67
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 450mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 7
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface v 1.0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP three OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP four OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP v OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x06 EP half-dozen OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)

So I institute a different means to listing the driver. I used lsusb -t to dump the physical USB device hierarchy every bit a tree.


root@kali: # lsusb -t

This was genuinely groovy every bit most computers got only 3/4 USB devices plugged inwards at anytime. (i.e. Keyboard, Mouse in addition to USB Wireless Adapter etc.). In my representative I had only 2 device plugged in.


So my lsusb -t output looks real small-scale in addition to shows me just what I wanted to see.


root@kali: # lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/8p, 480M
|__ Port 5: Dev 3, If 0, Class=vend., Driver=rt2800usb, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
|__ Port 4: Dev 4, If 0, Class=HID, Driver=usbhid, 1.5M
root@kali: #

This guide shows how yous tin position USB Driver Chipset Identify USB Driver. Ubuntu, Debian, Mint, CentOS, Fedora  all Linux distro


And at that spot yous go.. My USB driver inwards role is rt2800usb.


That hateful the Kernel is using a USB driver named rt2800usb.


Step 3: Get driver information for selected device – Identify USB driver


Now to instruct the amount details of the driver yous number the next command:


root@kali: # modinfo rt2800usb

This volition listing everything in addition to anything for that driver including the driver file.


root@kali: # modinfo rt2800usb
filename: /lib/modules/3.14-kali1-amd64/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko
license: GPL
firmware: rt2870.bin
description: Ralink RT2800 USB Wireless LAN driver.
version: 2.3.0
author: http://rt2x00.serialmonkey.com
srcversion: 8D709655B6AD993F0D5ACC4
alias: usb:v20F4p724Ad*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v148Fp5572d*dc*dsc*dp*ic*isc*ip*in*
depends: rt2x00lib,rt2800lib,rt2x00usb,usbcore
intree: Y
vermagic: 3.14-kali1-amd64 SMP mod_unload modversions
parm: nohwcrypt:Disable hardware encryption. (bool)
root@kali: #

This guide shows how yous tin position USB Driver Chipset Identify USB Driver. Ubuntu, Debian, Mint, CentOS, Fedora  all Linux distro


So the driver file used for this exceptional USB Wireless Adapter is:

filename: /lib/modules/3.14-kali1-amd64/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko

Now nosotros know the device name, driver used, driver filename, vendor, publisher, dependencies, license in addition to Author details for the selected USB device (USB Wireless Adapter).


Step 4: More ways to Identify USB driver details


We tin role other tools to break USB driver used for a specific device..


Step 4.1: Identify USB driver using lshw command


lshw is only about other command that tin live used to listing hardware info.


ls = List


hw = Hardwares


First yous demand to install lshw inwards your Linux system. Install using the next command:


root@kali: # apt-get install lshw

Now listing all hardware in addition to detailed information using the next command


root@kali: # lshw

lshw volition hand yous anything in addition to everything. If yous desire yous tin browse through the outputs in addition to yous volition break all the things yous volition e'er demand for a exceptional device.However, this is tedious job.


We tin genuinely narrow it downward using CLASS.


Some classes yous tin role are:



  1. Display

  2. Multimedia

  3. Network etc.


For VGA/Display related output, yous tin role -C Display alongside lshw command.


root@kali: # lshw -C Display

For Audio/Multimedia related output, yous tin role -C Multimedia alongside lshw command.


root@kali: # lshw -C Multimedia

For Network related output, yous tin role -C Network alongside lshw command.


root@kali: # lshw -C Network

So to break to a greater extent than information using lshw for this Ralink RT2800 USB Wireless adapter nosotros volition role the next command:


root@kali: # lshw -C Network

This volition hand yous an output similar to below:


root@kali: # lshw -C Network
*-network
description: Wireless interface
physical id: 1
jitney info: usb@2:1.5
logical name: wlan0
serial: 00:60:64:37:4a:30
capabilities: ethernet physical wireless
configuration: broadcast=yes driver=rt2800usb driverversion=3.14-kali1-amd64 firmware=0.29 ip=10.0.0.4 link=yes multicast=yes wireless=IEEE 802.11bgn

This guide shows how yous tin position USB Driver Chipset Identify USB Driver. Ubuntu, Debian, Mint, CentOS, Fedora  all Linux distro


As yous tin see, it lists the driver refer every bit well. We tin instruct to a greater extent than details on that driver using modinfo now.


root@kali: # modinfo rt2800usb

Step 4.2: Identify USB driver using GTK+ front-end for lshw


and finally lastly but non the least, lshw also got a GUI version (lshw-gtk). Install that if yous don’t desire to role command line tools.


root@kali: # apt-get install lshw-gtk

Launch GTK+ front-end for lshw using the next command on terminal


root@kali: # lshw-gtk &

Refresh the window in addition to yous volition run across everything every bit per order. Double-click to expand each section.


This guide shows how yous tin position USB Driver Chipset Identify USB Driver. Ubuntu, Debian, Mint, CentOS, Fedora  all Linux distro


Note: Once you’ve identified the driver name, yous demand to role modinfo <driver-name> to extract the details.


root@kali: # modinfo rt2800usb

Step 4.3: Identify USB driver using dmesg


Last but non the least, this is only about other means to position which driver your Linux installation is using for a exceptional USB pluggable device.


So I’ve got an ALFA AWUS036H USB 802.1b/g Long-Range Wireless USB Adapter. Following is how yous role dmesg


root@kali: # dmesg

Now I volition live using “dmesg | tail” command every bit nosotros solely desire the lastly few lines from dmesg. BTW inwards representative you’re wondering, dmesg volition impress the Linux heart band buffer messages.


root@kali: # dmesg | tail
[85452.720179] usb 2-1.8: USB disconnect, device number 5
[85514.996934] usb 1-1.4: USB disconnect, device number 5
[85526.132402] usb 1-1.4: novel low-speed USB device number half-dozen using ehci-pci
[85526.204445] usb 1-1.4: device descriptor read/64, mistake -32
[85526.405449] usb 1-1.4: New USB device found, idVendor=046d, idProduct=c016
[85526.405455] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[85526.405459] usb 1-1.4: Product: Optical USB Mouse
[85526.405462] usb 1-1.4: Manufacturer: Logitech
[85526.408538] input: Logitech Optical USB Mouse every bit /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:046D:C016.0004/input/input17
[85526.409084] hid-generic 0003:046D:C016.0004: input,hidraw0: USB HID v1.10 Mouse [Logitech Optical USB Mouse] on usb-0000:00:1a.0-1.4/input0
root@kali: #

This guide shows how yous tin position USB Driver Chipset Identify USB Driver. Ubuntu, Debian, Mint, CentOS, Fedora  all Linux distro


As yous tin run across the lastly USB device plugged inwards was my USB Mouse (which is using hid-generic driver.)


Now let’s plug inwards my ALFA AWUS036H USB 802.1b/g Long-Range Wireless USB Adapter in addition to role this same “dmesg | tail” command.


root@kali: # dmesg | tail
[91238.551066] usb 2-1.8: New USB device found, idVendor=0bda, idProduct=8187
[91238.551073] usb 2-1.8: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[91238.551077] usb 2-1.8: Product: RTL8187_Wireless
[91238.551080] usb 2-1.8: Manufacturer: Manufacturer_Realtek_RTL8187_
[91238.551084] usb 2-1.8: SerialNumber: 00C0CA554C3E
[91238.849020] ieee80211 phy3: Selected charge per unit of measurement command algorithm 'minstrel_ht'
[91238.849293] ieee80211 phy3: hwaddr 00:c0:ca:55:4c:3e, RTL8187vB (default) V1 + rtl8225z2, rfkill mask 2
[91238.870650] rtl8187: Customer ID is 0xFF
[91238.871388] rtl8187: wireless switch is on
[91241.316186] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is non ready
root@kali: #

This guide shows how yous tin position USB Driver Chipset Identify USB Driver. Ubuntu, Debian, Mint, CentOS, Fedora  all Linux distro


So at that spot yous go, dmesg picked the newly plugged inwards ALFA AWUS036H USB 802.1b/g Long-Range Wireless USB Adapter in addition to spewed only about lines inwards there. So which ane is the driver? In my representative it is using rtl8187 driver.


We tin double cheque it using both “lsusb -t” in addition to “lshw -C Network” command


root@kali: # lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/8p, 480M
|__ Port 5: Dev 3, If 0, Class=vend., Driver=rt2800usb, 480M
|__ Port 8: Dev 6, If 0, Class=>ifc, Driver=rtl8187, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
|__ Port 4: Dev 6, If 0, Class=HID, Driver=usbhid, 1.5M
root@kali: #

This guide shows how yous tin position USB Driver Chipset Identify USB Driver. Ubuntu, Debian, Mint, CentOS, Fedora  all Linux distro


and


root@kali: # lshw -C Network
*-network:0
description: Wireless interface
physical id: 1
jitney info: usb@2:1.8
logical name: wlan1
serial: 00:c0:ca:55:4c:3e
capabilities: ethernet physical wireless
configuration: broadcast=yes driver=rtl8187 driverversion=3.14-kali1-amd64 firmware=N/A link=no multicast=yes wireless=IEEE 802.11bg
root@kali: #

See my listing of supported Wifi Adapters that’s supported for injection in addition to monitor means — > 802.11 Recommended USB Wireless Cards for Kali Linux


A modinfo volition exhibit more:


root@kali: # modinfo rtl8187
filename: /lib/modules/3.14-kali1-amd64/kernel/drivers/net/wireless/rtl818x/rtl8187/rtl8187.ko
license: GPL
description: RTL8187/RTL8187B USB wireless driver
author: Larry Finger <Larry.Finger@lwfinger.net>
author: Hin-Tak Leung <htl10@users.sourceforge.net>
author: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
author: Andrea Merello <andrea.merello@gmail.com>
author: Michael Wu <flamingice@sourmilk.net>
alias: usb:v1737p0073d*dc*dsc*dp*ic*isc*ip*in*
depends: mac80211,eeprom_93cx6,cfg80211,usbcore
intree: Y
vermagic: 3.14-kali1-amd64 SMP mod_unload modversions
root@kali: #

This guide shows how yous tin position USB Driver Chipset Identify USB Driver. Ubuntu, Debian, Mint, CentOS, Fedora  all Linux distro


USB Driver Installation


The obvious side past times side query is how produce I install USB driver? I’ve shown that inwards ane of my previous post..


How to install Driver for TP-Link TL-WDN3200 N600 Wireless Dual Band USB Adapter inwards Linux


Any Linux driver tin live installed similarly ane time you’ve identified the driver details. (or at to the lowest degree the files from either vendors website or a tertiary political party website).


Summary


I promise this article clears upwards the confusion on how to break a driver for a exceptional USB device.


Those who help take away to this post, I was planning to write a unmarried article on how to position USB in addition to PCI driver but it seems that would live real very long post. So I’ve decided to split upwards the post into Two parts,



  1. Identify PCI Driver on Linux

  2. Identify USB Driver on Linux


Thanks for reading. If you’ve institute this article useful, delight share.


Buat lebih berguna, kongsi:
close