Am Montag, 18. Dezember 2017 schrieb Didier Kryn:
> Le 18/12/2017 à 09:01, Dr. Nikolaus Klepp a écrit :
> >
> >>>>> Apply this patch to /lib/udev/ifupdown-hotplug-original. It changes 
> >>>>> line 78 from
> >>>>>         
> >>>>>         exec ifup --allow=hotplug $INTERFACE
> >>>>>
> >>>>> to
> >>>>>
> >>>>>       if [ -z "${INTERFACE##eth[0-9]*}" ]; then
> >>>>>           if [ $(cat /sys/class/net/$INTERFACE/carrier) -eq 1 ]; then
> >>>>>                   exec ifup --allow=hotplug $INTERFACE
> >>>>>           fi
> >>>>>       else
> >>>>>           exec ifup --allow=hotplug $INTERFACE
> >>>>>       fi
> >>>>>
> >>>>>
> >>>>> Which hopefully brings up eth[0-9]* if the cable is plugged in. Most 
> >>>>> likely it would be a speed improvement if the lines "exec ifup 
> >>>>> --allow=hotplug $INTERFACE" are changed to "exec ifup --allow=hotplug 
> >>>>> $INTERFACE &", but this works for me. It won't work if your eth is not 
> >>>>> called eth[0-9]* :-)
> >>>>>
> >>>>> Nik
> >>>>>
> >>>>>
> >>> Just saw a typo in my mail: the file is "/lib/udev/ifupdown-hotplug" (not 
> >>> "/lib/udev/ifupdown-hotplug-original").
> >>       Now it launches dhclient on eth0 right away, which incurs some
> >> delay before it goes to background. Shorther than before, but still a 
> >> delay.
> >>
> >>       Didier
> > I think you tried the version without "&" at the end of "exec ifup 
> > --allow=hotplug $INTERFACE". Could you please edit the two lines (80 and 
> > 83) in "/lib/udev/ifupdown-hotplug" so that they say "exec ifup 
> > --allow=hotplug $INTERFACE &" - i.e. add the "&" at the end and try again?
>      I fact, my situation wasn't the same as the one you reported in the 
> first place. The message on the console was the following:
> 
>      Configure network interfaces...ifup: waiting for lock on 
> /run/network/ifstate.eth0
>      This has now disapeared and I am dealing with waiting on DHCP for 
> an interface without any cable plugged in.
> 
>      I wondered if there was an interplay with ifplugd there.
> 
>      I tried disabling all interfaces in ifplugd and the result was the 
> same.
> 
>      Then I introduced some debug prints in ifupdown-hotplug to debug 
> the logic:
> ...
>      printf 'ifupdown-hotplug invoked for interface %s\n' "$INTERFACE" 
>  >/run/$INTERFACE.log;
> 
>      if [ -z "${INTERFACE##eth[0-9]*}" ]; then
>          if [ $(cat /sys/class/net/$INTERFACE/carrier) -eq 1 ]; then
>              printf 'Carrier detected; setting up.\n' >>/run/$INTERFACE.log
>              exec ifup --allow=hotplug $INTERFACE &
>          else
>              printf 'No carrier; do not set up.\n' >>/run/$INTERFACE.log;
>          fi
>      else
>          printf 'Not an ethernet interface; setting up.\n' 
>  >>/run/$INTERFACE.log;
>          exec ifup --allow=hotplug $INTERFACE &
>      fi
>    ...
> 
> The result is as expected:
> $ cat /run/eth0.log
> ifupdown-hotplug invoked for interface eth0
> No carrier; do not set up.
> 
>      DHCPDISCOVER is probably launched by the caller of 
> ifupdown-hotplug. I tried to exit with return-code 1 in case the carrier 
> isn't detected, but this has no effect.
> 
>      Didier

Well, yes, that's to expect, but does it also block the boot process? And do 
you get an IP adress, when, you plug in a cable later?

Nik



-- 
Please do not email me anything that you are not comfortable also sharing with 
the NSA, CIA ...
_______________________________________________
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng

Reply via email to