1

I am trying to install my wifi card driver on RHEL 8 for the 8821CE. I am temporarily using an 88XXau for a usb wifi adapter. I've been looking for a solution for a while and came across two main git repos:

https://github.com/lwfinger/rtlwifi_new/tree/rtw88

https://github.com/tomaspinho/rtl8821ce/

the rtw88 still doesn't support the 8821CE Card as far as I can tell.

I managed to install the /tomaspinho dkms module after editing the code and following the issues section to solve compilation problems related to kernel version:

https://github.com/tomaspinho/rtl8821ce/issues?q=centos

This basically involved changing some ifdef definitions to suit the old kernel that is using recent or backported code to my knowledge.

Now I am at a point where the dkms module installed correctly and I can see the module loaded in lsmod output, but the card is still not detected and I wonder what I can do from this point forward.

Thank you in advance for your help.

lsmod:

lsmod | grep 8821

8821ce               2023424  0
cfg80211              806912  2 88XXau,8821ce

kernel:

uname -r 
4.18.0-193.1.2.el8_2.x86_64

dmesg:

dmesg | grep 8821

[    0.758821] pci_bus 0000:00: root bus resource [mem 0xfee00000-0xffffffff window]
[    3.187034] 8821ce: loading out-of-tree module taints kernel.
[    3.218784] rtl8821ce 0000:02:00.0: enabling device (0000 -> 0003)
[    3.248873] Modules linked in: crc32_pclmul(+) 8821ce(OE+) 88XXau(OE+) crc32c_intel amd_iommu_v2 gpu_sched i2c_algo_bit ttm hid_logitech_hidpp drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops cfg80211 nvme drm ghash_clmulni_intel serio_raw r8169 nvme_core rfkill realtek pinctrl_amd hid_logitech_dj dm_mirror dm_region_hash dm_log dm_mod
[    3.248981]  ? rtw_chbw_to_freq_range+0x40/0x96 [8821ce]
[    3.249021]  ? rtw_is_dfs_ch+0x34/0x70 [8821ce]
[    3.249067]  ? rtw_regd_apply_flags+0xc9/0xda [8821ce]
[    3.249113]  rtw_wiphy_register+0x1e/0x20 [8821ce]
[    3.249159]  rtw_cfg80211_ndev_res_register+0x11/0x17 [8821ce]
[    3.249203]  rtw_os_ndev_register+0xf2/0x157 [8821ce]
[    3.249248]  rtw_os_ndevs_register+0x9e/0xce [8821ce]
[    3.249292]  rtw_os_ndevs_init+0x24/0x3a [8821ce]
[    3.249334]  rtw_drv_init+0x4f/0xac [8821ce]
[    3.249389]  rtw_drv_entry+0x48/0x1000 [8821ce]
[    3.249485] WARNING: CPU: 6 PID: 528 at /var/lib/dkms/rtl8821ce/v5.5.2_34066.20200325/build/os_dep/linux/os_intfs.c:1681 rtw_os_ndev_register+0x64/0x157 [8821ce]
[    3.249485] Modules linked in: crc32_pclmul(+) 8821ce(OE+) 88XXau(OE+) crc32c_intel amd_iommu_v2 gpu_sched i2c_algo_bit ttm hid_logitech_hidpp drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops cfg80211 nvme drm ghash_clmulni_intel serio_raw r8169 nvme_core rfkill realtek pinctrl_amd hid_logitech_dj dm_mirror dm_region_hash dm_log dm_mod
[    3.249537] RIP: 0010:rtw_os_ndev_register+0x64/0x157 [8821ce]
[    3.249589]  rtw_os_ndevs_register+0x9e/0xce [8821ce]
[    3.249632]  rtw_os_ndevs_init+0x24/0x3a [8821ce]
[    3.249675]  rtw_drv_init+0x4f/0xac [8821ce]
[    3.249722]  rtw_drv_entry+0x48/0x1000 [8821ce]
[    3.258088] WARNING: CPU: 6 PID: 528 at /var/lib/dkms/rtl8821ce/v5.5.2_34066.20200325/build/os_dep/linux/os_intfs.c:3141 rtw_os_ndevs_register+0xa6/0xce [8821ce]
[    3.258090] Modules linked in: crct10dif_pclmul(+) crc32_pclmul 8821ce(OE+) 88XXau(OE+) crc32c_intel amd_iommu_v2 gpu_sched i2c_algo_bit ttm hid_logitech_hidpp drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops cfg80211 nvme drm ghash_clmulni_intel serio_raw r8169 nvme_core rfkill realtek pinctrl_amd hid_logitech_dj dm_mirror dm_region_hash dm_log dm_mod
[    3.258154] RIP: 0010:rtw_os_ndevs_register+0xa6/0xce [8821ce]
[    3.258215]  rtw_os_ndevs_init+0x24/0x3a [8821ce]
[    3.258262]  rtw_drv_init+0x4f/0xac [8821ce]
[    3.258319]  rtw_drv_entry+0x48/0x1000 [8821ce]
[   10.280025] Bluetooth: hci0: rtl: examining hci_ver=08 hci_rev=000c lmp_ver=08 lmp_subver=8821
[   10.280028] Bluetooth: hci0: rtl: loading rtl_bt/rtl8821c_config.bin
[   10.283364] Bluetooth: hci0: rtl: loading rtl_bt/rtl8821c_fw.bin
[   21.489998]  dm_crypt amdgpu crct10dif_pclmul crc32_pclmul 8821ce(OE) 88XXau(OE) crc32c_intel amd_iommu_v2 gpu_sched i2c_algo_bit ttm hid_logitech_hidpp drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops cfg80211 nvme drm ghash_clmulni_intel serio_raw r8169 nvme_core rfkill realtek pinctrl_amd hid_logitech_dj dm_mirror dm_region_hash dm_log dm_mod

