RTL8822BU and RTL8821CU USB drivers

Hello,

I have some RTL8822BU and RTL8821CU USB devices that want to use with OpenWRT, but I can not find the way to get they working.

I try to install kmod-rtl8xxxu package, but it doesn't work.

Anyone know how could I get them working?

I will appreciate your help.

Kind regards.

1 Like

By replacing them with something that isn't made by Realtek.

Thanks for the reply, but I have thoose devie, so I don't want to buy others.

Could be possible to make a pull request about this repo?

It will be great to get this driver in all images.

Regards.

yeah that's not very likely ....

there's a reason why RTL wireless is a no go zone ....

Hi,

which is the reason?

Best regards.

All current out-of-tree Realtek drivers suffer from deadlock when deleting the interface with iw dev wlan0 del.


And this is exactly what OpenWrt does during AP configuration.

Either the driver or mac80211.sh OpenWrt script should be patched.

These are (unsurprisingly) bugs in the realtek wireless drivers and need to be fixed there, chances that OpenWrt will be changed to workaround driver bugs (especially for drivers that aren't even used in any supported devices) are minimal.

1 Like

There is an ongoing effort to bring rtl882bu and rtl8821cu (and other rtl chipsets) into the Linux kernel. See here:

Since OpenWRT is based on the Linux kernel, all you will need to do is to wait until kernel 6.2 (or something) has reached OpenWRT (or to help porting the 6.2 kernel to OpenWRT). From what I can hear, these in-kernel drivers may still need a little refinement though. They are also mainly pushed forward by volunteers. Any help is welcome, as (to my knowledge) Realtek has refrained from doing so. Unfortunately, Realtek is not one of these companies that at present time upstream their wifi drivers to the linux kernel. I own a 88x2bu, but next time I buy a device, I will take care to choose one that is supported in-kernel.

1 Like

For now, your best bet would be to install an out of kernel driver. You will not be able to use OpenWRT with them, but these out of kernel drivers may be enough, if your use case is that of a simple wifi client. Sometimes they even support accesspoint (AP) mode or monitor mode.

Out of kernel drivers that are installed via dkms (these drivers need to be upgraded/removed before any attempt to upgrade to a newer kernel):

1 Like

As I mentioned above, these drivers hang upon deleting the interface, which OpenWrt does internally. It works if you patch mac80211.sh, but that's not a solution for everyone.

Unfortunately, at least with rtl8821cu, rtw88 does not work properly for 2.4 GHz. It either selects incorrect antenna or does not enable power amplifier properly, at least for me. I already contacted the authors.

Backported drivers are available here: https://github.com/lwfinger/rtw88

2 Likes

This has been fixed in rtw88. The backported drivers now also include these commits.
Tested with RTL8811cu, works fine.

2 Likes

I have a Ugreen AC650 11ac "Dual-Band Wireless USB Adapter", Model is CM448, P/N is 20204, box says "linux compatible". It sure was cheap, but alas, it's a Realtek chip - yes, I wish it weren't so, but nowhere on the box or the online ad was this stinker of a chip brand divulged.

I got this USB dongle working on my linux laptop (LMDE 5, kernel 5.10), by doing a dkms hand-compile of the kernel module "8821cu", as explained here. I can successfully "sudo modprobe 8821cu". A new wifi device appears when listing them, with "ifconfig". That much worked!

As to attaching it to my router - a Raspberry Pi 4B - I'm on OpenWRT 22.03.5, and I installed the "kmod-rtw88" package.

dmesg shows this dongle:

[  423.224675] usb 1-1.1: New USB device found, idVendor=0bda, idProduct=c811, bcdDevice= 2.00
[  423.233038] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  423.240375] usb 1-1.1: Product: 802.11ac NIC
[  423.244698] usb 1-1.1: Manufacturer: Realtek
[  423.249003] usb 1-1.1: SerialNumber: 123456

And yes, some modules loaded:

root@router:~# lsmod|grep rtw88
cfg80211              307200  3 rtw88_core,mac80211,brcmfmac
compat                 12288  6 rtw88_8822ce,rtw88_8822be,rtw88_8723de,mac80211,brcmfmac,cfg80211
mac80211              532480  2 rtw88_pci,rtw88_core
rtw88_8723d            40960  1 rtw88_8723de
rtw88_8723de           12288  0 
rtw88_8822b           212992  1 rtw88_8822be
rtw88_8822be           12288  0 
rtw88_8822c           454656  1 rtw88_8822ce
rtw88_8822ce           12288  0 
rtw88_core            106496  4 rtw88_8822c,rtw88_8822b,rtw88_8723d,rtw88_pci
rtw88_pci              24576  3 rtw88_8822ce,rtw88_8822be,rtw88_8723de

...but in the web GUI, I don't see another wireless device under "Network" -> "Wireless", or as shown with "ifconfig", there's nothing like wlan0 or wlan1 corresponding to it.

You need to compile this newest driver: https://github.com/lwfinger/rtw88
Kernel 5.10 in OpenWrt 22.03 does not include all the updated code needed for this dongle to work.

1 Like

I have a spare MicroSD card. What if I installed OpenWRT 23.05.0-rc4? Would the newer kernel it includes have what this rtw88 module wants?

I appreciate your link, but I've never hand-compiled kernel modules on OpenWRT - it's not mentioned on that Github page, in its listed distros (where build instructions, and distro-specific build package dependencies are given).

openwrt-23.05 comes with kernel v5.15 and v6.1 based wireless drivers, technically rtw88 is packaged there (rtw89 is not, yet), but I doubt it has gotten much testing - Realtek/ Realsil are 'improving' their linux support with rtw88/ rtw89, but that's coming from a very low (underground) bar…

2 Likes

It probably would be detected, but I doubt it will work stable. You really should compile lwfinger/rtw88. I have a makefile somewhere, I can make a github actions builder if that helps.

They either hired lwfinger or at least are helping them to build better driver and mainline it. The driver is not bug-free but it works, much better than the older drivers used to be.

1 Like

I'll gladly take you up on your offer.

BTW: I looked over several wifi dongles of recognizable brands that are for sale on the market here, and I would have almost certainly gotten a Realtek of some sort, no matter where I turned. I could find nothing but Realteks. And it's very rarely specified up front - one must go searching to track down which chip is inside.

this is why https://github.com/morrownr/USB-WiFi exists, but if the products aren't available in your country ...

3 Likes