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