Differences between revisions 23 and 25 (spanning 2 versions)
Revision 23 as of 2010-10-13 11:31:52
Size: 8384
Editor: ?hpvmgulo
Comment:
Revision 25 as of 2021-05-19 02:50:29
Size: 8626
Editor: PaulWise
Comment: cleanups
Deletions are marked like this. Additions are marked like this.
Line 9: Line 9:
Many people simply use [[#lspci|lspci]], which is available on every Debian system, to list the device on their computer. Gnome users can install and use the [[#hardinfo|hardinfo]] method. KDE user can use [[#kinfocenter|kinfocenter]]. Many people simply use [[#lspci|lspci]], which is available on every Debian system, to list the device on their computer. [[#hardinfo|hardinfo]] is available to install and use with GTK based desktops such as [[GNOME]], [[MATE]] or [[Xfce]]. users can install and use the method. [[#kinfocenter|kinfocenter]] is available in [[KDE]] Plasma Desktop.
Line 13: Line 13:
Devices are mainly identified using a pair of hexadecimal numbers, like 1014:003E.
PCI d
evices are identified by a pair of hexadecimal numbers. 1014:003E for example.
Line 16: Line 18:
Actually there is also some sub-vendor-id, sub-vendor-id (to identify the computer/vendor implementation), pci function and class... see [[#references|references]] for more information.
Line 18: Line 19:
Some of the devices (''device-id''s) handled by Debian are listed in the page : [[DeviceDatabase/PCI]]. There is also some sub-vendor-id, sub-vendor-id (to identify the computer/vendor implementation), PCI function and class, see the [[#references|references]] section for more information.

Some of the devices (''device-id''s) handled by Debian are listed in the [[DeviceDatabase/PCI]] page.
Line 22: Line 25:
lspci [package:DebPkg:pciutils] is the standard tool to query the devices connected to any pci compatible bus.
Line 24: Line 26:
Sample output ("-nn" option only works with newer Linux versions): DebianMan:lspci (from the DebPkg:pciutils package) is the standard tool to query the devices connected to any PCI compatible bus.
Line 26: Line 29:
lspci -nn $ lspci -nn
Line 49: Line 52:
Notes regarding the example above :
Notes regarding the example above:
Line 52: Line 57:
 * if your device description says "Unknown device", you can update your local pci-id definition by running {{{update-pciids}}} as root.  * if your device description says "Unknown device", you can update your local pci-id definitions by running the DebianMan:update-pciids command as root.
Line 54: Line 59:
{i} man (8)lspci (8)update-pciids<<BR>>
Line 57: Line 61:
You can use grep to shorten the above list: You can shorten the above list with grep:
Line 60: Line 64:
~$ lspci -nn | grep Network $ lspci -nn | grep Network
Line 64: Line 68:
<<Anchor(gnome)>>
<<Anchor(hardinfo)>>
== HardInfo ==
Line 65: Line 72:
<<Anchor(gnome)>>
== Under Gnome : hardinfo ==
<<Anchor(hardinfo)>>
Gnomes's System Information (Hardinfo in ''Menu Applications/System Tools'', from package:DebPkg:hardinfo) has an information page on the "PCI" cards.

{{attachment:hardinfo.png}}
DebianMan:hardinfo ([[DebianPkgShots:hardinfo|screenshots]]) (from the DebPkg:hardinfo package) has a "PCI Devices" section about the PCI cards installed on the system.
Line 73: Line 75:
== Under KDE : KInfocenter ==
Line 75: Line 76:
KDE's KInfo``Center (in ''K Menu / System / KInfo``Center Info Center'', from package:DebPkg:kcontrol) has an information page on the "PCI" cards. == KInfocenter ==
Line 77: Line 78:
{{attachment:KInfoCenter.png}}
<<BR>>Note: KInfo``Center provides the PCI device names, not PCI IDs.
[[KDE]]'s KInfoCenter (in ''K Menu / System / Info Center'') ([[DebianPkgShots:kinfocenter|screenshots]]) (from the DebPkg:kinfocenter package) has an information page on the PCI cards.
Line 80: Line 80:
Note: KInfoCenter provides the PCI device names, not PCI IDs.
Line 82: Line 83:
The DebPkg:discover package has a nice command too:
DebianMan:discover (from t
he DebianPackage:discover package) can list PCI devices:
Line 84: Line 87:
discover --vendor-id --model-id pci | uniq $ discover --vendor-id --model-id pci | uniq
Line 113: Line 116:
{i} man [[http://manpages.debian.net/man/1/discover|discover(1)]]<<BR>>
Line 116: Line 118:
= Digging by hand = <<Anchor(manual)>>
= Manual =
Line 119: Line 122:
Line 120: Line 124:
Line 121: Line 126:
cat /proc/bus/pci/devices $ cat /proc/bus/pci/devices
Line 125: Line 130:
If lspci isn't available (!), you can browse {{{/sys/bus/pci}}} (assuming sysfs is mounted on {{{/sys}}}).
Line 127: Line 131:
{i} {{{/usr/share/doc/linux-doc-2.6.26/Documentation/filesystems/sysfs-pci.txt.gz}}} - {{{/sys/bus/pci}}} overview If lspci isn't available (!), you can browse {{{/sys/bus/pci}}} (assuming sysfs is mounted on {{{/sys}}}). The Linux kernel [[https://www.kernel.org/doc/html/latest/PCI/sysfs-pci.html|sysfs PCI]] documentation (also [[https://packages.debian.org/search?mode=filename&searchon=contents&keywords=sysfs-pci|available]] in the DebianPackage:linux-doc packages) gives details about the files in {{{/sys/bus/pci}}}.
Line 131: Line 135:
 * [[WikiPedia:Peripheral_Component_Interconnect|Wikipedia]] - PCI
 * http://pci-ids.ucw.cz/ maintains a list of device-id and vendor-id to text mappings (used by lspci, xorg and more).

* [[WikiPedia:Peripheral_Component_Interconnect|Peripheral Component Interconnect (PCI) Wikipedia]]
 * [[https://pci-ids.ucw.cz/|The PCI ID Repository]] maintains a list of device-id and vendor-id to text mappings (used by lspci, xorg and more).

Translation(s): English - Français - Italiano - Русский

(!) ?Discussion

How to identify a device > PCI


How to "identify" the PCI-like devices (AGP, PCI-Express, CardBus, Express Card, etc) that are connected to you computer.

Many people simply use lspci, which is available on every Debian system, to list the device on their computer. hardinfo is available to install and use with GTK based desktops such as GNOME, MATE or Xfce. users can install and use the method. kinfocenter is available in KDE Plasma Desktop.

PCI-id

PCI devices are identified by a pair of hexadecimal numbers. 1014:003E for example.

  • The 4 first hexadecimal digits are the Vendor ID (1014 = IBM)
  • The 4 last hexadecimal digits are the Device ID (003e = 16/4 Token ring)

There is also some sub-vendor-id, sub-vendor-id (to identify the computer/vendor implementation), PCI function and class, see the references section for more information.

Some of the devices (device-ids) handled by Debian are listed in the DeviceDatabase/PCI page.

lspci

lspci (from the pciutils package) is the standard tool to query the devices connected to any PCI compatible bus.

$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub [8086:27a0] (rev 03)
00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a2] (rev 03)
00:02.1 Display controller [0380]: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a6] (rev 03)
00:1b.0 Audio device [0403]: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller [8086:27d8] (rev 02)
00:1c.0 PCI bridge [0604]: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 [8086:27d0] (rev 02)
00:1c.1 PCI bridge [0604]: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 [8086:27d2] (rev 02)
00:1c.2 PCI bridge [0604]: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 [8086:27d4] (rev 02)
00:1c.3 PCI bridge [0604]: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 [8086:27d6] (rev 02)
00:1d.0 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 [8086:27c8] (rev 02)
00:1d.1 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 [8086:27c9] (rev 02)
00:1d.2 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 [8086:27ca] (rev 02)
00:1d.3 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 [8086:27cb] (rev 02)
00:1d.7 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller [8086:27cc] (rev 02)
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev e2)
00:1f.0 ISA bridge [0601]: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge [8086:27b9] (rev 02)
00:1f.2 IDE interface [0101]: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller [8086:27c4] (rev 02)
00:1f.3 SMBus [0c05]: Intel Corporation 82801G (ICH7 Family) SMBus Controller [8086:27da] (rev 02)
02:00.0 Ethernet controller [0200]: Intel Corporation 82573L Gigabit Ethernet Controller [8086:109a]
03:00.0 Network controller [0280]: Intel Corporation PRO/Wireless 3945ABG Network Connection [8086:4227] (rev 02)
15:00.0 CardBus bridge [0607]: Texas Instruments PCI1510 PC card Cardbus Controller [104c:ac56]
16:00.0 Ethernet controller [0200]: ADMtek 21x4x DEC-Tulip compatible 10/100 Ethernet [1317:1985] (rev 11)

Notes regarding the example above:

  • 104c:ac56 is the cardbus bridge ("controller")
  • 1317:1985 is a PCCard (32-bit Cardbus) Ethernet Adapter.
  • if your device description says "Unknown device", you can update your local pci-id definitions by running the update-pciids command as root.

{i} /usr/share/misc/pci.ids - A text file mapping vendor IDs and device IDs to a text description.

You can shorten the above list with grep:

$ lspci -nn | grep Network
03:00.0 Network controller [0280]: Intel Corporation PRO/Wireless 3945ABG Network Connection [8086:4227] (rev 02)

HardInfo

hardinfo (screenshots) (from the hardinfo package) has a "PCI Devices" section about the PCI cards installed on the system.

KInfocenter

KDE's KInfoCenter (in K Menu / System / Info Center) (screenshots) (from the kinfocenter package) has an information page on the PCI cards.

Note: KInfoCenter provides the PCI device names, not PCI IDs.

discover

discover (from the discover package) can list PCI devices:

$ discover --vendor-id --model-id pci | uniq
8086 27a0 Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub
8086 27a0 Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub
8086 27a2 Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller
8086 27a2 Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller
8086 27a6 Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller
8086 27a6 Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller
8086 27d8 Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller
8086 27d0 Intel Corporation 82801G (ICH7 Family) PCI Express Port 1
8086 27d2 Intel Corporation 82801G (ICH7 Family) PCI Express Port 2
8086 27d4 Intel Corporation 82801G (ICH7 Family) PCI Express Port 3
8086 27d6 Intel Corporation 82801G (ICH7 Family) PCI Express Port 4
8086 27c8 Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1
8086 27c8 Intel Corporation 82801G (ICH7 Family) USB UHCI #1
8086 27c9 Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2
8086 27c9 Intel Corporation 82801G (ICH7 Family) USB UHCI #2
8086 27ca Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3
8086 27ca Intel Corporation 82801G (ICH7 Family) USB UHCI #3
8086 27cb Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4
8086 27cb Intel Corporation 82801G (ICH7 Family) USB UHCI #4
8086 27cc Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller
8086 2448 Intel Corporation 82801 Mobile PCI Bridge
8086 27b9 Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge
8086 27c4 Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller
8086 27da Intel Corporation 82801G (ICH7 Family) SMBus Controller
8086 109a Intel Corporation 82573L Gigabit Ethernet Controller8086 4227 Intel Corporation PRO/Wireless 3945ABG Network Connection
104c ac56 Texas Instruments PCI1510 PC card Cardbus Controller

{i} discover uses its own files: /lib/discover/pci-busclass.xml, /lib/discover/pci-device.xml, /lib/discover/pci-vendor.xml

Manual

/proc/bus/pci/devices

If lspci isn't available (!), you can display the content of /proc/bus/pci/devices to list vendor and device IDs.

$ cat /proc/bus/pci/devices 

/sys/bus/pci

If lspci isn't available (!), you can browse /sys/bus/pci (assuming sysfs is mounted on /sys). The Linux kernel sysfs PCI documentation (also available in the linux-doc packages) gives details about the files in /sys/bus/pci.

References