Il Wi-Fi non funziona su Lenovo ThinkPad E570 (Realtek RTL8821CE)


17

Abbiamo appena acquistato un Lenovo ThinkPad E570 (che dovrebbe avere Intel 8265 per wireless). Questo laptop è stato acquistato in parte perché è certificato per eseguire Ubuntu e come tale almeno per me avrebbe senso che le cose funzionassero fuori dagli schemi ... ma senza tanta fortuna.

Innanzitutto, ho installato Ubuntu 17.10 e dopo l'installazione ho capito che il Wi-Fi non funzionava. Ho anche provato Ubuntu 16.04 da un'unità USB poiché quella è la versione di Ubuntu per cui è certificata, ma non c'è fortuna neanche lì.

Il chip wireless non viene rilevato da lshw(o nemmeno lspcidall'aspetto di esso), ip linknon mostra un'interfaccia wireless e il iwlwifimodulo del kernel non viene caricato all'avvio (posso caricarlo da solo usando modprobe iwlwifima questo non fa funzionare il Wi-Fi) . Penso che sia un chip combinato Wi-Fi / Bluetooth e Bluetooth sembra funzionare (o almeno Bluetooth si presenta in Gnome e rfkill list).

modinfo iwlwifi | grep 8265mi mostra che un file che termina in -34 è presumibilmente caricato, ma è presente solo un file che termina in -33 (e alcuni altri numeri più bassi) /lib/firmware, se ciò aiuta.

Ho anche installato il kernel Linux 4.14.9 nel tentativo di far funzionare le cose, ma anche questo non ha risolto il problema.

Ulteriori informazioni

root@ThinkPad-E570:~# modinfo iwlwifi | grep 8265
firmware:       iwlwifi-8265-34.ucode
root@ThinkPad-E570:~# rfkill list all
0: tpacpi_bluetooth_sw: Bluetooth
    Soft blocked: no
    Hard blocked: no
1: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
root@ThinkPad-E570:~# dmesg | grep iwl
root@ThinkPad-E570:~# lspci -nnk | grep 0280 -A3
05:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:c821]
    Subsystem: Lenovo Device [17aa:c024]

Aggiornare

Ho appena notato che il laptop non ha affatto un chip wireless Intel, ma in realtà ne ha uno Realtek ... il che significa che le specifiche presentate nella pagina del prodotto del negozio in cui ho comprato questo laptop non erano accurate ... Sospiro. Lo stesso problema si pone, tuttavia, solo con un chip wireless più scadente.


1
Per i futuri googler, vorrei notare che la risposta scelta funziona anche su Linux Mint 19.1
LondonRob

Il sito Web Lenovo specifica che ha una scheda WiFi Intel, quindi se l'hai acquistata usata, hai una causa contro il negozio. Vedere i collegamenti Web aggiunti sopra per la conferma.
K7AAY,

1
Questo ha funzionato per me youtube.com/watch?v=vPfLVsyQU_A
Dagang,

grazie @Dangang, mi hai salvato le ore. Ci ho provato su lenovo ideapad 130 15ikb.
Hridaynath,

Risposte:


15

Innanzitutto, suggerirei che queste istruzioni hanno maggiori probabilità di funzionare con Ubuntu 17.10. Se non lo stai eseguendo ora, ti suggerisco di reinstallarlo.

Fare clic su questo collegamento per scaricare il file del driver: https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/endlessm/linux/tree/master/drivers/net/wireless/rtl8821ce

Salvo diversamente specificato nel browser, i download vanno nella directory Download . Apri un terminale ed esegui:

cd ~/Downloads
unzip rtl8821ce.zip
cd rtl8821ce
nano Makefile

Scorri verso il basso fino alla riga 152 e modifica la riga che ora legge:

export TopDIR ?= $(srctree)/drivers/net/wireless/rtl8821ce

Per ora leggi:

export TopDIR ?= $ ~/Downloads/rtl8821ce

Correggi attentamente, due volte e salva (Ctrl + o seguito da Invio) e chiudi (Ctrl + x) l'editor di testo.

Ora fai:

make
sudo make install
sudo modprobe 8821ce

Ora il tuo wireless dovrebbe funzionare.

