Created attachment 114701 [details]
Complete journalctl -b
There is a troubling race condition between netdev bond devices and WiFi,
where the WiFi component refuses to come up without coaxing.
I found a reference to a similar report in the systemd developer mailing list:
(Question 3) http://lists.freedesktop.org/archives/systemd-devel/2015-March/028971.html
My configuration, and a log snippet:
(Arch Linux system, running linux-2.19.3 and systemd v219)
==> /etc/systemd/network/10-bond0.netdev <==
==> /etc/systemd/network/20-eno1.network <==
==> /etc/systemd/network/21-wlp2s0.network <==
==> /etc/systemd/network/32-dhcp.network <==
==> /etc/modprobe.d/bonding.conf <==
options bonding mode=active-backup
options bonding primary=eno1
options bonding miimon=1000
options bonding updelay=2000
options bonding downdelay=8000
--- journalctl -b | grep networkd ---
Mar 29 10:43:15 e5550 systemd-networkd: bond0 : netdev ready
Mar 29 10:43:15 e5550 systemd-networkd: Enumeration completed
Mar 29 10:43:15 e5550 systemd-networkd: wlp2s0 : wlp2s0 : could not join netdev: Operation not permitted
Mar 29 10:43:15 e5550 systemd-networkd: wlp2s0 : failed
Mar 29 10:43:15 e5550 systemd-networkd: eno1 : link configured
Mar 29 10:43:18 e5550 systemd-networkd: eno1 : gained carrier
Mar 29 10:43:18 e5550 systemd-networkd: wlp2s0 : gained carrier
Mar 29 10:43:19 e5550 systemd-networkd: bond0 : gained carrier
Mar 29 10:43:19 e5550 systemd-networkd: bond0 : DHCPv4 address 192.168.0.54/24 via 192.168.0.2
Mar 29 10:43:19 e5550 systemd-networkd: bond0 : link configured
As reported earlier, an orderly restart of the networking daemon clears the problem
# ip link set eno1 down
# ip link set wlp2s0 down
# systemctl restart systemd-networkd
(And now we are golden)
Here is a hack workaround which might prove a clue as to the root cause.
If I force wpa_supplicant to come up after systemd-networkd, e.g.
$ cat /etc/systemd/system/wpa_supplicant\@wlp2s0.service.d/customdependency.conf
I can get the wireless interface to come up fairly reliably with every reboot.
My eventual goal is to stack a bridge device on top of bond0,
but I cannot get this to work no matter what.
I think the root cause of this race condition is what is blocking me.
More background info re. wpa_supplicant:
(I am using service file from wpa_supplicant upstream, attached)
$ pacman -Q wpa_supplicant
$ sudo systemctl status wpa_supplicant@wlp2s0
● email@example.com - WPA supplicant daemon (interface-specific version)
Loaded: loaded (/usr/lib/systemd/system/wpa_supplicant@.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2015-04-14 09:04:08 PDT; 19min ago
Main PID: 399 (wpa_supplicant)
└─399 /usr/bin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-wlp2s0.conf -iwlp2s0
Created attachment 115070 [details]
wpa_supplicant service file (From upstream)
Corrected workaround: (Note added Requires= stanza)
$ cat wpa_supplicant\@wlp2s0.service.d/customdependency.conf
Do you still have this issue with recent release of systemd? If so, could you provide the recent debugging logs. Thank you.