photo lineviral_1.png

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

This direct shows how yous tin position PCI Driver Chipset Information on Linux. Often users troll dissimilar forums together with blogs to detect out they tin position which driver their PCI or USB device is using. This direct applies to all possible scenarios. After reading together with next this direct yous volition endure able to position the followings:


Examples of PCI devices



  1. CPU

  2. Motherboards

  3. Communication controllers

  4. Network devices

  5. High definition Audio Controller

  6. VGA or graphics cards

  7. Memory (RAM)

  8. Thermal Control Registers

  9. Ethernet devices

  10. DVD R/W devices

  11. Blueray devices

  12. CDROM devices


In short, whatever device drivers tin endure identified that is using plugged into a PCI slot.


This direct volition piece of work for whatever 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 amongst basics first. adjacent few paragraphs are slightly irksome but if yous actually desire to understand, yous mightiness equally good read them, otherwise simply skip to the technical bits. Table of contents above.


So let’s start amongst the basics .. what is a PCI device…


What is Peripheral Component Interconnect or PCI?


Conventional PCI, oftentimes shortened to PCI, is a local calculator jitney for attaching hardware devices inwards a computer. PCI is an initialism of Peripheral Component Interconnect together with is component division of the PCI Local Bus standard. The PCI jitney supports the functions works life on a processor jitney but inwards a standardized format that is independent of whatever exceptional processor’s native bus. Devices connected to the PCI jitney appear to a jitney principal to endure connected straight to its ain jitney together with are assigned addresses inwards the processor’s address space.It is a parallel bus, synchronous to a unmarried jitney clock.


Attached devices tin stimulate got either the shape of an integrated circuit fitted onto the motherboard itself (called a planar device inwards the PCI specification) or an expansion bill of fare that fits into a slot. The PCI Local Bus was starting fourth dimension implemented inwards IBM PC compatibles, where it displaced the combination of several slowly ISA slots together with 1 fast VESA Local Bus slot equally the jitney configuration. It has after been adopted for other calculator types. Typical PCI cards used inwards PCs include: network cards, audio cards, modems, extra ports such equally USB or serial, TV tuner cards together with disk controllers. PCI video cards replaced ISA together with VESA cards until growing bandwidth requirements outgrew the capabilities of PCI. The preferred interface for video cards hence became AGP, itself a superset of conventional PCI, earlier giving agency to PCI Express.


The starting fourth dimension version of conventional PCI works life inwards consumer desktop computers was a 32-bit jitney using a 33 MHz jitney clock together with v V signalling, although the PCI 1.0 criterion provided for a 64-bit variant equally well. These stimulate got 1 locating notch inwards the card. Version 2.0 of the PCI criterion introduced 3.3 V slots, physically distinguished past times a flipped physical connecter to preventing accidental insertion of v V cards. Universal cards, which tin operate on either voltage, stimulate got ii notches. Version 2.1 of the PCI criterion introduced optional 66 MHz operation. H5N1 server-oriented variant of conventional PCI, called PCI-X (PCI Extended) operated at frequencies upwards to 133 MHz for PCI-X 1.0 together with upwards to 533 MHz for PCI-X 2.0. An internal connecter for laptop cards, called Mini PCI, was introduced inwards version 2.2 of the PCI specification. The PCI jitney was also adopted for an external laptop connecter standard—the CardBus. The starting fourth dimension PCI specification was developed past times Intel, but subsequent evolution of the criterion became the responsibleness of the PCI Special Interest Group (PCI-SIG).


Conventional PCI together with PCI-X are sometimes called Parallel PCI inwards company to distinguish them technologically from their to a greater extent than recent successor PCI Express, which adopted a serial, lane-based architecture. Conventional PCI’s heyday inwards the desktop calculator marketplace position was about the decade 1995-2005. PCI together with PCI-X stimulate got decease obsolete for most purposes, however, they are soundless mutual on modern desktops for the purposes of backwards compatibility together with the depression relative toll to produce. Many kinds of devices previously available on PCI expansion cards are right away unremarkably integrated onto motherboards or available inwards universal series jitney together with PCI Express versions. Source: Wikipedia


