-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Poor wireless performance on 4.9.* kernels #1866
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
Comments
@MrEngman |
Hi @popcornmix , Sorry, I haven't used the RTL8192cu wifi with 4.9 so can't say. However, I have notice some odd behaviour using out of tree 8812au or 8192eu wifi and various 4.9.xx kernels. With the 8812au driver using a 5GB AP running iperf and 4.4 kernels I get transfer rates of around 95MBits/s but sometimes using kernel 4.9 I am seeing less than half this rate, around 42MBits/s. Powering off the Pi and disconnecting the PSU then re-applying power and rebooting and then iperf may give the 95MBits/s transfer rate, but not always. I'm fairly certain iwconfig shows the same parameters regardless of the transfer rate being achieved, especially the bit rate of 434Mb/s. Could be a similar issue with the 8192cu I suppose. I'll try one and see what happens. |
@popcornmix I've given up on trying to test the 8192cu wifi using Edimax EW-7811Un. Tried on a 2B and 3B (with inbuilt wifi disable) and even just trying to connect to the AP is almost impossible and my Pi's are within a metre or two from the AP. Both Pi's using kernel 4.9.13-v7+ #972 Noticed the driver has been changed so I think you need to revert to the previous one. I'll have a look at trying that myself but not sure when I'll be able to. |
Looks like there is a problem with the kernel compile causing an issue with the 8192cu wifi. Doing a search through the modules directory there is the file I deleted the rtlwifi files and the Pi 2B is now working with the 8192cu wifi. So looks like there is an issue with configuring the kernel drivers to be compiled and a conflict between drivers seems to be causing the problems I had with the 8192cu wifi. Before deleting the rtlwifi files lsmod shows
After deleting the rtlwifi files shown above lsmod shows
and the wifi is now working. Just deleted the rtlwifi files on the Pi 3B and that appears to be OK now as well. NOTE: actually deleted the whole rtlwifi directory but I think it proves the point that there was a conflict between drivers or the rtlwifi driver doesn't work. |
I just happened to notice this while browsing the web. I just want to make sure I'm innocent here and I didn't break anything. I did submit a small change which added a header to the downstream only version to include a missing header on arm64. If it did break anything through, it should have only broken IPv6 which in my part of the world(US) isn't used much. But based on the description, it sounds like the upstream version is being picked up and that is what's broken. I'm looking at the logs, and the upstream version still appears to be under fairly active development, so it wouldn't surprise me if it broke. As long as I'm innocent, I'll leave this to the experts. |
Both drivers are built by default in the Kconfig, one needs to be blacklisted by default. That being said, I was unable to get realtek/rtlwifi/rtl8192cu to work. Driver loads without error, however with an EDImax 7811un it would not connect to my access point. The driver 8192cu works mostly fine, |
Taken another look at the 8192cu wifi driver issue and there are two 8192cu drivers in the 4.9.xx kernel. Checked all the 4.9 kernels available via rpi-update (with and without BRANCH=next) and all are affected. The two drivers are Trying to run an 8192cu wifi adapter on a Pi 3B (with inbuilt wifi disabled) without making any alterations to the modules and I found it pretty much impossible to even get a connection to my AP. I then tried by removing one or other of the drivers. Initially I removed file Using realtek/rtlwifi/rtl8192cu/rtl8192cu.ko driver.
I then restored the Performance is consistent and connectivity using SSH looks reliable, unlike the rtlwifi rtl8192cu driver. Using ./realtek/rtl8192cu/8192cu.ko driver
For whatever reason the rtlwifi rtl8192cu driver has been enable in kernel 4.9. Compiling this driver should be disabled as in kernels 4.4 and earlier. The rtlwifi driver was not compiled into the kernel in 4.4 and earlier kernels. |
Check out this thread #1525 for discussion. |
@popcornmix I don't think so. Will add it in a bit if it's not there. Sorry, I seem to have missed the pings from last year. |
@Rakhisharma
and reboot. That should blacklist the upstream module. This should become a default setting in the near future. |
@popcornmix is that the only module that needs to be blacklisted? |
There is a third option that I have been using for this chipset: "rtl8xxxu", but that the module is not currently built. You might want to blacklist it anyway. |
@clivem did also suggest adding |
This change is in the apt repo now. RPi-Distro/raspberrypi-sys-mods@5c0adce |
Thank you for the quick response. Adding the blacklist resolved the issue. |
Also stumbled upon this today after upgrading the kernel from 4.4 to 4.9, I've solved it by installing raspberrypi-sys-mods which also installs the blacklist (amongst other things). |
Currently the raspberry pi kernel builds both the out of tree 8192cu kernel module and the in-tree rtl8192cu kernel module. We are shipping both drivers in our OS and this has the effect of the Realtek Adapter 8192cu to not work at all. So we need to blacklist one of these modules to make this wifi adapter work. Considering the comments on the raspberrypi official repository, raspberrypi/linux#1866 we will blacklist the upstream driver and stick with the out of tree module which seems to yield better performance. Signed-off-by: Florin Sarbu <[email protected]>
Currently the raspberry pi kernel builds both the out of tree 8192cu kernel module and the in-tree rtl8192cu kernel module. We are shipping both drivers in our OS and this has the effect of the Realtek Adapter 8192cu to not work at all. So we need to blacklist one of these modules to make this wifi adapter work. Considering the comments on the raspberrypi official repository, raspberrypi/linux#1866 we will blacklist the upstream driver and stick with the out of tree module which seems to yield better performance. Signed-off-by: Florin Sarbu <[email protected]>
Currently the raspberry pi kernel builds both the out of tree 8192cu kernel module and the in-tree rtl8192cu kernel module. We are shipping both drivers in our OS and this has the effect of the Realtek Adapter 8192cu to not work at all. So we need to blacklist one of these modules to make this wifi adapter work. Considering the comments on the raspberrypi official repository, raspberrypi/linux#1866 we will blacklist the upstream driver and stick with the out of tree module which seems to yield better performance. Signed-off-by: Florin Sarbu <[email protected]>
We will only have the out of tree module which allegedly is more stable: raspberrypi/linux#1866 The configs for disabling it were added but apparently they were never applied. Change-type: patch Changelog-entry: Disable in-tree rtl8192cu driver Signed-off-by: Florin Sarbu <[email protected]>
Raspberry pi zero was working fine with 4.4.38 kernel. Upgraded to 4.9.13 and observed very poor wireless performance using RTL8192CU wireless adapter.
With 4.9.13 kernel:
wlan0 IEEE 802.11 ESSID:"CatHouse"
Mode:Managed Frequency:2.422 GHz Access Point: 20:AA:4B:90:0F:BE
Bit Rate=72.2 Mb/s Tx-Power=20 dBm
Retry short limit:7 RTS thr=2347 B Fragment thr:off
Power Management:off
Link Quality=45/70 Signal level=-65 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:45 Missed beacon:0
With 4.4.38 kernel:
wlan0 IEEE 802.11bgn ESSID:"CatHouse" Nickname:"WIFI@REALTEK"
Mode:Managed Frequency:2.422 GHz Access Point: 20:AA:4B:90:0F:BE
Bit Rate:144.4 Mb/s Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Power Management:off
Link Quality=100/100 Signal level=58/100 Noise level=0/100
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Problem also exists on 4.9.11 on Raspberry pi 2.
Problem resolved by downgrading back to 4.4.38 or to any 4.4.x level.
The text was updated successfully, but these errors were encountered: