0

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.

3
  • 1
    Does the 'net/wlp0...' device appear in 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.
    – grawity
    Commented 21 hours ago
  • @grawity it does trigger several UDEV events. If I look at (net) devices only, there is a kernel add for wlan0, then kernel move, udev add and the final event is a udev move with a path that looks like: /devices/pci0000:00/[etc.]/net/wlp0s12a7u1
    – Rolf
    Commented 21 hours ago
  • The 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.
    – Rolf
    Commented 20 hours ago

1 Answer 1

0

I think I found the error message in the rtl8187 driver source code in the rtl8187_cmd_reset function.

It appears that iwd triggers this function as soon as it detects this adapter.

However if this happens shortly after the adapter is initialized then the function fails with the eeprom reset timeout error.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.