Question: How attain I position PCI driver for anything inwards Linux?


This is a 1000000 dollar question, simply how oftentimes yous run into a similar post service inwards forums together with blogs amongst vague together with unreliable answers? I volition endeavor my best to reply anything together with everything inwards this post service close all devices together with their drivers inwards here. So, remain tuned equally this is going to a long a** post.


Identify PCI Driver Chipset Information inwards Linux


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


LS = List


PCI = Peripheral Component Interconnect devices


Step 1: List all PCI devices – Identify PCI driver


root@kali: # lspci

This volition give yous a sample output similar the following:


root@kali: # lspci
(some output removed)
00:00.0 Host bridge: Intel Corporation Core Processor DMI (rev 11)
00:03.0 PCI bridge: Intel Corporation Core Processor PCI Express Root Port 1 (rev 11)
00:19.0 Ethernet controller: Intel Corporation 82578DM Gigabit Network Connection (rev 06)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a6)
00:1f.0 ISA bridge: Intel Corporation v Series Chipset LPC Interface Controller (rev 06)
00:1f.3 SMBus: Intel Corporation v Series/3400 Series Chipset SMBus Controller (rev 06)
01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2)
root@kali: #

Now yous tin run into the device names, types together with some funky numbers at the front. (highlighted inwards bold-red).


Step 2: Get verbose output for selected device – Identify PCI driver


Let’s say nosotros desire to position the driver used my Linux marrow for Ethernet controller (which is the wired port on my motherboard).


00:19.0 Ethernet controller: Intel Corporation 82578DM Gigabit Network Connection (rev 06)

Copy the number’s at the front end i.e. 00:19.0 together with work it amongst lspci command to detect to a greater extent than info


root@kali: # lspci -vv -s 00:19.0

This volition give yous an output similar below:


root@kali: # lspci -vv -s 00:19.0
00:19.0 Ethernet controller: Intel Corporation 82578DM Gigabit Network Connection (rev 06)
    Subsystem: Acer Incorporated [ALI] Device 8000
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0
    Interrupt: pivot H5N1 routed to IRQ 46
    Region 0: Memory at faec0000 (32-bit, non-prefetchable) [size=128K]
    Region 1: Memory at faefa000 (32-bit, non-prefetchable) [size=4K]
    Region 2: I/O ports at d000 [size=32]
    Capabilities: [c8] Power Management version 2
        Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
    Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Address: 00000000fee0f00c  Data: 4192
    Capabilities: [e0] PCI Advanced Features
        AFCap: TP+ FLR+
        AFCtrl: FLR-
        AFStatus: TP-
    Kernel driver inwards use: e1000e

So the Kernel is using a driver named e1000e.


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


Now to acquire the total details of the driver yous number the next command:


root@kali: # modinfo e1000e

This volition listing everything together with anything for that driver including the driver file.


root@kali: # modinfo e1000e 
filename:       /lib/modules/3.14-kali1-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
version:        2.3.2-k
license:        GPL
description:    Intel(R) PRO/1000 Network Driver
author:         Intel Corporation, <linux.nics@intel.com>
srcversion:     875CF610ED4160DBA055BB2
alias:          pci:v00008086d000015A3sv*sd*bc*sc*i*
alias:          pci:v00008086d000015A2sv*sd*bc*sc*i*
alias:          pci:v00008086d000015A1sv*sd*bc*sc*i*
alias:          pci:v00008086d0000105Esv*sd*bc*sc*i*
depends:        ptp
intree:         Y
vermagic:       3.14-kali1-amd64 SMP mod_unload modversions
parm:           debug:Debug grade (0=none,...,16=all) (int)
parm:           copybreak:Maximum size of bundle that is copied to a novel buffer on have (uint)
parm:           TxIntDelay:Transmit Interrupt Delay (array of int)
parm:           TxAbsIntDelay:Transmit Absolute Interrupt Delay (array of int)
parm:           RxIntDelay:Receive Interrupt Delay (array of int)
parm:           RxAbsIntDelay:Receive Absolute Interrupt Delay (array of int)
parm:           InterruptThrottleRate:Interrupt Throttling Rate (array of int)
parm:           IntMode:Interrupt Mode (array of int)
parm:           SmartPowerDownEnable:Enable PHY smart ability downwards (array of int)
parm:           KumeranLockLoss:Enable Kumeran lock loss workaround (array of int)
parm:           WriteProtectNVM:Write-protect NVM [WARNING: disabling this tin Pb to corrupted NVM] (array of int)
parm:           CrcStripping:Enable CRC Stripping, disable if your BMC needs the CRC (array of int)

