BIOSDEVNAME(1)              General Commands Manual             BIOSDEVNAME(1)

       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 "should" be.

       -i, --interface
              Treat [args] as ethernet devs

       -d, --debug
              Enable debugging

       -p, --policy [physical|all_ethN]

       -P, --prefix [string]
              string use for embedded NICs in the physical policy (default=em)

       -x, --nopirq
              Do not use $PIR table for mapping PCI device to slot. Some BIOS
              have incorrect values.

       -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 time.
       The physical policy uses the following scheme:

       em<port>[_<virtual instance>]
              for embedded NICs

       p<slot>p<port>[_<virtual instance>]
              for cards in PCI slots

       The    all_ethN policy makes a best guess at what the device order
              should be, with embedded 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 biosdevname uses, specifically dmidecode to read the
       SMBIOS Type 9 and Type 41 tables, and biosdecode to read the PCI IRQ
       Routing Table.  Please include the output of each of these programs in
       any bug reports.

       biosdevname was written by  Matt Domsch <>

       This manual page was written by Rudy Gevaert <>,
       for the Debian project (but may be used by others).

                                 Nov 28, 2010                   BIOSDEVNAME(1)