The Ubuntu live server installer makes all NICs (wifi and wired) mandatory in netplan config even when only wifi is configured in the server installer dialogs. This prevents the login prompt from being shown on installed system initial reboot for 2 minutes while awaiting a network online scenario that will not be reached.
The netplan configuration of Wifi and wired NIC set both devices as mandatory for boot, blocking network-online.target for 2 minutes on system installer first reboot delaying cloud-init final setup operations. This 2 minute delay from systemd-analyze blame is also seen on every subsequent reboot of the machine.
This is not a regression with 22.04.1 point release as this behavior exists in 22.04 live installer images as well.
Steps to reproduce:
I have a device (Lenovo T14 laptop) with both an RJ45 jack and an Intel Alder Lake-P WiFi device
When prompted for "Network connections" in the server live installer dialog,
- No wired connection plugged in, leave NIC configured as "Automatic(DHCP)" (default setting) which reports "not connected" in Notes
- wifi -> Edit Wifi -> set network name -> set wifi password -> Save
Complete install, reboot into the installed machine to finalize cloud-init configuration:
See log during boot
`A start job is running on Wait for Network to be Configured (42s / no limit)`
# network config job timeout at 2min
$ sudo cat /etc/netplan/00-installer-config-wifi.yaml
# This is the network config written by 'subiquity'
network:
version: 2
wifis:
wlp0s20f3:
access-points: AFullhouse-5G:
password: <redacted>
dhcp4: true
$ cat /etc/netplan/installer-config.yaml
# This is the network config written by 'subiquity'
network:
ethernets:
enp0s31f6:
optional: true
dhcp4: true
version: 2
# Desired behavior
When a network device is not connected during install, maybe the installer should emit "optional: true" in the related /etc/netplan/ config for that interface. It would then avoid lengthy delays on subsequent boots, but still allow the device to be configured for dhcp just in case it is connected.
The Ubuntu live server installer makes all NICs (wifi and wired) mandatory in netplan config even when only wifi is configured in the server installer dialogs. This prevents the login prompt from being shown on installed system initial reboot for 2 minutes while awaiting a network online scenario that will not be reached.
The netplan configuration of Wifi and wired NIC set both devices as mandatory for boot, blocking network- online. target for 2 minutes on system installer first reboot delaying cloud-init final setup operations. This 2 minute delay from systemd-analyze blame is also seen on every subsequent reboot of the machine.
This is not a regression with 22.04.1 point release as this behavior exists in 22.04 live installer images as well.
Steps to reproduce:
I have a device (Lenovo T14 laptop) with both an RJ45 jack and an Intel Alder Lake-P WiFi device
When prompted for "Network connections" in the server live installer dialog,
- No wired connection plugged in, leave NIC configured as "Automatic(DHCP)" (default setting) which reports "not connected" in Notes
- wifi -> Edit Wifi -> set network name -> set wifi password -> Save
Complete install, reboot into the installed machine to finalize cloud-init configuration:
See log during boot
`A start job is running on Wait for Network to be Configured (42s / no limit)`
# network config job timeout at 2min
Login as user created
csmith@midtown:~$ systemd-analyze networkd- wait-online. service service service setup.service local.service service ubuntu\ x2d\x2dvg\ x2dubuntu\ x2d\x2dlv. device activate. service resolved. service debug.mount tracing. mount 253:0.service config/ config- locale) config- ssh) config/ config- grub-dpkg) config/ config- set-passwords) config/ config- apt-configure) final/config- keys-to- console) config- users-groups) final/config- final-message) consume- user-data) final/config- write-files- deferred) final/config- ssh-authkey- fingerprints) final/config- scripts- per-once) final/config- phone-home) final/config- install- hotplug) final/config- fan) config/ config- timezone) config/ config- ssh-import- id) search- None) config- seed_random) config- ca-certs) activate- datasource) final/config- ubuntu- drivers) final/config- scripts- vendor) final/config- scripts- user) final/config- scripts- per-instance) final/config- scripts- per-boot) final/config- salt-minion) final/config- rightscale_ userdata) final/config- reset_rmc) final/config- refresh_ rmc_and_ interface) final/config- puppet) final/config- power-state- change) final/config- package- update- upgrade- install) final/config- mcollective) final/config- lxd) final/config- landscape) final/config- chef) config/ config- ubuntu- advantage) config/ config- snap) config/ config- runcmd) config/ config- ntp) config/ config- keyboard) config/ config- disable- ec2-metadata) config/ config- byobu) config/ config- apt-pipelining) setup-datasourc e) consume- vendor- data2) consume- vendor- data) config- write-files) config- update_ hostname) config- update_ etc_hosts) config- set_hostname) config- rsyslog) config- resizefs) config- mounts) config- migrator) config- growpart) config- disk_setup) config- bootcmd) check-cache) check-cache)
Startup finished in 15.654s (firmware) + 2.245s (loader) + 11.529s (kernel) + 2min 7.511s (userspace) = 2min 36.941s
graphical.target reached after 2min 7.272s in userspace
csmith@midtown:~$ systemd-analyze blame
2min 203ms systemd-
3.038s snapd.seeded.
1.139s cloud-config.
1.079s pollinate.service
698ms snapd.service
534ms console-
514ms cloud-init.service
486ms cloud-init-
459ms snapd.apparmor.
330ms dev-mapper-
311ms snap.lxd.
259ms systemd-
209ms cloud-final.service
182ms dev-loop1.device
182ms dev-loop0.device
182ms dev-loop2.device
157ms apparmor.service
145ms <email address hidden>
113ms dev-hugepages.mount
112ms dev-mqueue.mount
111ms sys-kernel-
109ms sys-kernel-
106ms lvm2-pvscan@
csmith@midtown:~$ cloud-init analyze blame
-- Boot Record 01 --
00.80000s (modules-
00.27600s (init-network/
00.08400s (modules-
00.06800s (modules-
00.02500s (modules-
00.02100s (modules-
00.02100s (init-network/
00.00400s (modules-
00.00300s (init-network/
00.00100s (modules-
00.00100s (modules-
00.00100s (modules-
00.00100s (modules-
00.00100s (modules-
00.00100s (modules-
00.00100s (modules-
00.00100s (modules-
00.00100s (init-network/
00.00100s (init-network/
00.00100s (init-network/
00.00100s (init-network/
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (modules-
00.00000s (init-network/
00.00000s (init-network/
00.00000s (init-network/
00.00000s (init-network/
00.00000s (init-network/
00.00000s (init-network/
00.00000s (init-network/
00.00000s (init-network/
00.00000s (init-network/
00.00000s (init-network/
00.00000s (init-network/
00.00000s (init-network/
00.00000s (init-network/
00.00000s (init-network/
00.00000s (init-network/
00.00000s (init-local/
1 boot records analyzed
$ sudo cat /etc/netplan/ 00-installer- config- wifi.yaml points:
AFullhouse- 5G:
# This is the network config written by 'subiquity'
network:
version: 2
wifis:
wlp0s20f3:
access-
password: <redacted>
dhcp4: true
$ cat /etc/netplan/ installer- config. yaml
# This is the network config written by 'subiquity'
network:
ethernets:
enp0s31f6:
optional: true
dhcp4: true
version: 2
# Desired behavior
When a network device is not connected during install, maybe the installer should emit "optional: true" in the related /etc/netplan/ config for that interface. It would then avoid lengthy delays on subsequent boots, but still allow the device to be configured for dhcp just in case it is connected.