[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#593284: marked as done (live-initramfs: add functionlity for using BOOTIF param)

Your message dated Wed, 01 Sep 2010 16:47:13 +0000
with message-id <E1OqqSv-0000iO-25@franck.debian.org>
and subject line Bug#593284: fixed in live-boot 3.0~a2-1
has caused the Debian Bug report #593284,
regarding live-initramfs: add functionlity for using BOOTIF param
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org

593284: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=593284
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: live-initramfs
Version: 1.236.2-1

Hi there,

last weekend I was testing something with fai, initramfs-tools and
live-initramfs, because I had trouble with netbooting a via vb8001 mb
with a second pcie e1000e card.

The problem is, that one time the onboard via-velocity becomes eth1 next time eth0 (mostly eth1). Therefore it's not enough to specify live-netdev=eth1 as kernel param.

My idea is to work with the BOOTIF param which pxelinux set's as kernel param when you specify

ipappend 2

in the pxelinux boot config of your machine. It includes the MAC of the nic the kernel was booted from (or so o:). You can also specify BOOTIF as a kernel param manually.

live-initramfs should simply acquire the ip(dhcp) through the same ip the kernel was loaded from.

I find this useful, because most of the people that do a pxe/netboot and mount a nfsroot (like fai does), want to get the ip address for the nfsroot (which will be mountes through/by live-initramfs) through the same device/ip/... the kernel was loaded from.

My current solution is:

- take live-initramfs=1.236.2-1 source code from http://live.debian.net/archive/packages/live-boot/1.236.2-1 This is the last version of the old 1.x series. I took that one, because I have trouble using latest version of live-initramfs based on live-boot with fai (will file this as a separat bug). - change scripts/live-premount/select_eth_device that it takes live-netdev=BOOTIF as a parameter and that it set's the live-netdev to the interface that matches the MAC given in BOOTIF when done so.

@M.Attems: Thanx for writing the mac-nic-translator in initramfs-tools - I could easily use that one here (o:

- revert patch "5de51fc8b4f8e80f1ff1e734c971755c0c223150 - Using minimized rules file" from live.debian.net (live-boot) that package builds against plain lenny repo and sources.

- use initramfs-tools package as I described in bug #593276

I don't know much about the work of a debian package maintainer and possibly it need's some extra work to make this "debian-clean", that's my idea and it works so far for me.

Attached is a diff.gz + dsc against http://live.debian.net/archive/packages/live-boot/1.236.2-1/live-initramfs_1.236.2.orig.tar.gz.

Here's also a patch for scripts/live-premount/select_eth_device which I primarily changed:

--- select_eth_device.orig    2010-05-18 06:53:40.000000000 +0200
+++ select_eth_device    2010-08-13 10:47:27.000000000 +0200
@@ -56,11 +56,80 @@ if [ $(echo $l_interfaces | wc -w) -lt 2
    exit 0

+for ARGUMENT in $(cat /proc/cmdline); do
+    case "${ARGUMENT}" in
+        BOOTIF=*)
+        echo "Found BOOTIF parameter in /proc/cmdline."
+        echo "Setting BOOTIF=$BOOTIF."
+        ;;
+    esac
+# taken from git.kernel.org - initramfs-tools
+# commit 673abb77821433a67add61ac79d739c6cee9eee0
+# and bugfix commit 5db5becc85059e56075de5a331ed7c5a4cc2de0c
+# and changed it a bit for this purpose
+# thx maximilian attems
+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
+                BOOTIF_DEVICE=${device##*/}
+                break
+            fi
+        fi
+    done
+ [ -n "$BOOTIF_DEVICE" ] && echo "Found matching dev to BOOTIF MAC. Setting BOOTIF_DEVICE=$BOOTIF_DEVICE"
# If user force to use specific device, write it
for ARGUMENT in $(cat /proc/cmdline); do
    case "${ARGUMENT}" in
-        NETDEV="${ARGUMENT#live-netdev=}"
+        LIVE_NETDEV="${ARGUMENT#live-netdev=}"
+        if [ "$LIVE_NETDEV" = "BOOTIF" ]; then
+            if [ -n "$BOOTIF_DEVICE" ]; then
+                NETDEV="$BOOTIF_DEVICE"
+ echo "Found live-netdev=BOOTIF in /proc/cmdline. Setting NETDEV=$BOOTIF_DEVICE"
+            else
+                echo "Found live-netdev=BOOTIF in /proc/cmdline."
+                echo "No BOOTIF_DEVICE was found, try inserting line:"
+                echo "ipappend 2"
+                echo "to PXELINUX boot config (device not supported?)"
+                echo "or add BOOTIF kernel parameter with a correct MAC."
+                # live-netdev will not work here - leave the for loop
+                break
+            fi
+        else
+            NETDEV="$LIVE_NETDEV"
+        fi
        echo "DEVICE=$NETDEV" >> /conf/param.conf
echo "Found live-netdev parameter in /proc/cmdline. Force to use network device $NETDEV."
        exit 0


Holger Fischer

Attachment: live-initramfs_1.236.2-1~hbpo01.diff.gz
Description: application/gzip

Format: 1.0
Source: live-initramfs
Binary: live-initramfs
Architecture: all
Version: 1.236.2-1~hbpo01
Maintainer: Debian Live Project <debian-live@lists.debian.org>
Uploaders: Daniel Baumann <daniel@debian.org>
Homepage: http://live.debian.net/devel/live-initramfs/
Standards-Version: 3.8.4
Vcs-Browser: http://live.debian.net/gitweb/?p=live-initramfs.git
Vcs-Git: git://live.debian.net/git/live-initramfs.git
Build-Depends: debhelper (>= 7)
Build-Depends-Indep: asciidoc, docbook-xsl, xsltproc
 8393790f00b8c324d1f666e4fb07759039ebf649 109935 live-initramfs_1.236.2.orig.tar.gz
 03e5fcdddf66d18e3e250aed0a823f838590db7c 16702 live-initramfs_1.236.2-1~hbpo01.diff.gz
 ab960f9523653bba651f74f8df671037503ff9bb9c8b11aca7cd61889632e5e5 109935 live-initramfs_1.236.2.orig.tar.gz
 be1dd3e07ecdb7f12a08c7b1aa4006c78625c2d05bd24bdf61612f2183edba66 16702 live-initramfs_1.236.2-1~hbpo01.diff.gz
 cf4d591adcd0e1b01b5708e4a3911e65 109935 live-initramfs_1.236.2.orig.tar.gz
 ae6286be83e69752d1b665afe7595354 16702 live-initramfs_1.236.2-1~hbpo01.diff.gz

--- End Message ---
--- Begin Message ---
Source: live-boot
Source-Version: 3.0~a2-1

We believe that the bug you reported is fixed in the latest version of
live-boot, which is due to be installed in the Debian FTP archive:

  to main/l/live-boot/live-boot-initramfs-tools_3.0~a2-1_all.deb
  to main/l/live-boot/live-boot_3.0~a2-1.debian.tar.gz
  to main/l/live-boot/live-boot_3.0~a2-1.dsc
  to main/l/live-boot/live-boot_3.0~a2-1_all.deb
  to main/l/live-boot/live-boot_3.0~a2.orig.tar.gz

A summary of the changes between this version and the previous one is

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 593284@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
Daniel Baumann <daniel@debian.org> (supplier of updated live-boot package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)

Hash: SHA1

Format: 1.8
Date: Wed, 01 Sep 2010 18:27:33 +0200
Source: live-boot
Binary: live-boot live-boot-initramfs-tools
Architecture: source all
Version: 3.0~a2-1
Distribution: experimental
Urgency: low
Maintainer: Debian Live Project <debian-live@lists.debian.org>
Changed-By: Daniel Baumann <daniel@debian.org>
 live-boot  - Debian Live - System Boot Scripts
 live-boot-initramfs-tools - Debian Live - System Boot Scripts (initramfs-tools backend)
Closes: 593284
 live-boot (3.0~a2-1) experimental; urgency=low
   [ Daniel Baumann ]
   * Removing old and unmaintained po files.
   * Adding reformated patch from Stephan Hermann <sh@sourcecode.de>
     based on the work of Holger Fischer <hoo.mb@web.de> to add support
     for BOOTIF in cases where pxelinux is being used with IPAPPEND
     (Closes: #593284).
   [ Steven Shiau ]
   * Making multiple connected NICs work.
   [ Michael Prokop ]
   * Adding workaround for aufs issue in kernel versions around 2.6.33.
   [ Daniel Baumann ]
   * Using allow-hotplug instead of auto in automatically created
     /etc/network/interfaces file.
 188d20c030b73a97fe3e6d5a6cb0f96f4777d7b8 1249 live-boot_3.0~a2-1.dsc
 e2b4f64a18fd20ea70db866d17f42a8f80e71b70 103842 live-boot_3.0~a2.orig.tar.gz
 2626b09e03a8372a3a070c33241196ed238a7e2c 17476 live-boot_3.0~a2-1.debian.tar.gz
 476e87c8e2fd06c8e8796dc8bf0537ddab440375 74154 live-boot_3.0~a2-1_all.deb
 c7f91df23766e9580858bcb0fb06c6040e3fd125 28570 live-boot-initramfs-tools_3.0~a2-1_all.deb
 d50b8da4129cff34d4e4d605c7f04a605d3567452b6fd2a8f47301bdf98e1725 1249 live-boot_3.0~a2-1.dsc
 487e3ae6e5084252f46677df9c5213d229e716fc3ab70831fbb01bcb64c7d9f6 103842 live-boot_3.0~a2.orig.tar.gz
 0c9545344570c56e4a7280f763b5d682114c8e57d481b0d1fab1b87204729898 17476 live-boot_3.0~a2-1.debian.tar.gz
 fbcf3fceed68b5e6a5eebd55f09de53efb943b71b50b529003e4c78751e00bd9 74154 live-boot_3.0~a2-1_all.deb
 9083430c4affb1a56f2453ca38ad473fbd3c71858ee856eb5385284d7e1ca2cb 28570 live-boot-initramfs-tools_3.0~a2-1_all.deb
 f0731e02f3307fa7cb2a5d903cee50f7 1249 misc optional live-boot_3.0~a2-1.dsc
 0118c38356dd9542fc48c306f0229335 103842 misc optional live-boot_3.0~a2.orig.tar.gz
 6c630cfa00fb2f5ecfad7c32d7724a51 17476 misc optional live-boot_3.0~a2-1.debian.tar.gz
 322aab77a899fb8b99ebbf94cf9f2812 74154 misc optional live-boot_3.0~a2-1_all.deb
 f69f1f809cc0cd4fc90a9c6928582303 28570 misc optional live-boot-initramfs-tools_3.0~a2-1_all.deb

Version: GnuPG v1.4.10 (GNU/Linux)


--- End Message ---

Reply to: