O Wi-Fi não está funcionando no Lenovo ThinkPad E570 (Realtek RTL8821CE)

17

Acabamos de comprar um Lenovo ThinkPad E570 (que deveria ter o Intel 8265 para conexão sem fio). Este laptop foi comprado em parte porque é certificado para executar o Ubuntu e, como tal, para mim, pelo menos, faria sentido para que as coisas funcionassem imediatamente ... mas não tive essa sorte.

Primeiro, instalei o Ubuntu 17.10 e após a instalação percebi que o Wi-Fi não estava funcionando. Eu também tentei o Ubuntu 16.04 a partir de uma unidade USB, já que essa é a versão do Ubuntu para a qual é certificada, mas também não há sorte.

O chip sem fio não é detectado por lshw(ou mesmo lspcipela aparência), ip linknão mostra uma interface sem fio e o iwlwifimódulo do kernel não é carregado na inicialização (eu mesmo posso carregar isso usando, modprobe iwlwifimas isso não faz o Wi-Fi funcionar) . Eu acho que é um chip combinado de Wi-Fi / Bluetooth, e o Bluetooth parece funcionar (ou pelo menos o Bluetooth aparece no Gnome e rfkill list).

modinfo iwlwifi | grep 8265mostra-me que um arquivo que termina em -34 está supostamente carregado, mas apenas um arquivo que termina em -33 (e alguns outros números inferiores) está presente /lib/firmware, se isso ajudar).

Também instalei o kernel do Linux 4.14.9 na tentativa de fazer as coisas funcionarem, mas isso também não resolveu o problema.

Outras informações

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]

Atualizar

Acabei de notar que o laptop não possui um chip sem fio Intel, mas na verdade possui um Realtek ... o que significa que as especificações apresentadas na página do produto da loja em que comprei este laptop não eram precisas ... Suspiro. O mesmo problema permanece, no entanto, apenas com um chip sem fio de baixa qualidade.

RobinJ
fonte
1
Para futuras Googlers, eu gostaria de observar que a resposta escolhida também funciona em Linux Mint 19.1
LondonRob
O site da Lenovo especifica que ele possui uma placa WiFi Intel; portanto, se você a comprou, você tem um caso contra a loja. Veja os links da web adicionados acima para confirmação.
K7AAY
1
Isso funcionou para mim youtube.com/watch?v=vPfLVsyQU_A
Dagang
obrigado @Dagang, você salvou minhas horas. Eu tentei isso no Lenovo Ideapad 130 15ikb.
Hridaynath 11/11/19

Respostas:

15

Primeiro, sugiro que essas instruções tenham maior probabilidade de funcionar com o Ubuntu 17.10. Se você não o está executando no momento, sugiro que o reinstale.

Clique neste link para baixar o arquivo do driver: https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/endlessm/linux/tree/master/drivers/net/wireless/rtl8821ce

A menos que você tenha especificado o contrário no seu navegador, os downloads vão para o diretório Downloads . Abra um terminal e faça:

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

Role para baixo até a linha 152 e altere a linha que agora lê:

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

Para ler agora:

export TopDIR ?= $ ~/Downloads/rtl8821ce

Revise com cuidado duas vezes e salve (Ctrl + o seguido de Enter) e feche (Ctrl + x) o editor de texto.

Agora faça:

make
sudo make install
sudo modprobe 8821ce

Seu wireless agora deve estar funcionando.

EDIT: Você compilou o módulo apenas para a versão do kernel em execução no momento. Quando o Update Manager oferece uma versão posterior do kernel, conhecida como linux-image, após a reinicialização solicitada, você deve recompilar:

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

Guarde o arquivo e estas instruções durante esse período.

chili555
fonte
Também foi o que eu encontrei ontem e funcionou :) Uma coisa que estou curioso é se isso continuará funcionando nas atualizações do kernel.
RobinJ
Muito boa captura! Por favor, veja minha edição acima em alguns instantes.
chili555
Depois de editar o arquivo, tentei executar o comando make, mas isso me dá um erro. Eu corro o "make" no diretório "rtl8821ce", o erro é / bin / sh: 1 cc: não encontrado. Qualquer ideia . O make é um utilitário padrão que vem com o SO?
DILEEP THOMAS
@DILEEPTHOMAS Por favor, inicie sua própria nova pergunta.
precisa saber é o seguinte
Para mim, editar o arquivo não era necessário. Basta baixar o driver, compilar, instalar e ativar o mod, o suficiente. Obrigado!!!
Diego Andrés Díaz Espinoza
15

Este é um acompanhamento da resposta da stason , que sugere o uso de dkms .

Pelo que sei, no momento em que escrevi isso, ainda não havia um driver Wifi para o Realtek RTL8821CE nos repositórios oficiais do Ubuntu.

No github, há um repositório com um driver RTL8821CE voltado para os kernels 4.14 e acima e especificamente para o Arch Linux sem suporte para outras distros do Linux: https://github.com/tomaspinho/rtl8821ce

(Nota secundária: a partir de fevereiro de 2019, tomaspinho infelizmente não é mais capaz de manter o driver, pois ele não tem mais acesso a um computador com este chipset, portanto, um novo mantenedor pode ser necessário , mas o driver ainda funciona com o Ubuntu 18.04 como em nesse momento.)

No entanto, foi relatado que ele funciona muito bem com o Ubuntu 18.04.

Será necessária uma conexão temporária à Internet (como um cabo Ethernet , dongle USB wifi ou conectar seu telefone a um cabo USB e conectá- lo para usar o Wifi do seu telefone)