So the driver file used for this exceptional Network Controller is:


This direct shows how yous tin position PCI Driver Chipset Information on Linux Identify PCI Driver. Ubuntu, Debian, Mint, CentOS, Fedora  all Linux distro


 


filename:       /lib/modules/3.14-kali1-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko


So right away yous know the device name, details, driver used, vendor, publisher, dependencies, license together with Author details for the selected PCI device.


Step 4: NVIDIA – Identify PCI driver dilemma


Interestingly, NVIDIA driver (I used Proprietary NVIDIA driver – NVIDIA Accelerated Linux Graphics Driver) together with it seems I had some problem getting the right info. Here’s quick rundown:


root@kali: # lspci | grep VGA*
01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2)

This direct shows how yous tin position PCI Driver Chipset Information on Linux Identify PCI Driver. Ubuntu, Debian, Mint, CentOS, Fedora  all Linux distro


root@kali: # lspci -vv -s 01:00.0
(some output removed)

    Kernel driver inwards use: nvidia

So naturally I thought, O’yeah, it’s using nvidia driver. So modinfo should simply listing the driver file.


So when I tried that, I got NADA


root@kali: # modinfo nvidia
ERROR: Module nvidia non found.

Bloody hell, this was annoying. Then I simply pressed TAB primal after the get upwards nvidia together with I had ii options



  1. nvidia-current  and

  2. nvidia-uvm


root@kali: # modinfo nvidia-
nvidia-current  nvidia-uvm      
root@kali: # modinfo nvidia-current
filename:       /lib/modules/3.14-kali1-amd64/nvidia/nvidia-current.ko
alias:          char-major-195-*
version:        331.67
supported:      external
license:        NVIDIA
alias:          pci:v000010DEd00000E00sv*sd*bc04sc80i00*
alias:          pci:v000010DEd00000AA3sv*sd*bc0Bsc40i00*
alias:          pci:v000010DEd*sv*sd*bc03sc02i00*
alias:          pci:v000010DEd*sv*sd*bc03sc00i00*
depends:        i2c-core
vermagic:       3.14-kali1-amd64 SMP mod_unload modversions
parm:           NVreg_Mobile:int
parm:           NVreg_ResmanDebugLevel:int
parm:           NVreg_RmLogonRC:int
parm:           NVreg_ModifyDeviceFiles:int
parm:           NVreg_DeviceFileUID:int
parm:           NVreg_DeviceFileGID:int
parm:           NVreg_DeviceFileMode:int
parm:           NVreg_RemapLimit:int
parm:           NVreg_UpdateMemoryTypes:int
parm:           NVreg_InitializeSystemMemoryAllocations:int
parm:           NVreg_RMEdgeIntrCheck:int
parm:           NVreg_UsePageAttributeTable:int
parm:           NVreg_MapRegistersEarly:int
parm:           NVreg_RegisterForACPIEvents:int
parm:           NVreg_CheckPCIConfigSpace:int
parm:           NVreg_EnablePCIeGen3:int
parm:           NVreg_EnableMSI:int
parm:           NVreg_MemoryPoolSize:int
parm:           NVreg_RegistryDwords:charp
parm:           NVreg_RmMsg:charp
parm:           NVreg_AssignGpus:charp
root@kali: #

This direct shows how yous tin position PCI Driver Chipset Information on Linux Identify PCI Driver. Ubuntu, Debian, Mint, CentOS, Fedora  all Linux distro


