Install drivers for rtl8821ce network chipset on fedora 30

I everyone !
I passed a new labtop under fedora, and realised that the Realtek RTL8821CE chipset hasn’t any official drivers for fedora. I tried the installation via tomas pinho git code, but hasn’t managed to make it work. Has anyone an idea to help a poor little rookie like me ?
Here the bash instructions I used :

git clone https://github.com/tomaspinho/rtl8821ce
cd rtl8821ce
chmod +x dkms-install.sh
chmod +x dkms-remove.sh
sudo ./dkms-remove.sh
sudo ./dkms-install.sh

Thanks for your help, in any case :wink:

1 Like

Welcome to Ask Fedora, @kingof13!

Possibly you need to find and install firmware for that chipset, too. Since there is no driver, the necessary firmware may not be in place, either.

@kingof13, rookie question here: have you installed any build dependencies? You don’t mention if you did.

From the cursory look at github page you’ll need at least

sudo dnf install dkms kernel-devel

and maybe something else – prior to running

sudo ./dkms-install.sh

I ran those lines before :
sudo dnf install -y make git kernel-headers kernel-devel elfutils-libelf-devel
sudo dnf install -y dkms

1 Like

Thank you ! I didn’t found any mention of that kind of firmware on the Internet, if you have a site or some key word for me to dig deeper, you’re welcome :wink:

Hi,

I’ve successfully installed the drivers following the instructions after installing the packages suggested by nightromantic. Unfortunately I don’t have RTL8821CE to testing, but if I did I would assume a reboot would bring it online.

Any errors after running:

Also whats the output of:

lsusb

Thanks Tom.

2 Likes

output of lsusb :
Bus 001 Device 004: ID 0bda:b00a Realtek Semiconductor Corp.
Bus 001 Device 003: ID 0408:5321 Quanta Computer, Inc.
Bus 001 Device 002: ID 0438:7900 Advanced Micro Devices, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

dkms-install produced this output : [EDITED]
About to run dkms install steps…

Creating symlink /var/lib/dkms/rtl8821ce/v5.5.2_34066.20190614/source ->
/usr/src/rtl8821ce-v5.5.2_34066.20190614

DKMS: add completed.

Kernel preparation unnecessary for this kernel. Skipping…

Building module:
cleaning build area…
‘make’ -j4 KVER=5.2.18-200.fc30.x86_64…
cleaning build area…

DKMS: build completed.

8821ce.ko.xz:
Running module version sanity check.

Good news! Module version v5.5.2_34066.20190614_COEX20180712-3232 for 8821ce.ko.xz
exactly matches what is already found in kernel 5.2.18-200.fc30.x86_64.
DKMS will not replace this module.
You may override by specifying --force.
Adding any weak-modules

depmod…

DKMS: install completed.

Hi,

Looks like a reboot should get it up and going.

Sorry I think misread your first post, chipset would imply that the wifi is in built; if that is the case whats the out put of:

lspci

Thanks Tom.

P.S

Also whats the output of:

sudo modprobe 8821ce

This is the output of lspci :
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) Processor Root Complex
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) I/O Memory Management Unit
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Stoney [Radeon R2/R3/R4/R5 Graphics] (rev da)
00:01.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device 15b3
00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) Host Bridge
00:02.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) Processor Root Port
00:02.4 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) Processor Root Port
00:02.5 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) Processor Root Port
00:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) Host Bridge
00:08.0 Encryption controller: Advanced Micro Devices, Inc. [AMD] Carrizo Platform Security Processor
00:09.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Carrizo Audio Dummy Host Bridge
00:09.2 Audio device: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) Audio Controller
00:10.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB XHCI Controller (rev 20)
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 4b)
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB EHCI Controller (rev 49)
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 4b)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 11)
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Stoney HT Configuration
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Stoney Address Maps
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Stoney DRAM Configuration
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Stoney Miscellaneous Configuration
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Stoney PM Configuration
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Stoney NB Performance Monitor
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8821CE 802.11ac PCIe Wireless Network Adapter
And yes the chipset is in built

Hi,

Sorry but this was a late edit to my previous post, but whats the output of:

sudo modprobe 8821ce

Thanks Tom.

this : modprobe: ERROR: could not insert ‘8821ce’: Operation not permitted

Hi,

Check your bios and make sure secure boot is disabled. More info can be found here:

https://www.linuxquestions.org/questions/linux-networking-3/wireless-not-working-4175650418/#post5976302

Thanks Tom.

2 Likes