ifconfig(wlp4s0f3u2 is my usb wifi adapter):

ifconfig -a

eno1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether f8:b4:6a:b5:fb:23  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 6454  bytes 443527 (433.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6454  bytes 443527 (433.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:74:aa:45  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0-nic: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 52:54:00:74:aa:45  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp4s0f3u2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 2312
        inet 192.168.2.22  netmask 255.255.255.0  broadcast 192.168.2.255
        inet6 fe80::e1d3:1071:71d9:6b63  prefixlen 64  scopeid 0x20<link>
.....

I can see the card with this command, but I am not sure if it is due to the driver or not:

lshw -C network

  *-network UNCLAIMED       
       description: Network controller
       product: RTL8821CE 802.11ac PCIe Wireless Network Adapter
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:02:00.0
       version: 00
       width: 64 bits
       clock: 33MHz
       capabilities: cap_list
       configuration: latency=0
       resources: ioport:f000(size=256) memory:fe900000-fe90ffff

Update Since I am trying different drivers, I am blacklisting them at /etc/modprob.d to make sure only one loads at a time, please let me know if this is enough

I opened an issue at rtw88(https://github.com/lwfinger/rtlwifi_new/issues/608), they confirm the firmware was missing and added that to the repo, but this created an new issue:

[   12.378158] rtw_8821ce 0000:02:00.0: Firmware version 24.5.0, H2C version 12
[   12.404834] rtw_8821ce 0000:02:00.0: rfe 2 isn't supported
[   12.404937] rtw_8821ce 0000:02:00.0: failed to setup chip efuse info
[   12.404939] rtw_8821ce 0000:02:00.0: failed to setup chip information

Update 2 This has been resolved with rtw88 driver by lwfinger after his updates to the code base. the driver works as intended now for the 8821ce!

  • Just a guess: Do you have firmware file for rtl8821ce in /lib/firmware/... ? – Jan Jun 8 at 18:52
  • By a quick look through the code, the rfe 2 isn't supported message means something like "the necessary definitions for using this particular model/type of card are not available to the driver". Perhaps something else besides the firmware needs to be added. I see you added the new error messages to the issue tracker: it's probably best to wait for the developer's response. – telcoM Jun 9 at 8:22
  • @Jan I am not sure about the tomaspinho driver, but it is not throwing any errors in dmesg. for the rtw88 the devs did upload the firmware and I rebuilt the driver, but I got a different error(see edit). – Iqbal AISSAOUI Jun 9 at 14:00
  • @telcoM thanks for the input, I'll be waiting for an update from the rtw88 devs. The tomaspinho seemed promissing as someone managed to get to work it seems on Centos 8 from the issues listed and it doesn't throw any errors which leads me to think it might work for me as well – Iqbal AISSAOUI Jun 9 at 14:00
0

If your system has ANY conflicting drivers installed, you must blacklist them as well. This will include drivers such as rtw88_xxxx.

Also try using kernel module from following repo.

https://github.com/brektrou/rtl8821CU

Just edit Makefile as shown below to build rtl8821ce module

CONFIG_USB_HCI = n
CONFIG_PCI_HCI = y
| improve this answer | |
  • You do realize it is a rtl8821ce and not a cu? are they "sister" cards? Just making sure so I don't do anything stupid :) – Iqbal AISSAOUI Jun 8 at 22:04
  • This cards are only differs with an interface: rtl8821ce - pci-e rtl8821cu - usb-2.0 To build module called rtl8821ce - edit Makefile as I mentioned. Proof: github.com/brektrou/rtl8821CU/blob/master/rtl8821c.mk – anex5 Jun 8 at 22:28
  • Thanks a lot for clarifying! I tried to install this one but it fails to build : make[2]: *** No rule to make target '/var/lib/dkms/rtl8821CU/5.4.1/build/os_dep/linux/pci_intf.o', needed by '/var/lib/dkms/rtl8821CU/5.4.1/build/8821ce.o'. Stop. – Iqbal AISSAOUI Jun 8 at 22:59
  • about conflict concerns, I am trying to install either one but I am using /etc/modprobe.d/blacklist.conf to blacklist them. they still show up as installed in 'dkms status' but they are not loaded if I check via lsmod – Iqbal AISSAOUI Jun 8 at 23:05
  • It seems github.com/brektrou/rtl8821CU lacks of pci-e stuff, so forget about it. BTW what laptop are you using? – anex5 Jun 9 at 13:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.