EDIT: hai compilato il modulo solo per la versione del tuo kernel attualmente in esecuzione. Quando Update Manager offre una versione successiva del kernel, nota come immagine linux, dopo il riavvio richiesto, è necessario ricompilare:

cd rtl8821ce
make clean
make
sudo make install
sudo modprobe 8821ce

Conservare il file e queste istruzioni per quel tempo.


Questo è quello che ho trovato anche ieri e ha funzionato :) Una cosa di cui sono curioso è se continuerà a funzionare su tutti gli aggiornamenti del kernel.
RobinJ,

Ottima cattura! Si prega di vedere la mia modifica sopra in pochi istanti.
chili555

dopo aver modificato il file ho provato a eseguire il comando make, ma mi dà un errore. corro il "make" nella directory "rtl8821ce", l'errore è / bin / sh: 1 cc: non trovato. Qualche idea . Make è un'utilità predefinita fornita con il sistema operativo?
DILEEP THOMAS,

@DILEEPTHOMAS Inizia la tua nuova domanda.
chili555

Per me modificare il file non era necessario. Basta scaricare la compilazione del driver di installazione e attivare la mod dove basta. Grazie!!!
Diego Andrés Díaz Espinoza,

15

Si tratta di un follow-up a Stason 's risposta che suggerisce di utilizzare DKMS .

Per quanto ne so, al momento della stesura di questo, non esiste ancora un driver Wifi per Realtek RTL8821CE nei repository ufficiali di Ubuntu.

Su github esiste un repository con un driver RTL8821CE rivolto ai kernel 4.14 e versioni successive e in particolare per Arch Linux senza supporto fornito per altre distribuzioni Linux: https://github.com/tomaspinho/rtl8821ce

(Nota minore: a partire da febbraio 2019 tomaspinho purtroppo non è più in grado di mantenere il driver in quanto non ha più accesso a un computer con questo chipset, quindi potrebbe essere necessario un nuovo manutentore , ma il driver funziona ancora con Ubuntu 18.04 a quella volta.)

Tuttavia, è stato segnalato per funzionare bene con Ubuntu 18.04.

Sarà necessaria una connessione Internet temporanea (come un cavo Ethernet , un dongle USB USB o il collegamento del telefono con un cavo USB e il " tethering " per utilizzare il Wi-Fi del telefono)

La soluzione è presa direttamente dal post n. 4 di Praseodym (molti elogi alla loro saggezza!): Https://ubuntuforums.org/showthread.php?t=2398917 e installerà una serie di pacchetti per la creazione del modulo driver wifi (git , DKMS, build-essential & linux-header) e clonare il rtl8821ce repository git da tomaspinho (molti elogi anche!).

DKMS viene utilizzato perché è "un sistema che ricompilerà e installerà automaticamente un modulo del kernel quando viene installato o aggiornato un nuovo kernel".


Apri un terminale e digita le seguenti righe (puoi tagliare e incollare se preferisci):

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

Dopo che questo è stato completato con successo, dovresti riavviare e scoprire che il tuo Wifi funziona.

Devi anche assicurarti che SecureBoot sia disabilitato nelle impostazioni del BIOS o che non ti consenta di caricare il modulo kernel autocompilato non firmato.


Posso confermare che non è necessario disabilitare SecureBoot . Se hai abilitato SecureBoot, segui semplicemente le istruzioni durante sudo ./dkms-install.she inserisci la stessa password che sceglierai durante il riavvio.
Niel de Wet,

1
Ha funzionato per me. Mi ha salvato il tempo.
Iftakharul Alam,

Fantastico. Grazie. Questo ha funzionato per me.
Dr Xorile,

avere lo stesso problema ... ma peggio. l'idePadS145 non ha ethernet, quindi non posso nemmeno apt-get install .. Come si può ottenere il modulo appena compilato per il kernel predefinito in eon: 5.3.0-18-generico?
Nico Grunfeld,

2

Aggiornamento 27/02/2018

Si noti che il driver suggerito è per il sistema operativo senza fine e pertanto potrebbe interrompersi in qualsiasi momento. Se un corpo ha un driver ufficiale per Ubuntu, sarà meglio.

Risposta originale

Questa non è una nuova risposta, sarebbe meglio un commento.

Quindi ho provato a seguire la risposta di @ chili555 ma ho continuato a ricevere errori mentre cercavo di creare il modulo.

