FAI - Debian Lenny and Hardware with Multiple Ethernets

Stephan Hermann sh at sourcecode.de
Thu Jun 4 08:33:41 CEST 2009


Dear Colleagues,

Debian Lenny has a problem when booting via PXE with hardware
which have multiple ethernet devices.

E.g. a HP DL365 with 4 NICS, 2 On Board Broadcoms and a Dual NIC Intel
Addon Card.

Now you think normally the onboard NICs (one of the two) will be the
choosen one you are booting from via PXE. This is correct, but the
kernel and UDEV are enumerating diffrently and the next phase
after /scripts/live-premount is to configure the network after kernel
booting. UDEV tries directly to use device "eth0" but this is sadly not
the booting device (which is in this case eth2).

Now, the documentation of initramfs and ipconfig and kernel tells us, we
should use the "ip" kernel append parameter.

THIS DOESN'T WORK! (It works in SID, but not Lenny)

Why?

Since freeze of Lenny the used initramfs tools were improved and fixed.
For lenny, the "bad script" is "/usr/share/initramfs-tools/scripts/live"

And the bugger line is "ipconfig -d ${DEVICE} | tee /netboot.config"

In later versions of initramfs this functionality is removed completly
(the live* scripts are not existing anymore). The new functionality
(/usr/share/initramfs-tools/scripts/functions -> func:
configure_networking) works as documented, so replacing the, above
mentiond, line in the "live" script with the "case" switch from the
"configure_networking" func (adding "| tee /netboot.config" ) from later
versions of initramfs gives the wished result. 
You can set now in the pxelinux.cfg/<IP/GGUID> files now the kernel
append line to something like this: ip=:::::<your boot eth device with
the right enumeration>:dhcp and the kernel will do the ipconfiguration
without any problems after kernel boot.

I think this is a serious regression to former versions of the Kernel
and FAI and can raise many problems.

I think the same regression we have also in Ubuntu Hardy (this is
something I have to check).

If there is a possibilty to ship a fixed initramfs for lenny inside
FAIs .deb repository I'm happy to fix this issue especially for FAI on
lenny.

Actually this is an easier workaround of UDEVS/Kernel strange device
enumeration and is not as difficult then the documented workaround on
the FAI wiki:
http://faiwiki.informatik.uni-koeln.de/index.php/Multi-ethernet

Another idea is to replace some functionality of initramfs with a sane
detection of ethernet boot devices, most probaly a documented idea on
http://codtech.com/wiki/index.php/Ipconfig would help too.. it really
looks like that the ipconfig script doesn't detect any timeouts and
waits forever.

What should we do?

Regards,

\sh

-- 
| Stephan '\sh' Hermann    | OSS Dev / SysAdmin         |
| JID: sh at linux-server.org | http://www.sourcecode.de/  | 
| GPG ID: 0xC098EFA8	   | http://leonov.tv/          |
| FP: 3D8B 5138 0852 DA7A B83F DCCB C189 E733 C098 EFA8 |


More information about the linux-fai mailing list