linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* ANNOUNCE: bios_dev_name tool, 0.1 release
@ 2006-11-29 23:14 Matt Domsch
  0 siblings, 0 replies; only message in thread
From: Matt Domsch @ 2006-11-29 23:14 UTC (permalink / raw)
  To: linux-hotplug

You may recall several months ago a problem I 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.

Since then, 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 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.

In the future, the SMBIOS Working Group has a proposal 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).  I expect bios_dev_name to
be able to take advantage of this when included in the spec and
implemented in system BIOS.

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.1.tar.gz
http://linux.dell.com/files/bios_dev_name/bios_dev_name-0.1.tar.gz.sign


Feedback welcome.

Thanks,
Matt

-- 
Matt Domsch
Software Architect
Dell Linux Solutions linux.dell.com & www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CIDÞVDEV
_______________________________________________
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] only message in thread

only message in thread, other threads:[~2006-11-29 23:14 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-29 23:14 ANNOUNCE: bios_dev_name tool, 0.1 release Matt Domsch

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).