Errori come:

/rtl8821ce/include/osdep_service_linux.h:294:2: error: implicit declaration of function ‘timer_setup’; did you mean ‘ether_setup’?
[-Werror=implicit-function-declaration]
   timer_setup(ptimer, pfunc, 0);
   ^~~~~~~~~~~   ether_setup

Quindi ho provato a scaricare una revisione diversa ( link per il download diretto dell'archivio zip ) che al momento della risposta originale potrebbe essere anche master. Quindi sono stato in grado di creare e installare il modulo seguendo i passaggi forniti da @ chili555


2

build / installazione di dkms per rtl8821ce è disponibile qui: https://github.com/tomaspinho/rtl8821ce

Quando usi questo approccio non dovrai ricostruire il modulo ogni volta che il kernel viene aggiornato.

L'ho appena costruito su Lenovo Idea 720s con Kubuntu 18.04.


Inoltre ti consiglio di modificare Makefile per cambiare il livello di registro da 4 (informazioni) a 3 (avvertenze). Altrimenti troverai il tuo /var/log/syslogriempimento ad una velocità folle con inutili messaggi informativi da parte del conducente.

Quindi modifica Makefile, per cambiare:

CONFIG_RTW_LOG_LEVEL = 4

per:

CONFIG_RTW_LOG_LEVEL = 3

e quindi compilare e installare il modulo secondo le istruzioni. Se lo hai già installato, devi disinstallarlo (usando dkms-remove.sh) e quindi reinstallarlo di nuovo.

In alternativa è possibile modificare manualmente il livello di registro fino al prossimo riavvio con:

echo 3 > /proc/net/rtl8821ce/log_level

aggiornamento: il manutentore ha modificato il Makefile per riflettere questo suggerimento, quindi se effettui un nuovo checkout / download avrà già l'impostazione (silenziosa) corretta.


1

Una soluzione per l'errore del timer.

Riesco a farlo funzionare per il mio Lenovo E570 con Ubuntu 16.04 e qui sono i miei passaggi: in primo luogo, aggiorno la mia versione del kernel alla 4.15.4 usando questa guida

Credo che qualsiasi versione del kernel precedente alla 4.15.4 dovrebbe funzionare perché ho dovuto aggiornare nuovamente il mio kernel alla 4.15.9. Si noti che il driver deve essere reinstallato.

Quindi, ho seguito i passaggi indicati nelle risposte @ chili555


Cosa intendi con "installazione del driver"?
pim

Significa che devi eseguire nuovamente sudo make install. per favore fatemi sapere se ha funzionato per voi e quale versione del kernel state usando. Questo metodo ha funzionato per me prima, ma recentemente ho dovuto reinstallare Ubuntu diverse volte e ha smesso di funzionare per me.
Juichung_Kuo,

Il seguente thread include un driver alternativo a 8821ce, link e funziona di nuovo per me
Juichung_Kuo

Mi sembra di avere esattamente la tua stessa macchina, con 16.04 LTS e sembra avere esattamente gli stessi problemi, ma senza successo. È possibile per te pubblicare, riga per riga, esattamente quello che hai fatto per far funzionare il tuo: mi sembra di girare in tondo e continuare a vedere la parte posteriore della mia testa. Arrrrgh. Grazie.
Piloti,

uh ... è passato un po 'di tempo e non ricordo esattamente cosa ho fatto per ripararlo. Ma hai controllato il link che ho postato sopra perché contiene quali comandi ho usato. hai anche provato questo: github.com/lwfinger/rtlwifi_new
Juichung_Kuo

0

crediti a praseodym da ubuntuusers.de per questo breve tutorial usando dkms per installare il driver perché dopo aver provato diverse varianti con risposta, solo questo ha funzionato per me su un debian 10 (buster) appena installato:

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

la rimozione funziona in questo modo:

sudo ./dkms-remove.sh 

è stato anche menzionato per disabilitare l'avvio sicuro, anche prima dell'installazione del sistema operativo. non sono sicuro che questo faccia la differenza perché ne avevo bisogno su un "PC desktop HP Slimline (290-a0512ng)" con avvio protetto disabilitato per impostazione predefinita che ho controllato / notato dopo l'installazione del sistema operativo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.