X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=components%2F9990-networking.sh;h=dd1d0f0c2007e746d7ed2024e57435055390c24e;hb=683095685ccdd4175b75293540aabe239d03a6bb;hp=cdec92a98a963194f261e17075530e8f8a733a43;hpb=a331218718282c5496ff062a0f6aa55908224862;p=live-boot-grml.git diff --git a/components/9990-networking.sh b/components/9990-networking.sh index cdec92a..dd1d0f0 100755 --- a/components/9990-networking.sh +++ b/components/9990-networking.sh @@ -9,48 +9,47 @@ Device_from_bootif () 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. + # 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 - for device in /sys/class/net/* - do - if [ -f "$device/address" ] - then - current_mac=$(cat "$device/address") + # look for devices with matching mac address, and set DEVICE to + # appropriate value if match is found. - if [ "$bootif_mac" = "$current_mac" ] + for device in /sys/class/net/* + do + if [ -f "$device/address" ] then - DEVICE=${device##*/} - break + current_mac=$(cat "$device/address") + + if [ "$bootif_mac" = "$current_mac" ] + then + DEVICE=${device##*/} + break + fi fi - fi - done + done fi - } do_netsetup () @@ -108,7 +107,7 @@ do_netsetup () # if configuration of device worked we should have an assigned # IP address, if so let's use the device as $DEVICE for later usage. # simple and primitive approach which seems to work fine - if ifconfig $dev | grep -q 'inet.*addr:' + if ifconfig $dev | grep -q -E 'inet.*addr:|inet [0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*' then export DEVICE="$dev" break @@ -152,7 +151,7 @@ do_netsetup () echo "search ${DNSDOMAIN}" >> /etc/resolv.conf fi - for i in ${IPV4DNS0} ${IPV4DNS1} ${IPV4DNS1} + for i in ${IPV4DNS0} ${IPV4DNS1} ${IPV4DNS1} ${DNSSERVERS} do if [ -n "$i" ] && [ "$i" != 0.0.0.0 ] then