I’m trying that, I’ll keep you updated

Thank you all guys, indeed I didn’t disabled the secure boot option ! Once again thanks a lot for all of your answers, you’re so quick and responsive :smiley:
Now, back to work :stuck_out_tongue_winking_eye:

3 Likes

@kingof13: in short – it looks like you’ve built the kernel module successfully from the beginning – i.e. before asking the question. But secure boot prevented this newly-built module form loading as it is not properly signed.

It’s a known and expected behavior, it’s the same with any kernel modules you build yourself locally (widely encountered examples are modules for WiFi, proprietary NVidia driver, VirtualBox). You can also sign such modules locally with your own key – and then they will work with secure boot enabled. I know it’s possible, though it requires some initial setup – and I’ve never done it myself.

Helpful commands to diagnose things in a case like yours are:

sudo modprobe <name_of_you_kernel_module>

– as @tjdoyle pointed out above. This commands loads kernel module in question and can/should report any errors – as it actually did in you case.

modinfo <name_of_you_kernel_module>

– will show some information about kernel module, will say “ERROR: Module <…> not found” if it can’t find the module – if it wasn’t build successfully by dkms for example.

dmesg | grep <name_of_you_kernel_module>

would give you kernel’s report about loading the module in question. This can contain some useful info in case of loading successfully and reports for any errors. You can run this command either after manually issuing sudo modprobe <name_of_you_kernel_module> or after rebooting your computer – as kernel tries to load new module on boot.

@kingof13, as you issue seems to be resolved, please mark it as such so that people with similar problem can find the solution quicker. I suggest marking @tjdoyle’s post about disabling secure boot as a solution.

2 Likes

I am using HP 14-0023TU notebook, the internal Wi-Fi adapter chipset is Realtek8821CE.
Dual boot is Windows 10 Home Edition and Fedora 30 Workstation KDE of Fedora from Spins, but Windows 10 just sleeps forever in the harddisk for I use only Fedora 30.
After upgrading from 5.2.18-200 to 5.3.5-200 yesterday, Fedora 30 could not find such Wi-Fi adapter.
So I did as follows as usual:

Secure boot = Disabled

su
sudo dnf -y upgrade
sudo dnf install -y make git kernel-headers kernel-devel elfutils-libelf-devel
sudo dnf install -y dkms
reboot
git clone https://github.com/tomaspinho/rtl8821ce
cd rtl8821ce
chmod +x dkms-install.sh
chmod +x dkms-remove.sh
sudo ./dkms-install.sh
sudo ./dkms-remove.sh
sudo ./dkms-install.sh

Fedora 30 still does not find such Wi-Fi adapter.

The results of 3 important commands are as follows:

