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

5

Acabamos de comprar um Lenovo ThinkPad E570 (que deve ter o Intel 8265 para wireless). Este laptop foi comprado em parte porque é certificado para rodar o Ubuntu e, como tal, para mim, pelo menos, faria sentido que as coisas funcionassem fora da caixa ... mas sem 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 um drive USB, já que é a versão do Ubuntu para a qual ele é certificado, mas também não tem sorte.

O chip sem fio não é detectado por lshw (ou mesmo lspci pela aparência dele), ip link não mostra uma interface sem fio e o módulo iwlwifi do kernel não é carregado na inicialização (I pode carregar isso sozinho usando modprobe iwlwifi , mas isso não faz o Wi-Fi funcionar). Eu acho que é um chip combinado Wi-Fi / Bluetooth, e o Bluetooth parece funcionar (ou pelo menos o Bluetooth aparece no Gnome e rfkill list ).

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

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

Mais 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

Eu só notei que o laptop não tem um chip sem fio Intel, mas na verdade tem um Realtek ... o que significa que as especificações apresentadas na página do produto da loja que eu comprei este laptop não eram precisas ... suspiro. O mesmo problema permanece, no entanto, apenas com um chip sem fio mais difícil.

    
por RobinJ 29.12.2017 / 00:11

5 respostas

7

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

Clique neste link para baixar o arquivo do driver: link

A menos que você tenha especificado o contrário em 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

Desloque-se para a linha 152 e altere a linha que agora se lê:

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

Para ler agora:

export TopDIR ?= $ ~/Downloads/rtl8821ce

Revise cuidadosamente, 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 para sua versão de kernel atualmente em execução apenas. 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

Por favor, guarde o arquivo e estas instruções para esse tempo.

    
por chili555 29.12.2017 / 15:52
2

Atualização 2018-02-27

O driver sugerido é para o Endless OS e, portanto, pode ser interrompido a qualquer momento. Se algum corpo tiver um driver oficial para o Ubuntu, será melhor.

Resposta Original

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

Então eu tentei seguir @ chili555 resposta, mas continuei recebendo erros ao tentar fazer 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, no momento da resposta original, também pode ser mestre. Então eu consegui fazer o módulo e instalar seguindo os passos fornecidos pelo @ chili555

    
por ingkevin 05.02.2018 / 01:26
1

Uma solução para o erro do temporizador.

Eu consegui fazer funcionar para o meu lenovo E570 com o Ubuntu 16.04 e aqui estão os meus passos: Primeiro, atualizo a versão do meu kernel para o 4.15.4 usando este guia

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

Depois, segui os passos mencionados em @ chili555 answers

    
por Juichung_Kuo 13.03.2018 / 00:10
1

Este é um seguimento da resposta do stason que sugere o uso de dkms .

Tanto quanto eu posso dizer, no momento em que escrevo isto, ainda não há 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 nenhum suporte fornecido para outras distribuições Linux: link

Foi, no entanto, relatado que funciona muito bem com o Ubuntu 18.04.

Será necessária uma conexão temporária à Internet (como cabo ethernet , dongle USB wifi ou conectando seu telefone com um cabo usb e ' tethering 'para usar o Wifi do seu telefone)

A solução é tirada diretamente da postagem # 4 por Praseodym (muito elogio à sabedoria deles!): link e irá instalar um número de pacotes para construir o módulo do driver wifi (git, dkms, build-essential & amp; linux-headers) e clone o rtl8821ce repositório git de tomaspinho (muito elogio também!).

O DKMS é usado porque é "um sistema que recompilará e instalará automaticamente um módulo do kernel quando um novo kernel for 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 sucesso, você deve reiniciar e descobrir que o seu Wifi está funcionando.

Você também quer garantir que o SecureBoot esteja Disabled nas configurações da BIOS ou não permitirá que você carregue o módulo do kernel autônomo não assinado.

    
por pHeLiOn 02.09.2018 / 12:30
1

O dkms build / install para rtl8821ce pode ser encontrado aqui: link

Ao usar essa abordagem, você não precisará 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 o Makefile para alterar o nível de log de 4 (informações) para 3 ( avisos). Caso contrário, você encontrará seu /var/log/syslog enchendo-se a uma velocidade louca com mensagens informativas inúteis do driver.

Então edite o Makefile, para alterar:

CONFIG_RTW_LOG_LEVEL = 4

para:

CONFIG_RTW_LOG_LEVEL = 3

e, em seguida, construa e instale o módulo de acordo com as instruções. Se você já o instalou, precisará desinstalá-lo (usando dkms-remove.sh ) e reinstalá-lo novamente.

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

echo 3 > /proc/net/rtl8821ce/log_level

update: o mantenedor alterou o Makefile para refletir essa sugestão, por isso, se você fizer um novo checkout / download, ele já tem a configuração certa (silenciosa).

    
por stason 22.08.2018 / 10:48