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)

Attachment: signature.asc
Description: Digital signature

Reply via email to