So looks similar NVIDIA-Current is the driver that beingness used together with it’s soft-linked to NVIDIA inwards MODINFO. Anyone would similar to comment/enlighten on this discrepancy?


Step 5: More ways to Identify PCI driver details


Last but non the least, I saved the best 3 options for the in conclusion … this is a quicker agency to position PCI driver on Linux. (yeah, I know what you’re thinking .. what a jerk .. could’ve posted it starting fourth dimension … but learning the difficult agency is improve drive right away yous volition NEVER forget this … EVER).. So anywho …


Step 5.1: Identify PCI driver using lspci -k command


Easy undertaking .. simply number the next command that volition listing the get upwards of the driver straightway…


root@kali: # lspci -k

-k  flag shows marrow drivers treatment each device for all PCI devices.


root@kali: # lspci -k 
(some outputs removed)
0000:00:19.0 Ethernet controller: Intel Corporation 82578DM Gigabit Network Connection (rev 06)
    Subsystem: Acer Incorporated [ALI] Device 8000
    Kernel driver inwards use: e1000e
01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2)
    Kernel driver inwards use: nvidia
01:00.1 Audio device: NVIDIA Corporation High definition Audio Controller (rev a1)
    Kernel driver inwards use: snd_hda_intel


In this agency yous tin skip Step 1.2 all together (getting verbose output).


Step 5.2: Identify PCI driver using lshw command


lshw is some other command that tin endure used to listing hardware info.


ls = List


hw = Hardwares


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


root@kali: # apt-get install lshw

Now listing all hardware together with detailed information using the next command


root@kali: # lshw

and yous run into a gazillion things. Go through the output together with yous volition detect all the things yous volition always demand for a exceptional device. This tin endure quite painful to browse through. There’s a easier agency to attain that.. nosotros tin narrow downwards each things according to it’s class.


For VGA/Display related output, yous tin work -C Display amongst lshw command.


root@kali: # lshw -C Display

For Audio/Multimedia related output, yous tin work -C Multimedia amongst lshw command.


root@kali: # lshw -C Multimedia

For Network related output, yous tin work -C Network amongst lshw command.


root@kali: # lshw -C Network

This direct shows how yous tin position PCI Driver Chipset Information on Linux Identify PCI Driver. Ubuntu, Debian, Mint, CentOS, Fedora  all Linux distro


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


Step 5.3: Identify PCI driver using lshw-gtk tool


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 together with yous volition run into everything equally per order. Double-click to expand each section.


Note: For all 3 option, (1.5.1, 1.5.2 together with 1.5.3) yous demand to work modinfo equally the concluding step. For illustration my ACPI Processor is using the next driver:


root@kali: # modinfo acpi_cpufreq
filename:       /lib/modules/3.14-kali1-amd64/kernel/drivers/cpufreq/acpi-cpufreq.ko
alias:          acpi
license:        GPL
description:    ACPI Processor P-States Driver
author:         Paul Diefenbaugh, Dominik Brodowski
alias:          x86cpu:vendor:*:family:*:model:*:feature:*00E8*
alias:          x86cpu:vendor:*:family:*:model:*:feature:*0016*
alias:          acpi*:ACPI0007:*
alias:          acpi*:LNXCPU:*
depends:        processor
intree:         Y
vermagic:       3.14-kali1-amd64 SMP mod_unload modversions
parm:           acpi_pstate_strict:value 0 or non-zero. non-zero -> strict ACPI checks are performed during frequency changes. (uint)
[1]+  Done                    lshw-gtk

This direct shows how yous tin position PCI Driver Chipset Information on Linux Identify PCI Driver. Ubuntu, Debian, Mint, CentOS, Fedora  all Linux distro


Summary


I was planning to write a unmarried Article on how to position PCI together with USB driver but it seems that would endure rattling very long post. So I’ve decided to separate the post service into Two parts,



  1. Identify PCI Driver on Linux

  2. Identify USB Driver on Linux


Follow to the adjacent post service if you’re using a USB device together with trying to position USB driver used for it. Thanks for reading, delight share.


Buat lebih berguna, kongsi:
close