VPD(4)
π VPD(4) π
okay bestie, gather round, we're reading a manual page from the i386 Kernel Interfaces Manual and it's genuinely so cute. this is the vpd β Vital Product Data kernel interface β and yes the acronym is giving corporate but the vibes are immaculate, i promise.
β¨ NAME β¨
vpd β the Vital Product Data kernel interface, aka the little driver that knows what machine you're on π«Ά
πΈ SYNOPSIS πΈ
device vpd
that's it. that's the whole synopsis. one line. she's low maintenance, we stan π
π¦ DESCRIPTION π¦
so here's the tea, bestie. IBM ThinkPad notebooks β and like, most IBM desktop PCs too, they're not exempt β have a 48-byte Vital Product Data (VPD) structure chillin' in the BIOS Shadow RAM. forty-eight bytes. tiny. iconic. doing the absolute most with almost nothing. main character energy fr fr.
and what does this lil 48-byte queen actually tell you? three things:
- machine type and model info
- the build ID (which is, roughly speaking, the BIOS version β like the BIOS's personal birth chart)
- serial number info
the vpd driver does the detective work: it scans the BIOS area and claims the memory used by the VPD structure so nobody else goes touching it. then it hands you the goods through the sysctl(3) branch hw.vpd, so userland can actually read all this stuff. obsessed.
the following variables are provided, one per VPD attachment β and honestly there should only be one, so don't stress:
MACHINE_TYPE(machine.type) β Machine type.MACHINE_MODEL(machine.model) β Machine model.BUILD_ID(build.id) β BIOS Build ID.SERIAL_BOX(serial.box) β Box Serial Number.SERIAL_PLANAR(serial.planar) β Motherboard Serial Number.
no cap, that's your whole API. five variables and a dream π
π SEE ALSO π
- TP General - Using the BIOS Build ID to identify IBM ThinkPad systems, Reference #:
MIGR-45120,http://www.ibm.com/support/docview.wss?uid=psg1MIGR-45120, November 22, 2002.
(yes that's a 2002 URL, she's vintage, she's a classic, respect her π)
π HISTORY π
the vpd driver first appeared in FreeBSD 5.1. throwback era, honestly. π
π AUTHORS π
the vpd driver and this manual page were written by Matthew N. Dodd <mdodd@FreeBSD.org>. king behavior, we love to see it β
okay that's the whole page bestie, you ate that π go forth and sysctl hw.vpd responsibly π§
and a lil sign-off for the girlies keeping receipts: this page is from the Debian package, dated August 31, 2004, filed under VPD(4). slay, bye πβ¨
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 2003 Matthew N. Dodd <winter@jurai.net>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms