Installare i driver per la scheda di rete RTL8821CE su Ubuntu 18.04 e 20.04

AGGIORNAMENTO: alcuni utenti mi hanno segnalato che questa guida può essere seguita con successo sia su Ubuntu 20.04 che su Fedora 31!

Se hai provato ad installare Ubuntu 18.04 su di un PC con la scheda di rete Realtek RTL8821CE avrai sicuramente notato che questa non viene riconosciuta dal sistema operativo.

In attesa che i driver di questa scheda di rete vengano aggiunti all’interno di Ubuntu è possibile installarli manualmente seguendo la procedura descritta di seguito.

Ma prima di vedere come installare i driver mi presento, sono Lorenzo Millucci e sono un ingegnere del software che ama lavorare con PHP e Symfony. Nel tempo libero mi piace condividere in questo blog le cose che imparo. Iscriviti al mio canale Telegram per non perderti nessuna notizia!

Verificare di avere la scheda RTL8821CE

Per vedere quali schede di rete hai all’interno del tuo computer puoi utilizza il comando da terminale:

lspci | egrep -i --color 'network'

Se come risultato ottieni:

Network controller: Realtek Semiconductor Co., Ltd. RTL8821CE 802.11ac PCIe Wireless Network Adapter

Allora significa che nel tuo computer è presente la scheda in questione e puoi procedere all’installazione dei driver descritta di seguito.

Installare i driver

Per installare i driver devi usare i seguenti comandi:

sudo apt install --reinstall git dkms build-essential linux-headers-$(uname -r)
git clone https://github.com/tomaspinho/rtl8821ce
cd rtl8821ce
chmod +x dkms-install.sh
sudo ./dkms-install.sh

NOTA: affinché la procedura vada a buon fine devi essere connesso ad internet. Puoi farlo utilizzando il cavo Ethernet al tuo modem oppure utilizzare il tuo smartphone in tethering connettendolo via USB.

A questo punto, riavviando il sistema, la scheda di rete dovrebbe essere finalmente riconosciuta dal sistema ed essere pronta per l’utilizzo.

NOTA: affinché l’installazione dei driver vada a buon fine devi avere Secure Boot disattivato all’interno di UEFI altrimenti potresti ricevere il seguente messaggio d’errore

Your system has UEFI Secure Boot enabled.                                   
 │                                                                             
 │ UEFI Secure Boot requires additional configuration to work with             
 │ third-party drivers.                                                       
 │                                                                             
 │ The system will assist you in configuring UEFI Secure Boot. To permit       
 │ the use of third-party drivers, a new Machine-Owner Key (MOK) has been     
 │ generated. This key now needs to be enrolled in your system's firmware.     
 │                                                                             
 │ To ensure that this change is being made by you as an authorized user,     
 │ and not by an attacker, you must choose a password now and then confirm     
 │ the change after reboot using the same password, in both the "Enroll       
 │ MOK" and "Change Secure Boot state" menus that will be presented to you     
 │ when this system reboots.

Rimozione dei driver

Nel caso in cui ci fossero problemi puoi sempre rimuovere i driver installati spostandoti nella cartella in cui li hai scaricati e digitando i comandi:

chmod +x dkms-remove.sh
sudo ./dkms-remove.sh

Aggiornamento dei driver

Nel caso in cui abbia bisogno di aggiornare i driver della scheda di rete la procedura da seguire è la seguente:

  • Entrare nella cartella dei driver (o se non è più disponibile riscaricarla con i comandi descritti nello step di installazione)
  • Rimuovere i driver esistenti con il comando sudo ./dkms-remove.sh
  • Aggiornare il repository dei driver con il comando git pull
  • Pulire l’ambiente da eventuali residui di installazioni passate con il comando make clean
  • Lanciare l’installazione con il comando sudo ./dkms-install.sh

Conclusioni

Se questo post ti è stato utile puoi farmelo sapere con un commento qui sotto oppure scrivendomi direttamente a t.me/lorenzomillucci.
Inoltre ti invito ad iscriverti al mio canale Telegram per non perderti nemmeno un post del mio blog.

Fonte

Software engineer presso Slope.
Appassionato di videogame, nel tempo libero mi diletto a scrivere su questo blog.
Per non perderti nemmeno un post puoi seguirmi su Telegram!