> [fedora002@localhost ~]$ su
> Password: 
> [root@localhost fedora002]# sudo modprobe 8821ce
> [root@localhost fedora002]# modinfo 8821ce
> filename:       /lib/modules/5.3.5-200.fc30.x86_64/extra/8821ce.ko.xz
> version:        v5.2.5_1.26055.20180108.1
> author:         Realtek Semiconductor Corp.
> description:    Realtek Wireless Lan Driver
> license:        GPL
> srcversion:     15B5DFB90A28F3702BCEB84
> alias:          pci:v000010ECd0000C82Bsv*sd*bc*sc*i*
> alias:          pci:v000010ECd0000C82Asv*sd*bc*sc*i*
> alias:          pci:v000010ECd0000C821sv*sd*bc*sc*i*
> depends:        cfg80211
> retpoline:      Y
> name:           8821ce
> vermagic:       5.3.5-200.fc30.x86_64 SMP mod_unload 
> parm:           rtw_ips_mode:The default IPS mode (int)
> parm:           rtw_lps_level:The default LPS level (int)
> parm:           rtw_usb_rxagg_mode:int
> parm:           rtw_dynamic_agg_enable:int
> parm:           rtw_drv_log_level:set log level when insert driver module, default log level is _DRV_INFO_ = 4 (uint)
> parm:           rtw_tx_bw_mode:The max tx bw for 2.4G and 5G. format is the same as rtw_bw_mode (uint)
> parm:           rtw_rx_ampdu_sz_limit_1ss:RX AMPDU size limit for 1SS link of each BW, 0xFF: no limitation (array of uint)
> parm:           rtw_rx_ampdu_sz_limit_2ss:RX AMPDU size limit for 2SS link of each BW, 0xFF: no limitation (array of uint)
> parm:           rtw_rx_ampdu_sz_limit_3ss:RX AMPDU size limit for 3SS link of each BW, 0xFF: no limitation (array of uint)
> parm:           rtw_rx_ampdu_sz_limit_4ss:RX AMPDU size limit for 4SS link of each BW, 0xFF: no limitation (array of uint)
> parm:           rtw_vht_enable:int
> parm:           rtw_vht_rx_mcs_map:VHT RX MCS map (uint)
> parm:           rtw_rf_config:int
> parm:           rtw_country_code:The default country code (in alpha2) (charp)
> parm:           rtw_channel_plan:The default chplan ID when rtw_alpha2 is not specified or valid (int)
> parm:           rtw_excl_chs:exclusive channel array (array of uint)
> parm:           rtw_btcoex_enable:BT co-existence on/off, 0:off, 1:on, 2:by efuse (int)
> parm:           rtw_ant_num:Antenna number setting, 0:by efuse (int)
> parm:           rtw_force_igi_lb:force IGI low-bound, 0:no specified (int)
> parm:           rtw_qos_opt_enable:int
> parm:           ifname:The default name to allocate for first interface (charp)
> parm:           if2name:The default name to allocate for second interface (charp)
> parm:           rtw_pwrtrim_enable:int
> parm:           rtw_initmac:charp
> parm:           rtw_special_rf_path:int
> parm:           rtw_chip_version:int
> parm:           rtw_rfintfs:int
> parm:           rtw_lbkmode:int
> parm:           rtw_network_mode:int
> parm:           rtw_channel:int
> parm:           rtw_mp_mode:int
> parm:           rtw_wmm_enable:int
> parm:           rtw_vrtl_carrier_sense:int
> parm:           rtw_vcs_type:int
> parm:           rtw_busy_thresh:int
> parm:           rtw_ht_enable:int
> parm:           rtw_bw_mode:int
> parm:           rtw_ampdu_enable:int
> parm:           rtw_rx_stbc:int
> parm:           rtw_rx_ampdu_amsdu:int
> parm:           rtw_tx_ampdu_amsdu:int
> parm:           rtw_lowrate_two_xmit:int
> parm:           rtw_power_mgnt:int
> parm:           rtw_smart_ps:int
> parm:           rtw_low_power:int
> parm:           rtw_wifi_spec:int
> parm:           rtw_full_ch_in_p2p_handshake:int
> parm:           rtw_antdiv_cfg:int
> parm:           rtw_antdiv_type:int
> parm:           rtw_drv_ant_band_switch:int
> parm:           rtw_single_ant_path:int
> parm:           rtw_switch_usb_mode:int
> parm:           rtw_enusbss:int
> parm:           rtw_hwpdn_mode:int
> parm:           rtw_hwpwrp_detect:int
> parm:           rtw_hw_wps_pbc:int
> parm:           rtw_check_hw_status:int
> parm:           rtw_pci_aspm_enable:int
> parm:           rtw_max_roaming_times:The max roaming times to try (uint)
> parm:           rtw_mc2u_disable:int
> parm:           rtw_80211d:Enable 802.11d mechanism (int)
> parm:           rtw_notch_filter:0:Disable, 1:Enable, 2:Enable only for P2P (uint)
> parm:           rtw_hiq_filter:0:allow all, 1:allow special, 2:deny all (uint)
> parm:           rtw_adaptivity_en:0:disable, 1:enable (uint)
> parm:           rtw_adaptivity_mode:0:normal, 1:carrier sense (uint)
> parm:           rtw_adaptivity_dml:0:disable, 1:enable (uint)
> parm:           rtw_adaptivity_dc_backoff:DC backoff for Adaptivity (uint)
> parm:           rtw_adaptivity_th_l2h_ini:th_l2h_ini for Adaptivity (int)
> parm:           rtw_adaptivity_th_edcca_hl_diff:th_edcca_hl_diff for Adaptivity (int)
> parm:           rtw_amplifier_type_2g:BIT3:2G ext-PA, BIT4:2G ext-LNA (uint)
> parm:           rtw_amplifier_type_5g:BIT6:5G ext-PA, BIT7:5G ext-LNA (uint)
> parm:           rtw_RFE_type:default init value:64 (uint)
> parm:           rtw_powertracking_type:default init value:64 (uint)
> parm:           rtw_GLNA_type:default init value:0 (uint)
> parm:           rtw_TxBBSwing_2G:default init value:0xFF (uint)
> parm:           rtw_TxBBSwing_5G:default init value:0xFF (uint)
> parm:           rtw_OffEfuseMask:default open Efuse Mask value:0 (uint)
> parm:           rtw_FileMaskEfuse:default drv Mask Efuse value:0 (uint)
> parm:           rtw_rxgain_offset_2g:default RF Gain 2G Offset value:0 (uint)
> parm:           rtw_rxgain_offset_5gl:default RF Gain 5GL Offset value:0 (uint)
> parm:           rtw_rxgain_offset_5gh:uint
> parm:           rtw_rxgain_offset_5gm:default RF Gain 5GM Offset value:0 (uint)
> parm:           rtw_pll_ref_clk_sel:force pll_ref_clk_sel, 0xF:use autoload value (uint)
> parm:           rtw_tx_pwr_by_rate:0:Disable, 1:Enable, 2: Depend on efuse (int)
> parm:           rtw_tx_pwr_lmt_enable:0:Disable, 1:Enable, 2: Depend on efuse (int)
> parm:           rtw_target_tx_pwr_2g_a:2.4G target tx power (unit:dBm) of RF path A for each rate section, should match the real calibrate power, -1: undefined (array of int)
> parm:           rtw_target_tx_pwr_2g_b:2.4G target tx power (unit:dBm) of RF path B for each rate section, should match the real calibrate power, -1: undefined (array of int)
> parm:           rtw_target_tx_pwr_2g_c:2.4G target tx power (unit:dBm) of RF path C for each rate section, should match the real calibrate power, -1: undefined (array of int)
> parm:           rtw_target_tx_pwr_2g_d:2.4G target tx power (unit:dBm) of RF path D for each rate section, should match the real calibrate power, -1: undefined (array of int)
> parm:           rtw_target_tx_pwr_5g_a:5G target tx power (unit:dBm) of RF path A for each rate section, should match the real calibrate power, -1: undefined (array of int)
> parm:           rtw_target_tx_pwr_5g_b:5G target tx power (unit:dBm) of RF path B for each rate section, should match the real calibrate power, -1: undefined (array of int)
> parm:           rtw_target_tx_pwr_5g_c:5G target tx power (unit:dBm) of RF path C for each rate section, should match the real calibrate power, -1: undefined (array of int)
> parm:           rtw_target_tx_pwr_5g_d:5G target tx power (unit:dBm) of RF path D for each rate section, should match the real calibrate power, -1: undefined (array of int)
> parm:           rtw_phy_file_path:The path of phy parameter (charp)
> parm:           rtw_load_phy_file:PHY File Bit Map (int)
> parm:           rtw_decrypt_phy_file:Enable Decrypt PHY File (int)
> parm:           rtw_en_napi:int
> parm:           rtw_en_gro:int
> [root@localhost fedora002]# dmesg | grep 8821ce
> [   15.450655] 8821ce: loading out-of-tree module taints kernel.
> [   15.452308] 8821ce: module verification failed: signature and/or required key missing - tainting kernel
> [   15.461300] RTW: rtl8821ce v5.2.5_1.26055.20180108.1
> [   15.461301] RTW: rtl8821ce BT-Coex version = COEX20170310-1212
> [   15.482082] RTW: rtw_read_efuse_from_file /system/etc/wifi/wifi_efuse_8821ce.map is not readable
> [   15.489980] Modules linked in: 8821ce(OE+) intel_cstate soundcore intel_rapl_perf idma64 cfg80211 mei_me mei hp_wmi(+) processor_thermal_device i2c_i801 sparse_keymap hp_wireless wmi_bmof wdat_wdt intel_rapl_common intel_lpss_pci joydev intel_lpss rfkill int3400_thermal int340x_thermal_zone acpi_thermal_rel intel_soc_dts_iosf i915 i2c_algo_bit drm_kms_helper crc32c_intel drm serio_raw r8169 wmi video pinctrl_geminilake pinctrl_intel
> [   15.490121]  ? _rtw_malloc+0x29/0x2a [8821ce]
> [   15.490172]  rtw_wiphy_register+0x22/0x4c [8821ce]
> [   15.490223]  rtw_cfg80211_ndev_res_register+0x15/0x56 [8821ce]
> [   15.490272]  rtw_os_ndev_register+0x10c/0x186 [8821ce]
> [   15.490320]  rtw_os_ndevs_register+0x9a/0x11e [8821ce]
> [   15.490367]  rtw_os_ndevs_init+0x24/0x38 [8821ce]
> [   15.490415]  rtw_drv_init+0x396/0xab5 [8821ce]
> [   15.490478]  rtw_drv_entry+0x74/0x1000 [8821ce]
> [   15.490585] WARNING: CPU: 1 PID: 671 at /var/lib/dkms/rtl8821ce/v5.2.5_1.26055.20180108.1/build/os_dep/linux/os_intfs.c:1514 rtw_os_ndev_register+0xb1/0x186 [8821ce]
> [   15.490585] Modules linked in: 8821ce(OE+) intel_cstate soundcore intel_rapl_perf idma64 cfg80211 mei_me mei hp_wmi(+) processor_thermal_device i2c_i801 sparse_keymap hp_wireless wmi_bmof wdat_wdt intel_rapl_common intel_lpss_pci joydev intel_lpss rfkill int3400_thermal int340x_thermal_zone acpi_thermal_rel intel_soc_dts_iosf i915 i2c_algo_bit drm_kms_helper crc32c_intel drm serio_raw r8169 wmi video pinctrl_geminilake pinctrl_intel
> [   15.490642] RIP: 0010:rtw_os_ndev_register+0xb1/0x186 [8821ce]
> [   15.490699]  rtw_os_ndevs_register+0x9a/0x11e [8821ce]
> [   15.490746]  rtw_os_ndevs_init+0x24/0x38 [8821ce]
> [   15.490792]  rtw_drv_init+0x396/0xab5 [8821ce]
> [   15.490848]  rtw_drv_entry+0x74/0x1000 [8821ce]
> [   15.495843] WARNING: CPU: 1 PID: 671 at /var/lib/dkms/rtl8821ce/v5.2.5_1.26055.20180108.1/build/os_dep/linux/os_intfs.c:2748 rtw_os_ndevs_register+0xf4/0x11e [8821ce]
> [   15.495844] Modules linked in: 8821ce(OE+) intel_cstate soundcore intel_rapl_perf idma64 cfg80211 mei_me mei hp_wmi(+) processor_thermal_device i2c_i801 sparse_keymap hp_wireless wmi_bmof wdat_wdt intel_rapl_common intel_lpss_pci joydev intel_lpss rfkill int3400_thermal int340x_thermal_zone acpi_thermal_rel intel_soc_dts_iosf i915 i2c_algo_bit drm_kms_helper crc32c_intel drm serio_raw r8169 wmi video pinctrl_geminilake pinctrl_intel
> [   15.495905] RIP: 0010:rtw_os_ndevs_register+0xf4/0x11e [8821ce]
> [   15.495966]  rtw_os_ndevs_init+0x24/0x38 [8821ce]
> [   15.496013]  rtw_drv_init+0x396/0xab5 [8821ce]
> [   15.496074]  rtw_drv_entry+0x74/0x1000 [8821ce]
> [root@localhost fedora002]# 

Help me please.
:disappointed:

@afdrnk, have you tried to reboot? Verifying – just in case. From the output you’ve posted:

  • The module was rebuilt successfully for new kernel (as it should).

  • The module was also loaded without obvious errors. There were some warnings, but I’m not experienced enough to understand what about.

So I don’t see anything easily resolvable without external help. And as I don’t have this WiFi chipset I can’t test it myself. We can wait a bit if the @kingof13 reports the same with 5.3.X kernel.

  1. As far as I know/understand it, sometimes modules that worked ok for one kernel version (5.2.X in your case) stop working with the next one (5.3.X) and need some tweaks/changes from the module developer to work. You can try to report your problem with 5.3 kernel to the developer of the module in his github repo. It seems that someone reported similar issue here, maybe you should comment there too.
  1. For the time being – until the issue with newer kernel gets resolved – you can use previous kernel where the module was working fine. You can choose to boot into previous kernel from the boot menu when the computer starts.

    Using older kernel and keeping it on your machine was discussed at some length here:

Dear @nightromantic ,
Thanks for reminding me about older kernel selection for I overlooked this matter.
And we have to wait for …

https://www.phoronix.com/scan.php?page=news_item&px=Realtek-RTW88-WiFi-Linux-Driver

1 Like

F.Y.I. I have used the same steps to install the driver for the 8821ce chipset (while I was using Fedora 30). Since I have upgraded to Fedora 31 KDE beta.
My current kernel version is 5.3.6-300. I have no issues with WI-FI.

1 Like

Just to clarify it a bit: will rtl-wireless cards like the rtl8821ce be supported the the linux-kernel soon?
Of course i mean: according to that article.