i update my system by:
$ apt-get upgrade
then bad things happened, when i reboot the system, i had it get a timeout about network connection.
i am pretty sure that, my network connection is fine (it unchanged during update), i can get ip allocated (both ethernet and wlan)
i have consulted google:
# anyway, i was told to run
$ sudo netplan apply
# and i get
WARNING:root:Cannot call Open vSwitch: ovsdb-server.service is not running.
i have never installed this ovsdb stuff in my server, but this warning is really annoying
it may related to network timeout, or not
how can i fix this (to erase this waring or just help me to solve network connection problem)
i tried:
$ systemctl status systemd-networkd-wait-online.service
and i get:
× systemd-networkd-wait-online.service - Wait for Network to be Configured
Loaded: loaded (/lib/systemd/system/systemd-networkd-wait-online.service; enabled; vendor preset: disabled)
Active: failed (Result: timeout) since Tue 2023-08-22 05:12:01 CST; 2 months 3 days ago
Docs: man:systemd-networkd-wait-online.service(8)
Process: 702 ExecStart=/lib/systemd/systemd-networkd-wait-online (code=exited, status=0/SUCCESS)
Main PID: 702 (code=exited, status=0/SUCCESS)
CPU: 22ms
Aug 22 05:11:59 ubuntu systemd[1]: Starting Wait for Network to be Configured...
Aug 22 05:12:01 ubuntu systemd[1]: systemd-networkd-wait-online.service: start operation timed out. Terminating.
Aug 22 05:12:01 ubuntu systemd[1]: systemd-networkd-wait-online.service: Failed with result 'timeout'.
Aug 22 05:12:01 ubuntu systemd[1]: Failed to start Wait for Network to be Configured.
i have solved this problem
netplan apply
says ovsdb-server.service is not running, then i just install this openvswitch
since i run ubuntu server in raspberry pi, i need to install extra lib:
# run this first
$ sudo apt-get install linux-modules-extra-raspi
# run this then
$ sudo apt-get install openvswitch-switch-dpdk
you may need to check installation by run these command again
after the installation complete, no annoying WARNING shows again:
$ sudo netplan try
however, systemd-networkd-wait-online.service still timeout, no matter how many times you restart it
i have consulted the man page for systemd-networkd-wait-online.service usage
this service is just to wait all interface managed by systemd-networkd are ready
in fact, i only use ethernet interface and wlan interface, these interfaces work well
$ ip a
# status of my interfaces
so i asked chatgpt about how to wait specific interfaces for systemd-networkd-wait-online.service
it told my to add args in /lib/systemd/system/systemd-networkd-wait-online.service
$ vim /lib/systemd/system/systemd-networkd-wait-online.service
[Service]
Type=oneshot
# flag `--interface` is used to wait specific interface
# in this case, i need to wait wlan interface and ethernet interface
ExecStart=/lib/systemd/systemd-networkd-wait-online --interface=wlan0 --interface=eth0
RemainAfterExit=yes
# this parameter is used to set timeout, 30s is enough for my pi
TimeoutStartSec=30sec
after edition, you need to reload this script and restart service
$ systemctl daemon-reload
$ systemctl restart systemd-networkd-wait-online.service
that is all, everything gonna be fine (maybe)