linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* ANNOUNCE: bios_dev_name 0.2, now with more SMBIOS goodness
@ 2007-07-28  4:03 Matt Domsch
  2007-08-06 14:37 ` Matt Domsch
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Matt Domsch @ 2007-07-28  4:03 UTC (permalink / raw)
  To: linux-hotplug

You may recall a problem several hardware manufacturers faced, where
the BIOS-given name for an ethernet device (e.g. "Gb1") didn't map to
the expected and obvious Linux device name (e.g. eth0), but instead
mapped to another name (e.g. eth1).  This was highly confusing to
system admins with such hardware.

Over the past year I've developed 3 separate "fixes" - each more
generic than the last.

1) a kernel patch in 2.6.19-rc3, which implements a "pci¿sort"
   option, to force the kernel to enumerate devices in a breadth-first
   manner; by default disabled on all but a few Dell and HP systems.
   This is the "brute force" method, and while handy, isn't very
   extensible or flexible.

2) name_eths (http://linux.dell.com/files/name_eths), a set of scripts
   that modifies on-disk config files
   (/etc/sysconfig/network-scripts/ifcfg-eth* HWADDR lines on Red Hat
   / Fedora systems; /etc/udev/rules.d/30-net_persistent_names rules
   on SLES/OpenSuSE).  This uses the BIOS PCI IRQ routing table to get
   the list of embedded vs add-in devices, and assigns names to the
   embedded devices first (breadth-first if there are several), then
   to the add-ins, in PCI slot number ascending order (breadth-first
   if there are several devices in the same slot, e.g. a multiport NIC
   card) and works quite well, except in a diskless environment where
   you can't read/write config files.

so now, option 3:

3) bios_dev_name (http://linux.dell.com/files/bios_dev_name) -
   intended to be a udev helper.  For example, something like:

KERNEL="eth*", ACTION="add", PROGRAM="/usr/sbin/bios_dev_name -i %k", NAME="%c"

which, given the kernel's name for a device, retreives the
BIOS-expected name, and sets it to that.  Alternately, it can be
integrated into SuSE's rename_netiface script as demonstrated in the
patch included in the release.  As a udev helper, it doesn't need
config files to accomplish its work.

Right now #1 uses a hard-coded breadth-first search algorithm; #2 uses
the PCI IRQ routing table and breadth-first.  #3 is the same as #2
algorithm-wise, but is written in C rather than perl/shell to be more
available as a udev helper, and it can now use additional SMBIOS table data.

Dell worked with the SMBIOS Working Group on a proposal, included in
the latest SMBIOS version 2.6 DRAFT [1], to add explicit BIOS device
naming assignments to the SMBIOS tables.  This will let the OS query
SMBIOS directly to find out the name a given device "should" have
(from the BIOS perspective).  Version 0.2 of bios_dev_name takes
advantages of this when included in the spec and implemented in system
BIOS.  See extended Type 9 and the new Type 41 (obsoletes Type 10)
fields for the new data.  Future Dell systems will provide this data
in their SMBIOS table implementations.

It also can read the similar HP OEM-specific SMBIOS table entries and
use those too.
       
It's also expected that additional device types will be handled,
rather than only ethernet devices.  That'll depend on need.

bios_dev_name is released under the GNU GPL v2.
http://linux.dell.com/files/bios_dev_name/bios_dev_name-0.2.tar.gz
http://linux.dell.com/files/bios_dev_name/bios_dev_name-0.2.tar.gz.sign
GIT: http://linux.dell.com/git/bios_dev_name.git

I'd like to see this incorporated into distros ASAP so we can solve
the BIOS name != kernel name problem forever, using explicit data from
the BIOS that we've never had before.  I'm also very open to including
this udev helper app into udev itself.  This is applicable to i386 and
x86_64 architectures at least, likely ia64, and others that have
SMBIOS tables and/or the PCI IRQ Routing Table.

Feedback welcome.

Thanks,
Matt

[1] http://www.dmtf.org/standards/published_documents/DSP0134.pdf

-- 
Matt Domsch
Linux Technology Strategist, Dell Office of the CTO
linux.dell.com & www.dell.com/linux

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-08-14  8:53 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-28  4:03 ANNOUNCE: bios_dev_name 0.2, now with more SMBIOS goodness Matt Domsch
2007-08-06 14:37 ` Matt Domsch
2007-08-14  2:57 ` Matt Domsch
2007-08-14  7:17 ` Greg KH
2007-08-14  8:53 ` Kay Sievers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).