I'm running Void Linux. I have replaced wpa_supplicant
and NetworkManager
with iwd
for connecting to wifi networks and it works well.
However I'm having a rather major issue and I am at a loss - could not find any pointers or solutions online.
IWD detects all my wifi devices at boot.
However, I have a Trendnet USB Wi-Fi adapter with RTL8187 chip. If i plug it in after the iwd
service has started then it will not show up in iwctl
The interface is however initialised properly and shows up in iwconfig
This also happens after sleep (which is the main practical issue for me). Upon wakeup, the adapter is gone from iwctl devices
. To fix the problem, iwd
has to be restarted.
I don't know if these are relevant, I see in dmesg
:
ieee80211 phy0: eeprom reset timeout!
There is also a name assignement happening, presumably to maintain stable device names:
rtl8187 1-1:1.0 wlp0s[snip]u1: renamed from wlan0
What would be some pointers, to trace and isolate the issue?
Would there be a more elegant workaround than manual restart, like for example having udev
send a dbus
message to iwd
when a wifi device is plugged in?
PS: was able to see errors by launching the iwd
daemon manually:
[...]
Driver Flags: DefaultInterface
Wiphy phy5 will only use the default interface
ieee80211 ph5: eeprom reset timeout!
Error bringing interface 8 up: Connection timed out
udev interface=wlp0s[snip]u1 ifindex=8
PS: The device needs 5 seconds to initialise before iwd
starts. Then there will be no "eeprom reset timeout" error.
udevadm monitor
as an "UDEV" event (not to be confused with "KERNEL" events)? Normally udev already sends messages (via netlink rather than dbus) to programs that watch for devices, once it finishes processing rules for that device./devices/pci0000:00/[etc.]/net/wlp0s12a7u1
ieee80211 ph5: eeprom reset timeout!
comes pretty fast, by the way! I suspect that the device is too slow to initialise for iwd, but at boot it gets enough time.