Comment 50 for bug 1652348

Revision history for this message
Michael F Winthrop (mwinthrop-1) wrote : [Kernel-packages] [Bug 1652348] [NEW] initrd dhcp fails / ignores valid response

Paul,

  [Kernel-packages] [Bug 1652348] [NEW] initrd dhcp fails / ignores
  valid response
  <https://www.mail-archive.com/search?<email address hidden>&q=subject:%22%5C%5BKernel%5C-packages%5C%5D+%5C%5BBug+1652348%5C%5D+%5C%5BNEW%5C%5D+initrd+dhcp+fails+%5C%2F+ignores%09valid+response%22&o=newest>

https://<email address hidden>/msg211650.html

I also have this bug

IP-Config: no response after 2 secs - giving up
IP-Config: ens2f0 hardware address 90:e2:ba:d1:36:38 mtu 1500 DHCP RARP
etc., etc., etc. ...

and tracked it to:

c

I set the countdown to "2 3 4 6 9" and saw the count of failures match
appropriately.

I note that there are no problems if I attach an Ethernet cable from my
router to the PC. A probable solution is to use wlan (to get a
connectible device) or to test and see if the eth actually has a
connected cable. Perhaps both.

Text requiring attention from /usr/share/initramfs-tools/scripts/functions

         # support ip options see linux sources
         # Documentation/filesystems/nfs/nfsroot.txt
         # Documentation/frv/booting.txt

         #for ROUNDTTT in 2 3 4 6 9 16 25 36 64 100; do
          for ROUNDTTT in 2 3 4 6 9; do

                 # The NIC is to be configured if this file does not exist.
                 # Ip-Config tries to create this file and when it succeds
                 # creating the file, ipconfig is not run again.
                 for x in /run/net-"${DEVICE}".conf /run/net-*.conf ; do
                         if [ -e "$x" ]; then
                                 IP=done
                                 break
                         fi
                 done

                 for x in /run/net6-"${DEVICE}".conf /run/net6-*.conf ; do
                         if [ -e "$x" ]; then
                                 IP6=done
                                 break
                         fi

                 done

                 # if we've reached a point where both IP and IP6 are
"done",
                 # then we're finished with network configuration.
                 if [ "$IP" = done ] && [ "$IP6" = done ]; then
                         break
                 fi

                 case ${IP} in
                 none|done|off)
                         # Do nothing
                         IP=done
                         ;;
                 ""|on|any)
                         # Bring up device
                         ipconfig -t ${ROUNDTTT} "${DEVICE}"
                         ;;
                 dhcp|bootp|rarp|both)
                         ipconfig -t ${ROUNDTTT} -c ${IP} -d "${DEVICE}"
                         ;;
                 *)
                         ipconfig -t ${ROUNDTTT} -d $IP

                         # grab device entry from ip option
                         NEW_DEVICE=${IP#*:*:*:*:*:*}
                         if [ "${NEW_DEVICE}" != "${IP}" ]; then
                                 NEW_DEVICE=${NEW_DEVICE%%:*}
                         else
                                 # wrong parse, possibly only a partial
string
                                 NEW_DEVICE=
                         fi
                         if [ -n "${NEW_DEVICE}" ]; then
                                 DEVICE="${NEW_DEVICE}"
                         fi
                         ;;
                 esac

                 case ${IP6} in
                 ""|none|done|off)
                         # Do nothing
                         IP6=done
                         ;;
                 *)
                         # if this is not the first loop, sleep to
provide the backoff.
                         [ "$(($ROUNDTTT-2))" = "0" ] || sleep $ROUNDTTT

                         # check the content of IP6, if we have
something other
                         # than a device name there and BOOTIF isn't
set, clear
                         # DEVICE6 and we'll try all available devices.
                         if echo "${IP6}" | grep -qv
'^\(on\|dhcp\|any\)$'; then
                                 DEVICE6="$IP6"
                         fi

                         # if we don't have a device specified, try to
bring up

                         # any eligible device.
                         if [ -z "${DEVICE6}" ]; then
                                 DEVICE6=$(all_netbootable_devices)
                         fi

                         # Bring up device
                         for dev in ${DEVICE6} ; do
                                 dhclient -6 -1 -v "${dev}"
                         done
                         ;;
                 esac
         done

--
Cordially Yours,
/*Michael F Winthrop*/
Member: Sterling Lions Club, VA
Member: EAA Chapter 186, Manassas Apt. KHEF