Linux Support FAQ entry 10 Mar 2006, logged in as JanIven
LinuxSupportFAQForm
SupportProblem When going from SLC3 to SLC4, or from SLC3-32bit to SLC3-64bit, some hardware devices change their logical number. For example, eth0 becomes eth1 (and vice versa), sda becomes sdc (or some other sdX).
SupportAnswer (This breaks hard mappings from the logical device number to a certain functionality, e.g. partitioning via a Kickstart file will use the "wrong" disk, network configurations that set up "eth0" will configure the wrong port.)

This is a generic problem between 2.4 and 2.6 kernels (or rather, kernels which use ACPI to probe the PCI bus):

For devices on a single bus, the order in which they are reported to the OS is inversed between 2.4 and 2.6.

Worse, the actual logical devices names are assigned in order of devices being found by their respective drivers, so a missing device will shift the remaining devices down (and consider that e.g. USB disks are assigned names from the /dev/sdX namespace to see why this is a problem).

The inability to address devices directly by their physical place on a bus is a serious problem for Linux. Has been always.

Various worakrounds have been introduced to make up for this deficiency:

  • file system mount by label dissociate the mount point from the logical device name (at the expense of scanning all logical devices for the correct label, bad for some networked pseudodevices). This way the discovery order for harddrives is consistent between install and runtime, and file systems will be identified by label (so it doesn't matter whether they reside on sda or sdb, as long as they can be found at boot)
  • "renaming" of network interfaces on-the-fly, based on the MAC address (works well as long as the devices are being controlled by the same driver)
  • buses with "fixed" things attached to them are usually scanned first (usually USB hubs are attached somewhere on the PCI bus, so the PCI devices get found first).
  • loading driver modules in a certain order (via aliases in /etc/modprobe.conf) allows to determine logical names by hardware type (but the driver loading order at install time is largely fixed)

Workarounds:

  • pci=noacpi on the kernel command line gives the same scanning order on SLC4 as on SLC3. This may give lower performance since the more advanced interrupt routing routines offered by ACPI will not get used.

Otherwise, this is unfortunately hardware / BIOS (version) / kernel - specific, the device mapping (at least for fixed devices) tends to stay constant for a fixed combination of these. In cases where this information is available, in some cases specific mappings can be done via Kickstart file customization (e.g driver probe order). Other cases (such as controller order as seen by a single driver) are beyond our control.

OsVersion SLC4
HardwareArchitecture any
ApprovedBySupport SupportApproved
Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r2 - 2006-05-19 - JanIven
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LinuxSupport All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback