biosdevname - give BIOS-given name of a device
biosdevname [options] [args]...
biosdevname takes a kernel device name as an argument, and returns the BIOS-given name it
Treat [args] as ethernet devs
-p, --policy [physical|all_ethN]
-P, --prefix [string]
string use for embedded NICs in the physical policy (default=em)
Do not use $PIR table for mapping PCI device to slot. Some BIOS have incorrect val-
-s, --smbios [x.y]
Require minimum SMBIOS version x.y
The physical policy is the current default. However, when invoking biosdevname in udev
rules, one should always specify the policy you want, as the default has changed over
The physical policy uses the following scheme:
for embedded NICs
for cards in PCI slots
The all_ethN policy makes a best guess at what the device order should be, with embed-
ded devices first, PCI cards in ascending slot order, and ports in ascending PCI
bus/device/function order breadth-first. However, this policy does not work if
your PCI devices are hot-plugged or hot-pluggable, including the virtual functions
on an SR-IOV device. In a hot-plug scenario, each separate udev instance will be
invoked in parallel, while the device tree is still being populated with new
devices. Each udev instance will see a different PCI tree, and thus cannot provide
consistent enumeration. Use of this policy should be limited to only scenarios
where all PCI devices are present at boot (cold-plug).
Returns 0 on success, with BIOS-suggested name printed to stdout.
Returns 1 on provided device name lookup failure.
Returns 2 if system BIOS does not provide naming information. biosdevname requires system
BIOS to provide naming information, either via SMBIOS or sysfs files.
Returns 3 if not run as root but requires root privileges.
Returns 4 if running in a virtual machine.
The dmidecode package contains two tools useful for debugging BIOS features that biosdev-
name uses, specifically dmidecode to read the SMBIOS Type 9 and Type 41 tables, and bios-
decode to read the PCI IRQ Routing Table. Please include the output of each of these pro-
grams in any bug reports.
biosdevname was written by Matt Domsch <Matt_Domsch@dell.com>
This manual page was written by Rudy Gevaert <Rudy.Gevaert@UGent.be>, for the Debian
project (but may be used by others).
Nov 28, 2010 BIOSDEVNAME(1)