A solução é obtida diretamente do post # 4 da Praseodym (muitos elogios à sua sabedoria!): Https://ubuntuforums.org/showthread.php?t=2398917 e instalará vários pacotes para a construção do módulo do driver wifi (git , dkms, build-essential e linux-headers) e clone o repositório rtl8821ce git de tomaspinho (muitos elogios também!).

O DKMS é usado porque é "um sistema que recompila e instala automaticamente um módulo do kernel quando um novo kernel é instalado ou atualizado".


Abra um terminal e digite as seguintes linhas (você pode recortar e colar, se preferir):

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

Depois que isso for concluído com êxito, você deverá reiniciar e descobrir que o seu Wifi está funcionando.

Você também deseja garantir que o SecureBoot esteja desativado nas configurações do BIOS ou não permitirá que você carregue o módulo do kernel autoassinado não assinado.

pHeLiOn
fonte
Posso confirmar que você não precisa desativar o SecureBoot . Se você tiver o SecureBoot ativado, basta seguir as instruções durante o sudo ./dkms-install.she digite a mesma senha que você escolherá durante a reinicialização.
Niel de Wet
1
Trabalhou para mim. Economizei meu tempo.
Iftakharul Alam 15/01/19
Fantástico. Obrigado. Isso funcionou para mim.
Dr Xorile
tendo o mesmo problema ... mas pior. o idePadS145 não tem Ethernet, então nem consigo obter a instalação. Como o módulo pode ser compilado para o kernel padrão no eon: 5.3.0-18-generic?
Nico Grunfeld
2

Atualização 2018-02-27

Observe que o driver sugerido é para o Endless OS e, portanto, pode quebrar a qualquer momento. Se alguém tiver um driver oficial para o Ubuntu, será melhor.

Resposta original

Esta não é uma resposta nova, seria melhor um comentário.

Então, tentei seguir a resposta @ chili555, mas continuava recebendo erros ao tentar criar o módulo.

Erros como:

/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

Então, tentei fazer o download de uma revisão diferente ( link de download direto do arquivo zip ) que, na época da resposta original, também poderia ser mestre. Pude criar o módulo e instalar seguindo as etapas fornecidas por @ chili555

ingkevin
fonte
2

O dkms build / install para rtl8821ce pode ser encontrado aqui: https://github.com/tomaspinho/rtl8821ce

Quando você usa essa abordagem, não será necessário reconstruir o módulo sempre que o kernel for atualizado.

Acabei de construí-lo no Lenovo Idea 720s com o kubuntu 18.04.


Também sugiro que você edite Makefile para alterar o nível de log de 4 (informações) para 3 (avisos). Caso contrário, você encontrará o seu /var/log/syslogenchimento a uma velocidade louca com mensagens de informações inúteis do motorista.

Então edite Makefile, para alterar:

CONFIG_RTW_LOG_LEVEL = 4

para:

CONFIG_RTW_LOG_LEVEL = 3

e então construa e instale o módulo conforme as instruções. Se você já o instalou, precisará desinstalá-lo (usando dkms-remove.sh) e depois reinstalá-lo novamente.

Como alternativa, você pode alterar manualmente o nível do log até a próxima reinicialização com:

echo 3 > /proc/net/rtl8821ce/log_level

update: o mantenedor alterou o Makefile para refletir esta sugestão; portanto, se você fizer um novo checkout / download, ele já terá a configuração correta (silenciosa).

Stason
fonte
1

Uma solução para o erro do timer.

Consigo fazê-lo funcionar no meu lenovo E570 com o ubuntu 16.04 e aqui estão os meus passos: Primeiro, atualizo minha versão do kernel para a 4.15.4 usando este guia

Eu acredito que qualquer versão do kernel acima da 4.15.4 deve funcionar porque eu tive que atualizar meu kernel para a 4.15.9 novamente. Observe que o driver precisa ser reinstalado.

Segui as etapas mencionadas nas respostas @ chili555

Juichung_Kuo
fonte
O que você quer dizer com "instalar o driver"?
pim
Isso significa que você precisa sudo make install novamente. por favor me avise se funcionou para você e qual versão do kernel você está usando. Esse método funcionou para mim antes, mas recentemente tive que reinstalar o ubuntu várias vezes e ele parou de funcionar para mim.
Juichung_Kuo 13/03/19
A seguinte discussão inclui um controlador alternativo ao 8821ce, ligação e ele funciona para mim novamente
Juichung_Kuo
Parece que tenho exatamente a mesma máquina que você, executando o 16.04 LTS e parece estar tendo exatamente os mesmos problemas, mas sem sucesso. É possível que você publique, linha por linha, exatamente o que você fez para que a sua funcione: parece que estou girando em círculos e continuando vendo a parte de trás da minha cabeça. Arrrrgh. Obrigado.
Piloti
uh .. já faz um tempo e eu não lembro exatamente o que eu fiz para consertar isso. Mas você checou o link que eu postei acima porque contém os comandos que eu usei. Também você já tentou isso: github.com/lwfinger/rtlwifi_new
Juichung_Kuo
0

créditos para praseodym do ubuntuusers.de por este breve tutorial usando o dkms para instalar o driver, porque depois de tentar várias variantes respondidas, apenas isso funcionou para mim em um novo debian 10 instalado (buster):

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 

remoção funciona da seguinte maneira:

sudo ./dkms-remove.sh 

também foi mencionado para desabilitar a inicialização segura, mesmo antes da instalação do sistema operacional. não tenho certeza se isso faz alguma diferença, porque eu estava precisando disso em um "PC de mesa HP Slimline (290-a0512ng)", que tinha a inicialização segura desativada por padrão, verifiquei / notei após a instalação do sistema operacional.

vchrizz
fonte