-
Notifications
You must be signed in to change notification settings - Fork 116
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stopped working with NetworkManager since kernel 4.4.74 #30
Comments
I discovered some more clues: it seems to be related to the driver's "Mode" which is always on "Auto" at the beginning. This seems to disturb NetworkManager. When running wpa_supplicant, it will somehow switch the mode to "Managed" internally. I tried setting the mode to "Managed" manually but "iwconfig ra0 mode Managed" doesn't switch it. Then I patched the code to lie about the mode in giwmode:
At this point, the following makes networkmanager work:
At this state the connection works. |
I suspect that there are three potential bugs involved:
|
Okay, first I tried to write a udev rule to automatically run ifconfig ra0 up and restart network managed, but it didn't work at boot time. Then I noticed in the network manager log that when it starts it does find ra0 but fails with "error 100 getting card mode". I have the feeling that since Kernel 4.4.75+ something has changed in the order how network device APIs are called. Here is the fix that works for me: return "Managed" even if the "network is down":
This patch applied onto master makes the wifi stick work correctly for me. |
and I narrowed it down and removed the second hack. So this is the minimal patch required to make the wifi stick work again for me:
@chenhaiq if interested I can submit this as PR, if the approach is valid. |
Please submit it as PR |
See more detailed report here: https://bugzilla.suse.com/show_bug.cgi?id=1050959
Basically the driver stopped working with NetworkManager since kernel 4.4.75.
It still works if I boot kernel 4.4.62.
And also wpa_supplicant itself works, and if wpa_supplicant runs before NetworkManager is started, then NetworkManager works too. It seems that the driver/device needs to be set into a specific state for NetworkManager to work.
Not sure if it's an issue with the driver which needs adjusting for newer kernel or just a but in NetworkManager.
This is a diff of the NetworkManager log. Left is when it fails when run alone. Right is when wpa_supplicant was running.
So maybe something wrong with the driver function that retrieves the card mode with newer kernels ?
@chenhaiq
The text was updated successfully, but these errors were encountered: