kimocoder / rtw88-usb

8723d 8821c 8822bu 8812bu 8822cu 8812cu linux mac80211 driver
http://www.aircrack-ng.org
GNU General Public License v2.0
45 stars 7 forks source link

rtl8822bu: high latency, "failed to wait usb ctrl" errors #5

Open spectrumjade opened 3 years ago

spectrumjade commented 3 years ago

I'm running into an issue trying to use this driver with my 8822bu USB dongle. After loading the module and plugging in the dongle, it is successfully recognized, an interface shows up, and I am able to scan for and join networks. However it has very high packet latency and correspondingly low throughput. For example:

$ ping 172.16.1.1
PING 172.16.1.1 (172.16.1.1) 56(84) bytes of data.
64 bytes from 172.16.1.1: icmp_seq=1 ttl=64 time=2063 ms
64 bytes from 172.16.1.1: icmp_seq=2 ttl=64 time=2118 ms
64 bytes from 172.16.1.1: icmp_seq=3 ttl=64 time=2381 ms

This is with an access point that is a few feet away, and I would expect to see latency under 1 ms.

Looking in the kernel log, I can see a lot of failure messages. Here's a snippet:

[38973.221372] usbcore: registered new interface driver rtw_8822bu
[38985.694888] usb 1-2: new high-speed USB device number 4 using xhci_hcd
[38986.052877] usb 1-2: New USB device found, idVendor=0bda, idProduct=b812, bcdDevice= 2.10
[38986.052879] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[38986.052880] usb 1-2: Product: USB3.0 802.11ac 1200M Adapter
[38986.052881] usb 1-2: Manufacturer: Realtek
[38986.052881] usb 1-2: SerialNumber: 123456
[38986.058034] rtw_8822bu 1-2:1.0: USB: 2
[38986.058091] rtw_8822bu 1-2:1.0: firmware: direct-loading firmware rtw88/rtw8822b_fw.bin
[38986.058093] rtw_8822bu 1-2:1.0: Firmware version 27.2.0, H2C version 13
[38987.099372] rtw_8822bu 1-2:1.0: use rfe_def[3]
[38988.260105] rtw_8822bu 1-2:1.0: failed to wait usb ctrl req:64
[38989.251323] rtw_8822bu 1-2:1.0: start vif bc:ec:23:c3:5c:d6 on port 0
[38989.312292] rtw_8822bu 1-2:1.0: stop vif bc:ec:23:c3:5c:d6 on port 0
[38991.302133] rtw_8822bu 1-2:1.0: start vif 4a:0e:6c:6e:cf:e9 on port 0
[38994.131871] rtw_8822bu 1-2:1.0: failed to wait usb ctrl req:192
[38994.162061] rtw_8822bu 1-2:1.0: failed to wait usb ctrl req:192
[38994.192599] rtw_8822bu 1-2:1.0: failed to wait usb ctrl req:192
[38994.223012] rtw_8822bu 1-2:1.0: failed to wait usb ctrl req:64
[38994.253239] rtw_8822bu 1-2:1.0: failed to wait usb ctrl req:64
[38994.283422] rtw_8822bu 1-2:1.0: failed to wait usb ctrl req:192
[38994.313841] rtw_8822bu 1-2:1.0: failed to wait usb ctrl req:192
[38994.449329] rtw_8822bu 1-2:1.0: failed to wait usb ctrl req:192
[38994.479484] rtw_8822bu 1-2:1.0: failed to wait usb ctrl req:192
[39002.466902] rtw_8822bu 1-2:1.0: failed to wait usb ctrl req:64
[39002.497113] rtw_8822bu 1-2:1.0: failed to wait usb ctrl req:64
[39002.527281] rtw_8822bu 1-2:1.0: failed to wait usb ctrl req:64
[39002.557467] rtw_8822bu 1-2:1.0: failed to wait usb ctrl req:64
[39002.587621] rtw_8822bu 1-2:1.0: failed to wait usb ctrl req:64

These messages repeat until I unplug the dongle or unload the driver. I've noticed that the number is always either 64 or 192. Unfortunately I'm a bit out of my depth here and am not sure how to continue debugging. Any thoughts? This dongle does work using the separate 88x2bu driver, so I don't think the hardware is broken.

I'm running kernel version 5.10.

creeper123123321 commented 2 years ago

increasing RTW_USB_CONTROL_MSG_TIMEOUT to higher value seems to stop failed to wait usb ctrl req for me with 8821cu i forgot to disable rtl8821cu driver... and increasing timeout seems to cause some kernel lags i can also reproduce failed to wait usb ctrl req on 8821cu

[  194.160770] rtw_8821cu 1-1:1.0: USB: 2
[  194.161664] rtw_8821cu 1-1:1.0: Firmware version 24.8.0, H2C version 12
[  194.372406] usbcore: registered new interface driver rtw_8821cu
[  194.382450] rtw_8821cu 1-1:1.0 wlxa0d7684041e3: renamed from wlan0
[  195.320353] rtw_8821cu 1-1:1.0: start vif [mac address] on port 0
[  201.438127] rtw_8821cu 1-1:1.0: failed to wait usb ctrl req:192
[  204.929741] wlxa0d7684041e3: authenticate with [mac address]
[  205.052252] rtw_8821cu 1-1:1.0: error beacon valid
[  205.052562] rtw_8821cu 1-1:1.0: failed to download rsvd page
[  205.052971] rtw_8821cu 1-1:1.0: failed to download firmware
[  205.056537] rtw_8821cu 1-1:1.0: leave idle state failed
[  205.062830] rtw_8821cu 1-1:1.0: failed to leave ips state
[  205.062832] rtw_8821cu 1-1:1.0: failed to leave idle state
[  213.083458] rtw_8821cu 1-1:1.0: failed to wait usb ctrl req:192
[  220.679439] rtw_8821cu 1-1:1.0: failed to wait usb ctrl req:192
[  226.052124] rtw_8821cu 1-1:1.0: failed to wait usb ctrl req:192
[  231.079881] rtw_8821cu 1-1:1.0: failed to wait usb ctrl req:192