web-dev-qa-db-fra.com

Wi-Fi ne fonctionne pas sur Lenovo ThinkPad E570 (Realtek RTL8821CE)

Nous venons d'acheter un Lenovo ThinkPad E570 (qui est supposé avoir le processeur Intel 8265 pour le sans fil). Cet ordinateur portable a été acheté en partie parce qu'il est certifié pour fonctionner sous Ubuntu et, du moins en tant que tel, il serait donc logique que les choses se déroulent de manière inédite ... mais pas de chance.

Tout d'abord, j'ai installé Ubuntu 17.10 et, après l'installation, j'ai réalisé que le Wi-Fi ne fonctionnait pas. J'ai également essayé Ubuntu 16.04 à partir d'une clé USB car c'est la version d'Ubuntu pour laquelle il est certifié, mais pas de chance là-bas non plus.

La puce sans fil n'est pas détectée par lshw (ni même lspci par son apparence), ip link n'indique pas d'interface sans fil et le module de noyau iwlwifi n'est pas chargé au démarrage (je peux le charger moi-même à l'aide de modprobe iwlwifi, mais cela ne crée pas Travail Wi-Fi). Je pense que c'est une puce combinée Wi-Fi/Bluetooth, et Bluetooth semble fonctionner (ou au moins Bluetooth apparaît dans Gnome et rfkill list).

modinfo iwlwifi | grep 8265 me montre qu'un fichier se terminant par -34 est censé être chargé mais seul un fichier se terminant par -33 (et quelques autres nombres plus bas) est présent dans /lib/firmware, si cela peut aider).

J'ai également installé le noyau Linux 4.14.9 pour tenter de faire fonctionner les choses, mais cela n'a pas résolu le problème non plus.

Plus d'informations

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]

Mettre à jour

Je viens de remarquer que l'ordinateur portable ne dispose pas de puce Intel sans fil, mais en réalité d'une Realtek ... ce qui signifie que les spécifications présentées sur la page du produit du magasin où j'ai acheté cet ordinateur portable n'étaient pas précises ... Soupir. Le même problème se pose toutefois avec une puce sans fil plus médiocre.

7
RobinJ

Premièrement, je suggérerais que ces instructions sont plus susceptibles de fonctionner avec Ubuntu 17.10. Si vous ne l'exécutez pas actuellement, je vous suggère de le réinstaller.

Cliquez sur ce lien pour télécharger le fichier de pilote: https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/endlessm/linux/tree/master/drivers/net/sans fil/rtl8821ce

Sauf indication contraire de votre navigateur, les téléchargements sont placés dans le répertoire Téléchargements . Ouvrez un terminal et faites:

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

Faites défiler jusqu'à la ligne 152 et modifiez la ligne qui se lit maintenant comme suit:

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

A lire maintenant:

export TopDIR ?= $ ~/Downloads/rtl8821ce

Relisez soigneusement, deux fois, et enregistrez (Ctrl + o suivi de Entrée) et fermez (Ctrl + x) l'éditeur de texte.

Maintenant faire:

make
Sudo make install
Sudo modprobe 8821ce

Votre réseau sans fil devrait maintenant fonctionner.

EDIT: Vous avez compilé le module uniquement pour votre version de noyau en cours d’exécution. Lorsque Update Manager propose une version ultérieure du noyau, appelée linux-image, après le redémarrage demandé, vous devez recompiler:

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

Veuillez conserver le fichier et ces instructions pour cette période.

13
chili555

Ceci est un suivi de stason 's answer qui suggère d'utiliser dkms .

Autant que je sache, au moment d'écrire ceci, il n'y a pas encore de pilote Wifi pour Realtek RTL8821CE dans les dépôts officiels d'Ubuntu.

Sur github, il existe un référentiel avec un pilote RTL8821CE destiné aux noyaux 4.14 et ultérieurs et spécifiquement pour Arch Linux sans prise en charge d'autres Distros Linux: https://github.com/tomaspinho/rtl8821ce

(Note mineure: à partir de février 2019, tomaspinho est malheureusement ne peut plus entretenir le pilote car il n'a plus accès à un ordinateur avec ce chipset, et donc n nouveau responsable peut être nécessaire, mais le pilote fonctionne toujours avec Ubuntu 18.04 à ce moment-là.)

Il a cependant été rapporté que cela fonctionnait parfaitement avec Ubuntu 18.04.

Une connexion Internet temporaire sera nécessaire (comme un câble Ethernet, clé USB WiFi ou connecter votre téléphone avec un câble USB et ' Tethering 'utiliser le Wifi de votre téléphone)

La solution est prise directement de post # 4 par Praseodym (beaucoup de louanges à leur sagesse!): https://ubuntuforums.org/showthread.php?t=2398917 et installera un certain nombre de packages pour la construction du module de pilote wifi (git, dkms, build-essential & linux-headers) et clonez le rtl8821ce référentiel git de tomaspinho (beaucoup d'éloges aussi!).

DKMS est utilisé car c'est "un système qui recompilera et installera automatiquement un module de noyau lorsqu'un nouveau noyau sera installé ou mis à jour."


Ouvrez un terminal et tapez les lignes suivantes (vous pouvez couper et coller si vous préférez):

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

Une fois cette opération terminée, vous devez redémarrer et constater que votre connexion Wi-Fi fonctionne.

Vous voulez également vous assurer que SecureBoot est désactivé dans les paramètres du BIOS ou il ne vous laissera pas charger le module de noyau auto-conforme non signé.

7
pHeLiOn

Mise à jour 2018-02-27

Veuillez noter que le pilote suggéré est pour OS sans fin et qu'il peut donc tomber en panne à tout moment. Si un organisme a un pilote officiel pour Ubuntu, ce sera mieux.

Réponse originale

Ce n'est pas une nouvelle réponse, ce serait mieux un commentaire.

J'ai donc essayé de suivre la réponse de @ chili555 mais j'ai continué à avoir des erreurs en essayant de créer le module.

Des erreurs comme:

/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

J'ai donc essayé de télécharger un autre révision ( lien de téléchargement direct de l'archive Zip ) qui, au moment de la réponse d'origine, pouvait également être maître. Ensuite, j'ai pu créer le module et l'installer en suivant les étapes fournies par @ chili555

2
ingkevin

dkms build/install pour rtl8821ce peut être trouvé ici: https://github.com/tomaspinho/rtl8821ce

Lorsque vous utilisez cette approche, vous n'avez pas besoin de reconstruire le module chaque fois que le noyau est mis à jour.

Je viens de le construire sur Lenovo Idea 720 avec Kubuntu 18.04.


Aussi, je vous suggère de modifier Makefile pour changer le niveau de journalisation de 4 (info) à 3 (avertissements). Sinon, vous constaterez que votre /var/log/syslog se remplit à une vitesse folle avec des messages d’informations inutiles du conducteur.

Alors éditez Makefile, pour changer:

CONFIG_RTW_LOG_LEVEL = 4

à:

CONFIG_RTW_LOG_LEVEL = 3

puis construisez et installez le module selon les instructions. Si vous l'avez déjà installé, vous devez le désinstaller (à l'aide de dkms-remove.sh), puis le réinstaller.

Vous pouvez également modifier manuellement le niveau de journalisation jusqu'au prochain redémarrage avec:

echo 3 > /proc/net/rtl8821ce/log_level

update: le mainteneur a changé le Makefile pour refléter cette suggestion, donc si vous effectuez une nouvelle commande/un nouveau téléchargement, il aura déjà le bon réglage (silencieux).

1
stason

Une solution pour l'erreur de minuterie.

Je parviens à le faire fonctionner pour mon lenovo E570 avec Ubuntu 16.04 et voici mes étapes: Tout d’abord, je mets à jour ma version du noyau à 4.15.4 en utilisant ceci guide

Je pense que toute version de noyau supérieure à 4.15.4 devrait fonctionner car je devais à nouveau mettre à jour mon noyau vers 4.15.9. Notez que le pilote doit être réinstallé.

Ensuite, j'ai suivi les étapes mentionnées dans les réponses @ chili555

1
Juichung_Kuo