>>>> I have this: >>>> >>>> # dmesg | grep enp >>>> [ 4.297862] systemd-udevd[659]: renamed network interface eth0 to >>>> enp0s20u2u1 >>>> [ 4.778289] systemd-udevd[660]: renamed network interface eth0 to >>>> enp0s20u2u2 >>>> [ 6.496193] ax88179_178a 3-2.1:1.0 enp0s20u2u1: ax88179 - Link status >>>> is: 1 >>>> [ 7.905393] ax88179_178a 3-2.2:1.0 enp0s20u2u2: ax88179 - Link status >>>> is: 1 >>>> # >>>> >>>> That doesn't tell us when the network initscripts tried and failed to >>>> start but this from /var/log/messages/everything/current shows the >>>> first time in the boot sequence that a dependent service failed to >>>> start because of the networking failure so it should be before this: >>>> >>>> [kernel] [ 0.787433] serio: i8042 AUX port at 0x60,0x64 irq 12 >>>> [/etc/init.d/unbound] ERROR: cannot start unbound as net.enp0s20u2u1 >>>> would not start >>>> [kernel] [ 0.792081] rtc_cmos 00:04: alarms up to one month, y3k, >>>> 242 bytes nvram, hpet irqs >>>> >>> >>> Yeah, so I think the kernel is detecting your network card after udev >>> has already started. >>> >>> One interesting experiment would be to delay the boot process to allow >>> the kernel additional time to detect devices. Adding rootdelay=10 to >>> your kernel command line should do the trick, unless you are using >>> some broken initramfs. >> >> >> I tried that and it works great which I think confirms our suspicions >> that the kernel is detecting my network cards after udev has already >> started. If I remove rootdelay=10 and I do this: >> >> # ln -s /dev/null /etc/udev/rules.d/90-network.rules >> >> the network interfaces fail to come up which is the same thing I've >> experienced with rc_hotplug="net.*". >> > > Yeah, so this is not solvable using service dependencies. You will > either need to make that boot delay permanent, or rely on the hotplug > functionality to start the net.en* services. In the latter case, you > should remove them from the default runlevel.
Was the 10-second boot delay based on anything in particular or can I try a lower delay like 5 seconds? It's tricky to get the machine back when I lose it otherwise I would just test it myself. Would it make sense for me to submit a feature request for network interfaces to wait until all USB devices have been initialized before starting (or something like that)? > You may want to define rc_need="!net" to prevent init scripts that > "need net" from automatically starting the net.* services. For most > services this is fine, but it will obviously break things like ntpdate > which actually need a usable network connection. I don't follow this. Doesn't hotplug need to be able to start the net.* services in order for that solution to work? - Grant