63 risposte a “Installare i driver per la scheda di rete RTL8821CE su Ubuntu 18.04 e 20.04”

  1. Ciao Lorenzo, avevo già la scheda wi-fi funzionante ma dopo un importante aggiornamento non ha più funzionato. Ho installato i driver seguendo le tue istruzioni ma nulla non funziona.
    Altri suggerimenti?

      1. Il primo errore è questo e viene fuori con il secondo comando:
        fatal: il path di destinazione ‘rtl8821ce’ esiste già e non è una directory vuota.

  2. Ho lanciato l’ultimo comando che hai proposto e la risposta è questa :
    About to run dkms install steps…
    Error! DKMS tree already contains: rtl8821ce-v5.2.5_1.26055.20180108.1
    You cannot add the same module/version combo more than once.
    Module rtl8821ce/v5.2.5_1.26055.20180108.1 already built for kernel 5.3.0-26-generic/4
    Module rtl8821ce/v5.2.5_1.26055.20180108.1 already installed on kernel 5.3.0-26-generic/x86_64
    Finished running dkms install steps.

    1. Quell’errore indica che non hai disinstallato la versione precedente con sudo ./dkms-remove.sh

      NOTA: se avevi scaricato il repository un diverso tempo fa dovresti aggiornarlo prima di rilanciare lo script di installazione entrando nella cartella rtl8821ce e digitando git pull origin

  3. Ho rifatto l’installazione il messaggio è questo:
    sudo ./dkms-install.sh
    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.3.0-26-generic…………………
    Signing module:
    – /var/lib/dkms/rtl8821ce/v5.5.2_34066.20190614/5.3.0-26-generic/x86_64/module/8821ce.ko
    Secure Boot not enabled on this system.
    cleaning build area…

    DKMS: build completed.

    8821ce:
    Running module version sanity check.
    – Original module
    – This kernel never originally had a module by this name
    – Installation
    – Installing to /lib/modules/5.3.0-26-generic/updates/dkms/

    depmod…

    DKMS: install completed.
    Finished running dkms install steps.

    Riavvio e vediamo cosa accade.

    1. A me viene leggermente diverso sul finale invece:

      sudo ./dkms-install.sh
      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.3.0-28-generic…………
      Signing module:
      – /var/lib/dkms/rtl8821ce/v5.5.2_34066.20190614/5.3.0-28-generic/x86_64/module/8821ce.ko
      Nothing to do.
      cleaning build area…

      DKMS: build completed.

      8821ce:
      Running module version sanity check.
      – Original module
      – No original module exists within this kernel
      – Installation
      – Installing to /lib/modules/5.3.0-28-generic/updates/dkms/

      depmod…

      DKMS: install completed.
      Finished running dkms install steps.

  4. Ciao Lorenzo, innanzitutto grazie per rendere disponibili queste guide. Ti scrivo perché purtroppo sto riscontrando dei problemi con l’installazione del driver. Dopo aver messo il primo comando sul terminale appare questo:
    sudo apt-get install –reinstall git dkms build-essential linux-headers-$(uname -r)
    Lettura elenco dei pacchetti… Fatto
    Generazione albero delle dipendenze
    Lettura informazioni sullo stato… Fatto
    Il pacchetto build-essential non ha versioni disponibili, ma è nominato da un altro
    pacchetto. Questo potrebbe indicare che il pacchetto è mancante, obsoleto
    oppure è disponibile solo all’interno di un’altra sorgente

    Il pacchetto dkms non ha versioni disponibili, ma è nominato da un altro
    pacchetto. Questo potrebbe indicare che il pacchetto è mancante, obsoleto
    oppure è disponibile solo all’interno di un’altra sorgente

    E: Il pacchetto “dkms” non ha candidati da installare
    E: Il pacchetto “build-essential” non ha candidati da installare

    Cosa mi consigli di fare?
    Grazie mille in anticipo
    Andrea

  5. Giorno! Ho cercato di seguire la guida, ma già dal primo comando mi dice questo:
    Lettura elenco dei pacchetti… Fatto
    Generazione albero delle dipendenze
    Lettura informazioni sullo stato… Fatto
    La reinstallazione di dkms non è possibile, non può essere scaricato.
    La reinstallazione di linux-headers-5.0.0-32-generic non è possibile, non può essere scaricato.
    Alcuni pacchetti non possono essere installati. Questo può voler dire
    che è stata richiesta una situazione impossibile oppure, se si sta
    usando una distribuzione in sviluppo, che alcuni pacchetti richiesti
    non sono ancora stati creati o sono stati rimossi da Incoming.
    Le seguenti informazioni possono aiutare a risolvere la situazione:

    I seguenti pacchetti hanno dipendenze non soddisfatte:
    build-essential : Dipende: g++ (>= 4:7.2) ma non sta per essere installato
    E: Impossibile correggere i problemi, ci sono pacchetti danneggiati bloccati.

    Quindi automaticamente non mi permette di continuare. Ammetto che l’ho fatto abbastanza in fretta, ma spero tu possa risolverlo.

    1. Ciao, hai provato a vedere se andando su “Software e aggiornamenti” alla sezione “Aggiornamenti” hai qualche repository disabilitato?
      Potresti anche provare a dare un sudo apt install -f e vedere se riesci a risolvere

      PS: che versione di ubuntu usi?

  6. Okay come non detto. Ho installato una nuova versione di Ubuntu (18.04.4 LTS) ma mi da ugualmente problemi. Digitando il primo comando e accettando le condizioni mi dice che è impossibile scaricare alcuni pacchetti e di rimediare con il comando “apt-get update” o con “—fix-missing”. Eseguo. Mi da permesso negato.

  7. ciao, ho anche io il problema della scheda wifi realtek 8821ce su hp 15 con rizen5 ; ho seguito la procedura suggerita da te con il terminale, tutto è andato liscio e alla fine ho addirittura ho trovato i driver open aggiuntivi in software e aggiornamenti ; li ho istallati ma , anche se non mi dà alcun segno di errore , la scheda non funziona
    s.o. ubuntu mate 20 lts

    1. Guarda, io purtroppo non ho più il PC con quella scheda wireless per cui non posso provare direttamente. Pensavo che sulla 20.04 avessero risolto. Se vuoi puoi provare a dare “sudo apt install rtl8821ce-dkms” e a riavviare

  8. risolto ! adesso il laptop hp15 vede la scheda e grazie ai driver aggiuntivi ( open source ) funziona bene
    la procedura proposta da te è ok , bisogna , come notavi , avere i laptop connesso via ethernet mentre si procede da terminale
    grazie per la guida

  9. Grazie…installo aggiornamenti SO oggi…ubuntu 18lts..e scompare magicamente la scheda wifi!! Recupero vecchi appunti della procedura applicata tempo fa ma …non funziona piu’. Capito su questa pagina…applico alla lettera..(e nonostante la segnalazione di un errore ricevuto al 2/3 comando nn ricordo…forse per segnalare esistenza del componente software visto che un anno fa avevo gia’ installato il tutto) RIAVVIO con poca fiducia ma…debbo ricredermi perche’ la scheda e’ riconosciuta. Grazie molte gia’ temevo ore di tentativi e prove!

  10. Buongiorno, grazie della guida, effettivamente è un problema che ho riscontrato anche io. Ho una sola domanda: visto che prima di procedere con l’installazione di Xubuntu in un pc nuovo nuovo (con Windows 10 come S.O) vorrei verificare effettivamente il funzionamento di tutto lo hardware, è possibile far avviare la scheda di rete wifi anche tramite avvio live da usb? Ho infatti seguito la guida e tutti i comandi vengono eseguiti ma se riavvio la live torno punto a capo.
    Devo per forza installare?
    Grazie ancora.

    1. Ciao, di default le live da usb vengono create senza alcuno spazio per memorizzare i dati. Questo vuol dire che ogni volta che riavvii il sistema tutti i tuoi dati vengono cancellati ed è per questo motivo che non riesci ad installare i driver.
      Se vuoi provare il sistema da live allora devi creare una live con uno spazio di memorizzazione persistente all’interno della chiavetta usb. Puoi farlo seguendo una guida tipo questa: https://www.lffl.org/2014/06/installare-ubuntu-su-usb-anche-in.html

      1. Grazie, con questi consigli ho risolto il mio problema. Veramente interessante e fatta bene la pagina.
        Confermo che con xubuntu 20.04 la procedura funziona alla meraviglia.
        Grazie ancora

  11. Ciao Lorenzo, purtroppo sul mio hp non ha funzionato. Mi sono ritrovato nella stessa situazione di uno dei primi utenti che ha commentato(Lino) e lui con un output finale uguale al mio ha risolto. Cosa potrei fare?Grazie in anticipo

      1. Ciao, innanzitutto grazie per la disponibilità.
        Il messaggio è questo:

        /*
        Ho rifatto l’installazione il messaggio è questo:
        sudo ./dkms-install.sh
        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.3.0-26-generic…………………
        Signing module:
        – /var/lib/dkms/rtl8821ce/v5.5.2_34066.20190614/5.3.0-26-generic/x86_64/module/8821ce.ko
        Secure Boot not enabled on this system.
        cleaning build area…

        DKMS: build completed.

        8821ce:
        Running module version sanity check.
        – Original module
        – This kernel never originally had a module by this name
        – Installation
        – Installing to /lib/modules/5.3.0-26-generic/updates/dkms/

        depmod…

        DKMS: install completed.
        Finished running dkms install steps.

        Riavvio e vediamo cosa accade.

        */

        Poi nel messaggio successivo dice di aver risolto.

          1. L’unica cosa che posso consigliarti di fare è provare a disinstallare i driver e a rimetterli. Purtroppo non ti so dire molto altro se non ricevi nessun errore durante l’installazione

  12. Scusami se ho postato in due commenti differenti…
    dopo aver dato sudo ./dkms-remove.sh nella cartella ho dato il comando sudo ./dkms-install.sh e questo è l’ output:
    About to run dkms install steps…

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

    DKMS: add completed.

    Kernel preparation unnecessary for this kernel. Skipping…

    Building module:
    cleaning build area…
    ‘make’ -j8 KVER=5.4.0-42-generic…………
    Signing module:
    – /var/lib/dkms/rtl8821ce/v5.5.2_34066.20200325/5.4.0-42-generic/x86_64/module/8821ce.ko
    Secure Boot not enabled on this system.
    cleaning build area…

    DKMS: build completed.

    8821ce.ko:
    Running module version sanity check.
    – Original module
    – No original module exists within this kernel
    – Installation
    – Installing to /lib/modules/5.4.0-42-generic/updates/dkms/

    depmod…

    DKMS: install completed.
    Finished running dkms install steps.

    Stavo scrivendo questo messaggio prima che tu mi rispondessi scusa. Non so se quest’ output può essere utile.
    Ho riprovato l’ installazione come tu consigliavi di fare ma niente..

      1. si, ho riavviato e ancora niente wifi.
        L’ output di ispci -k:
        00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
        Subsystem: Hewlett-Packard Company Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
        Kernel driver in use: skl_uncore
        libkmod: ERROR ../libkmod/libkmod-config.c:656 kmod_config_parse: /etc/modprobe.d/iwlwifi.conf line 8: ignoring bad line starting with '“options'
        00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
        Subsystem: Hewlett-Packard Company UHD Graphics 620
        Kernel driver in use: i915
        Kernel modules: i915
        00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 08)
        Subsystem: Hewlett-Packard Company Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem
        Kernel driver in use: proc_thermal
        Kernel modules: processor_thermal_device
        00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
        Subsystem: Hewlett-Packard Company Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
        00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP USB 3.0 xHCI Controller
        Kernel driver in use: xhci_hcd
        00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP Thermal subsystem
        Kernel driver in use: intel_pch_thermal
        Kernel modules: intel_pch_thermal
        00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP CSME HECI
        Kernel driver in use: mei_me
        Kernel modules: mei_me
        00:17.0 RAID bus controller: Intel Corporation 82801 Mobile SATA Controller [RAID mode] (rev 21)
        Subsystem: Hewlett-Packard Company 82801 Mobile SATA Controller [RAID mode]
        Kernel driver in use: ahci
        Kernel modules: ahci
        00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 (rev f1)
        Kernel driver in use: pcieport
        00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
        Kernel driver in use: pcieport
        00:1c.5 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #6 (rev f1)
        Kernel driver in use: pcieport
        00:1f.0 ISA bridge: Intel Corporation Sunrise Point LPC Controller/eSPI Controller (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point LPC Controller/eSPI Controller
        00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP PMC
        00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP HD Audio
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel
        00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
        Subsystem: Hewlett-Packard Company Sunrise Point-LP SMBus
        Kernel driver in use: i801_smbus
        Kernel modules: i2c_i801
        01:00.0 3D controller: NVIDIA Corporation GM108M [GeForce MX130] (rev a2)
        Subsystem: Hewlett-Packard Company GM108M [GeForce MX130]
        Kernel driver in use: nvidia
        Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
        02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
        DeviceName: Hanksville Gbe Lan Connection
        Subsystem: Hewlett-Packard Company RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
        Kernel driver in use: r8169
        Kernel modules: r8169
        03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8821CE 802.11ac PCIe Wireless Network Adapter
        DeviceName: WLAN
        Subsystem: Hewlett-Packard Company RTL8821CE 802.11ac PCIe Wireless Network Adapter
        Kernel modules: 8821ce, rtl8821ce

        Grazie infinite per la disponibilità

        1. Credo che tu abbia modificato in qualche modo un file che non dovevi toccare infatti ti segnala:
          libkmod: ERROR ../libkmod/libkmod-config.c:656 kmod_config_parse: /etc/modprobe.d/iwlwifi.conf line 8: ignoring bad line starting with '“options'
          Prova a fare un cat /etc/modprobe.d/iwlwifi.conf e verifica se per caso c’è una linea che inizia con “options (il problema potrebbe essere il doppio apice)

          1. Ah ok, potrebbe essere un errore nella cartella backport-iwlwifi?

            l’ output è questo

            # /etc/modprobe.d/iwlwifi.conf
            # iwlwifi will dyamically load either iwldvm or iwlmvm depending on the
            # microcode file installed on the system. When removing iwlwifi, first
            # remove the iwl?vm module and then iwlwifi.
            remove iwlwifi \
            (/sbin/lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs /sbin/rmmod) \
            && /sbin/modprobe -r mac80211
            “options iwlwifi disable_msix=1”

  13. Ho modificato con sudo nano -w così:
    /etc/modprobe.d/iwlwifi.conf
    # iwlwifi will dyamically load either iwldvm or iwlmvm depending on the
    # microcode file installed on the system. When removing iwlwifi, first
    # remove the iwl?vm module and then iwlwifi.
    remove iwlwifi \
    (/sbin/lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs /sbin/rmmod) \
    && /sbin/modprobe -r mac80211
    #“options iwlwifi disable_msix=1”

    Ho riavviato ma ancora nulla… scusa se ti sto facendo impazzire

  14. Ciao, alla fine passando di nuovo alla versione 18.04 e abilitando i repositories (come avevi suggerito ad un utente) con il comando :
    sudo add-apt-repository “deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe”
    ho ridato tutti i comandi della tua guida e riavviando ha funzionato!!!
    Grazie perchè questa pagina è stata comunque un riferimento essenziale

  15. Ciao Lorenzo e grazie innanzitutto per l’apporto prezioso che ci dai. Ho installato la versione 20.10 e ho notato, salvo miei abbagli, che il problema con questa scheda di rete non è stato ancora risolto. Ho un hp Pavilion x 360. Ho seguito le tue indicazioni e ho risolto anche se stranamente non mi dà una ricezione piena del segnale pur trovandomi vicino al router. Dopo l’ installazione volevo riattivare il secur boot (ho un dual boot con Win 10) ma se lo faccio la scheda torna a non essere più riconosciuta. Avresti mica qualche consiglio mi piacerebbe attivare il s.b. per proteggere windows. Ancora molte grazie per tutto.Giovanni

    1. Ciao Giovanni. Speravo che con le nuove release di Ubuntu integrassero il fix ma se mi dici che il problema è ancora presente sulla 20.10 inizio a perdere le speranze.
      Per quanto riguarda il secure boot che io sappia non c’è modo di riattivarlo mantenendo i driver attivi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *