This is a little outdated as I wrote it a while ago. Use yay rather than yaourt for AUR installs, or simply use pamac if you want to use a GUI installer.
Realtek rtl8821ce DKMS driver install:
You may have already tried unsuccessfully to install your Realtek rtl8821ce drivers.
If you have installed the linux-headers, or any other rtl8821ce driver packages previously, please uninstall them before proceeding.
If you have installed any other DKMS packages related to rtl8821ce, then uninstall them completely as well.
See the end section "Uninstalling A Non-Functioning Driver".
After uninstalling all related rtl8821ce driver, header, or dkms packages, perform the following steps.
Ensure your Manjaro installation is fully up to date with this terminal command:
sudo pacman-mirrors -f 5 && sudo pacman -Syyu
Once the command has finished running, reboot the computer.
Installing the required linux headers:
You must install the required linuxXXX-headers package before installing the rtl8821ce drivers.
Install the linux headers package corresponding to your kernel version number.
You can find your kernel version by entering the following command in the terminal:
uname -r
The output will be similar to this:
4.14.36-1-MANJARO
Substitute the first 3 digits returned for "XXX" in the following command:
sudo pacman -S linuxXXX-headers
Example of the command to run:
sudo pacman -S linux414-headers
If you are using an older kernel version the package name may only contain 2 numbers.
You can search for "linux-headers" in your graphical package installer to find the correct package that matches your kernel version.
You can use the terminal (preferred), Octopi or Pamac to install the linux headers package.
If you find the above directions too confusing to install the linux headers, then you can simply use the command below.
This command will automatically install the linux-headers for the currently running kernel:
sudo pacman -S linux$(uname -r| grep -o -E '[0-9]+' | head -n 2 | sed 'N;s/\n//')-headers
It is also possible to install all the required linux-headers packages for all installed kernels with one command. If you would rather use one command to install all the linux-headers packages automatically, use the following command (courtesy of @AgentS):
sudo pacman -S $(ls /boot | awk -F "-" '/^linux/ { print $1"-headers" }')
Once the linux headers package installation is complete:
Reboot.
Installing the rtl8821ce-dkms-git driver:
The rtl8821ce driver may not install correctly if the USB adapter is plugged-in before the driver is installed.
Do not insert the rtl8821ce WiFi dongle into any USB port until the driver installation is complete.
Before installing the drivers we will install the required dependencies.
This step is not normally required, but some DKMS driver versions may not install properly (when using some AUR helpers) if they are not installed first.
Install with the following command:
sudo pacman -S bc dkms git
You can install the "rtl8821ce-dkms-git" driver package using yaourt, pamac, octopi, or any other AUR helper.
However, I recommend uninstalling and reinstalling the WiFi drivers via the terminal.
If you don’t have an AUR helper installed, then install one such as yaourt with the following command:
sudo pacman -S base-devel yaourt --needed
Then Install the rtl8821ce-dkms-git driver package.
yaourt -S rtl8821ce-dkms-git --noconfirm
To change all network adapters status to unblocked, enter the following in terminal.
sudo rfkill unblock all
Power down the computer.
Plug in your USB network adapter directly into the computer, (not through a USB hub).
The rtl8821ce adapter has been reported to sometimes work better over USB 2.
Try plugging the adapter into a USB 2 port to start with.
Unplug your wired network LAN cable prior to powering up the computer.
Restart the computer, and test if your connection is now working.
If the WiFi connection has not been automatically detected continue with the following steps.
Next we want to ensure your adapter is loaded into the kernel and its status is "up".
Load the driver module:
sudo modprobe 8821ce
If the WiFi connection is still not detected, continue with the following steps.
Run the following command to find your network adapter info:
inxi -n
Is your wireless network adapters status reported as "up" in the output of the "inxi -n" command.
If not, substitute your adapters ID for "wlan0" in the command below:
sudo ip link set "wlan0" up
Example: substitute your adapters ID in the command below, (and run it):
sudo ip link set wlp3s0 up
Then run:
sudo rfkill unblock all
Network manager may need to be restarted to properly detect your adapter.
Enter the following command in the terminal:
sudo systemctl stop NetworkManager; sleep 5; sudo systemctl start NetworkManager
If your adapter is still not working, enter
sudo depmod -a
sudo mkinitcpio -P
If still not working, then unplug the wireless network adapter from the USB port.
Then, power down the computer.
Once the computer is off, plug the WiFi dongle into a different USB port.
Ensure the WiFi dongle is attached directly to the computer, (not through a USB hub).
If the WiFi was on a USB 2 port initially, then switch it to a USB 3 port, (& vice versa if an alternative is available).
Restart.
If your connection is still not working then you will need to post diagnostic outputs on the forum.
Enter the following commands individually in the terminal, and post the command output on the forum:
lsmod
sudo rfkill list all
dkms status
inxi -Fxxxz
journalctl -b -1 | grep 8821ce
find /etc/modprobe.d -type f -name "*.conf" -print -execdir cat '{}' \; -execdir echo \;
pacman -Qsq linux | grep linux | grep -v -E '(arch|util|sys|api|firmware)'
Please post the input/outputs of all the above commands, (as well as any error messages returned during the installation process).
Uninstalling A Non-Functioning Driver:
Ensure your Ethernet connection is working properly before uninstalling a problematic WiFi driver.
First, uninstall all unneeded linux headers packages from your system,(substute your kernel number):
sudo pacman -Rns linux414-headers
Remove any other linuxXXX-headers packages that were installed for other kernel versions as well.
If you would rather use one command to uninstall all the linux-headers packages automatically, use the following command (courtesy of @AgentS):
sudo pacman -R $(ls /boot | awk -F "-" '/^linux/ { print $1"-headers" }')
Now we begin the process of completely uninstalling any improperly installed drivers.
Unload the module of the driver you want to uninstall:
sudo rmmod 8821ce
Uninstall the non-functioning driver package:
sudo pacman -Rns rtl8821au-dkms-git
Substitute the driver you installed in the above command in place of "rtl8821ce-dkms-git" (if you installed a different driver version).
Uninstall the dkms package if it is still installed:
sudo pacman -Rns dkms
Unloading the wifi modules is not always successful with an rmmod command. Rebooting is the surest way to ensure the uninstalled driver modules are removed.
Reboot.
Then continue following the directions in the "Installing the required linux headers" and "Installing the rtl8821ce-dkms-git driver" sections (from the beginning).