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.mb@web.de> for reporting and providing a patch
+
+ -- Stephan Hermann <sh@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.mb@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)
Attachment:
signature.asc
Description: Digital signature