Dear Colleagues, I took Holgers patch and added it to the latest sid packages of live-boot.
Please find attached the needed debdiff. (thx Mikap for reminding me ;)) Regards, \sh
diff -u live-boot-2.0.0/debian/changelog live-boot-2.0.0/debian/changelog --- live-boot-2.0.0/debian/changelog +++ live-boot-2.0.0/debian/changelog @@ -1,3 +1,12 @@ +live-boot (2.0.0-2) unstable; urgency=low + + * scripts/live: + + added Syslinux BOOTIF support, when pxelinux is being used with IPAPPEND + (Closes: #593284) + Thx to Holger Fischer <hoo...@web.de> for reporting and providing a patch + + -- Stephan Hermann <s...@sourcecode.de> Tue, 17 Aug 2010 13:47:58 +0000 + live-boot (2.0.0-1) unstable; urgency=low * Updating debian-installer languagelist. only in patch2: unchanged: --- live-boot-2.0.0.orig/scripts/live +++ live-boot-2.0.0/scripts/live @@ -68,6 +68,10 @@ export DEFCONSOLE ;; + BOOTIF=*) + BOOTIF="${x#BOOTIF=}" + ;; + debug) DEBUG="Yes" export DEBUG @@ -581,6 +585,49 @@ [ -z "${HTTPFS}" ] && [ -z "${FTPFS}" ] then + + # support for Syslinux IPAPPEND parameter + # it sets the BOOTIF variable on the kernel parameter + # Taken from http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=593284 + # by Holger Fischer <hoo...@web.de> + + if [ -n "${BOOTIF}" ]; then + # pxelinux sets BOOTIF to a value based on the mac address of the + # network card used to PXE boot, so use this value for DEVICE rather + # than a hard-coded device name from initramfs.conf. this facilitates + # network booting when machines may have multiple network cards. + # pxelinux sets BOOTIF to 01-$mac_address + + # strip off the leading "01-", which isn't part of the mac + # address + temp_mac=${BOOTIF#*-} + + # convert to typical mac address format by replacing "-" with ":" + bootif_mac="" + IFS='-' + for x in $temp_mac ; do + if [ -z "$bootif_mac" ]; then + bootif_mac="$x" + else + bootif_mac="$bootif_mac:$x" + fi + done + unset IFS + + # look for devices with matching mac address, and set DEVICE to + # appropriate value if match is found. + for device in /sys/class/net/* ; do + if [ -f "$device/address" ]; then + current_mac=$(cat "$device/address") + if [ "$bootif_mac" = "$current_mac" ]; then + DEVICE=${device##*/} + break + fi + fi + done + fi + + # if ethdevice was not specified on the kernel command line # make sure we try to get a working network configuration # for *every* present network device (except for loopback of course)
signature.asc
Description: Digital signature