pci.ids(5)

๐Ÿ’– NAME ๐Ÿ’–

okay so bestie, welcome to pci.ids(5), the manual page from The PCI Utilities for the file pci.ids โ€” literally just the list of known identifiers related to PCI devices. no cap, that's the whole job. โœจ


๐Ÿฆ‹ INTRODUCTION ๐Ÿฆ‹

so here's the tea: devices chilling on the PCI bus get identified by a vendor ID (handed out by the PCI SIG) plus a device ID (handed out by the vendor itself). both of those IDs are 16-bit integers, and the device does not come with any built-in translation to a human-readable string. it's giving numbers. just numbers. ๐Ÿ˜ญ

and it's not only vendor + device either โ€” devices also report a whole lil squad of other identifiers:

  • Device class and subclass โ€” two 8-bit numbers ๐ŸŽ€
  • Programming interface โ€” an 8-bit number, and its meaning is specific for the subclass ๐ŸŒธ
  • Subsystem โ€” this one identifies the assembly the device is contained in. the iconic example is an Ethernet add-in card: the device is the Ethernet controller chip, while the card is playing the role of the subsystem. subsystems have their own vendor ID (from the same namespace as device vendors) plus a subsystem ID. generally the meaning of the subsystem ID depends on the device, but bestie there are cases where a single subsystem ID gets used for many devices โ€” laptop motherboards, iykyk ๐Ÿ’…

and the PCI utilities use the pci.ids file to translate all these numeric IDs to strings. that's the whole point of her. ๐Ÿ‘‘


๐ŸŒˆ KEEPING THE LIST UP-TO-DATE ๐ŸŒˆ

the pci.ids file is generated from the PCI ID database, which is maintained at https://pci-ids.ucw.cz/. if you find any IDs missing from the list, pls pls pls contribute them to the database, bestie ๐Ÿซถ

you can use the update-pciids command to download the current version of the list. obsessed with her fr.

alternatively, you can use lspci -q to query the database online. โœจ


๐Ÿ’… FILE FORMAT ๐Ÿ’…

the pci.ids file is a text file in plain ASCII, interpreted line by line. lines starting with the hash sign are treated as comments and are ignored. comments regarding a specific entry are written immediately before the entry. ๐Ÿ“

Vendor entries start with a 4-digit hexadecimal vendor ID, followed by one or more spaces, and the name of the vendor extending to the end of the line.

Device entries are placed below the vendor entry. each device entry consists of a single TAB character, a 4-digit hexadecimal device ID, followed by one or more spaces, and the name of the device extending to the end of the line.

Subsystem entries are placed below the device entry. they start with two TAB characters, a 4-digit hexadecimal vendor ID (which must be defined elsewhere in the list), a single space, a 4-digit hexadecimal subsystem ID, one or more spaces, and the name of the subsystem extending to the end of the line.

Class entries consist of "C", one space, a 2-digit hexadecimal class ID, one or more spaces, and the name of the class. subclasses are placed below the corresponding class, indented by a single TAB, followed by a 2-digit hexadecimal subclass ID, one or more spaces, and the name of the subclass. programming interfaces are below the subclass, indented by two TABs, followed by a 2-digit hexadecimal prog-if ID, one or more spaces, and the name.

there can be device-independent subsystem IDs, although the web interface of the database does not support them yet. they start with a subsystem vendor line consisting of "S", one space, and a 4-digit hexadecimal vendor ID (which must correspond to an already listed vendor). subsystems follow on subsequent lines, each indented by one TAB, followed by a 4-digit hexadecimal subsystem ID, one or more spaces, and the name of the subsystem.

and for extensibility of the format: lines starting with an unrecognized letter followed by a single space are ignored โ€” and so are all following TAB-indented lines. bye bestie ๐Ÿ‘‹

so the shape of it, schematically, is giving:

VVVV  Vendor Name
    DDDD  Device Name
        VVVV SSSS  Subsystem Name
C CC  Class Name
    CC  Subclass Name
        CC  Prog-If Name
S VVVV
    SSSS  Subsystem Name

๐ŸŽ€ FILES ๐ŸŽ€

  • /usr/share/hwdata/pci.ids โ€” location of the list. that's her home address ๐Ÿ 

โญ SEE ALSO โญ


๐Ÿ‘‘ AUTHOR ๐Ÿ‘‘

the PCI Utilities are maintained by Martin Mares <mj@ucw.cz>. ๐Ÿ’œ


and that's the whole page, bestie โ€” this was pci.ids(5) from pciutils-3.15.0, dated 05 April 2026. slay, go read your IDs. ๐Ÿฆ‹โœจ๐Ÿ’–

๐Ÿ“ฆ where this page comes from