Wi-Fi не работает на Lenovo ThinkPad E570 (Realtek RTL8821CE)

Мы только что купили Lenovo ThinkPad E570 (который должен иметь Intel 8265 для беспроводной связи). Этот ноутбук был куплен частично потому, что он сертифицирован для работы с Ubuntu, и, по крайней мере, для меня было бы целесообразно, чтобы все работало «из коробки» ... но не повезло.

Сначала я установил Ubuntu 17.10 и после установки понял, что Wi-Fi не работает. Я также пробовал Ubuntu 16.04 с USB-накопителя, так как это версия Ubuntu, для которой он сертифицирован, но там тоже не повезло.

Беспроводной чип не обнаружен lshw (или даже lspci по внешнему виду), ip link не показывает беспроводной интерфейс, и модуль ядра iwlwifi не загружается при загрузке (I Я могу загрузить это сам, используя modprobe iwlwifi, но это не делает работу Wi-Fi). Я думаю, что это комбинированный чип Wi-Fi / Bluetooth, и Bluetooth действительно работает (или, по крайней мере, Bluetooth появляется в Gnome и rfkill list).

modinfo iwlwifi | grep 8265 показывает, что файл, оканчивающийся на -34, предположительно загружен, но только файл, оканчивающийся на -33 (и некоторые другие меньшие числа), присутствует в /lib/firmware, если это помогает).

Я также установил ядро ​​Linux 4.14.9, пытаясь заставить вещи работать, но это также не решило проблему.

Дополнительная информация

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]

Обновление

Я только что заметил, что у ноутбука вообще нет беспроводного чипа Intel, но на самом деле есть чип Realtek ... что означает, что спецификации, представленные на странице продукта магазина, в котором я купил этот ноутбук, не были точными ... Вздох. Однако та же проблема стоит только с более хрупким беспроводным чипом.

12
задан 03.08.2019, 10:59

5 ответов

Во-первых, я бы предположил, что эти инструкции с большей вероятностью будут работать с Ubuntu 17.10. Если вы не используете его сейчас, я советую переустановить его.

Нажмите на эту ссылку, чтобы загрузить файл драйвера: https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/endlessm/linux/tree/master/drivers / net / wireless / rtl8821ce

Если в браузере не указано иное, загрузки идут в каталог Загрузки . Откройте терминал и выполните:

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

Прокрутите вниз до строки 152 и измените строку, которая теперь выглядит следующим образом:

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

Чтобы теперь читать:

export TopDIR ?= $ ~/Downloads/rtl8821ce

Внимательно проверьте, дважды, и сохраните (Ctrl + o, затем Enter) и закройте (Ctrl + x) текстовый редактор.

Теперь сделайте:

make
sudo make install
sudo modprobe 8821ce

Теперь ваша беспроводная сеть должна работать.

РЕДАКТИРОВАТЬ: Вы скомпилировали модуль только для текущей версии ядра. Когда Update Manager предлагает более позднюю версию ядра, известную как linux-image, после запрошенной перезагрузки, вы должны перекомпилировать:

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

Пожалуйста, сохраните файл и эти инструкции на это время.

15
ответ дан 25.09.2019, 10:55
  • 1
    Это то, что я обнаружил и вчера, и это сработало :) Одна вещь, которая меня интересует, это то, будет ли это работать при обновлении ядра. – CJBS 30.12.2017, 22:32
  • 2
    Очень хороший улов! Пожалуйста, посмотрите мои изменения выше через несколько минут. – CJBS 31.12.2017, 03:18
  • 3
    после редактирования файла я попытался запустить команду make, но она выдает ошибку. я запускаю «сделать» в "rtl8821ce"; каталог, ошибка / bin / sh: 1 cc: не найдено. Любая идея . Утилита make default поставляется с ОС? – Peter Mortensen 18.09.2018, 20:15
  • 4
    @DILEEPTHOMAS Пожалуйста, начните свой новый вопрос. – bergmeister 19.09.2018, 01:56
  • 5
    Для меня редактировать файл не было необходимости. Просто скачайте драйвер, установите и активируйте мод, где достаточно. Спасибо!!! – Peter Mortensen 26.12.2018, 05:01

dkms build / install для rtl8821ce можно найти здесь: https://github.com/tomaspinho/rtl8821ce

Когда вы используете этот подход, вам не нужно будет перестраивать модуль каждый раз, когда ядро ​​обновляется.

Я только что собрал его на Lenovo Idea 720s с kubuntu 18.04.


Также я предлагаю вам отредактировать Makefile , чтобы изменить уровень журнала с 4 (информация) на 3 (предупреждения). В противном случае вы обнаружите, что ваш /var/log/syslog наполняется сумасшедшей скоростью бесполезными информационными сообщениями от водителя.

Поэтому отредактируйте Makefile, чтобы изменить:

CONFIG_RTW_LOG_LEVEL = 4

на:

CONFIG_RTW_LOG_LEVEL = 3

, а затем соберите и установите модуль в соответствии с инструкциями. Если вы уже установили его, вам нужно удалить его (используя dkms-remove.sh), а затем заново установить его.

В качестве альтернативы вы можете вручную изменить уровень журнала до следующей перезагрузки с помощью:

echo 3 > /proc/net/rtl8821ce/log_level

update: сопровождающий изменил Makefile , чтобы отразить это предложение, поэтому, если вы сделаете новую проверку / загрузить его уже будет иметь правильную (тихую) настройку.

1
ответ дан 25.09.2019, 10:55

Обновление 2018-02-27

Обратите внимание, что предлагаемый драйвер предназначен для бесконечной ОС , поэтому он может сломаться в любой момент. Если у какого-либо тела есть официальный драйвер для Ubuntu, это будет лучше.

Оригинальный ответ

Это не новый ответ, лучше комментарий.

Поэтому я попытался следовать ответу @ chili555, но продолжал получать ошибки, пытаясь создать модуль.

Ошибки вроде:

/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

Поэтому я попытался загрузить другую ревизию ( прямая ссылка на скачивание zip-архива ), которая к моменту первоначального ответа могла будь мастером. Затем я смог сделать модуль и установить, следуя инструкциям @ chili555

2
ответ дан 25.09.2019, 10:55

Это продолжение ответа Стасона , который предлагает использовать dkms .

Насколько я могу судить, на момент написания этого документа в официальных репозиториях Ubuntu еще не было драйвера Wifi для Realtek RTL8821CE.

В github есть репозиторий с драйвером RTL8821CE, предназначенный для ядер 4.14 и выше и специально для Arch Linux, без поддержки других дистрибутивов Linux: https://github.com/tomaspinho/rtl8821ce

(Небольшое примечание: по состоянию на февраль 2019 г. tomaspinho, к сожалению, больше не может поддерживать драйвер , поскольку у него больше нет доступа к компьютеру с этим чипсетом, и поэтому a может потребоваться новый сопровождающий , но драйвер все еще работает с Ubuntu 18.04, как и в то время.)

Однако сообщалось, что он прекрасно работает с Ubuntu 18.04.

Потребуется временное подключение к Интернету (например, сетевой кабель , USB-адаптер Wi-Fi или подключение телефона с помощью USB-кабеля и «»). 1110] 'это использовать Wi-Fi вашего телефона)

Решение взято непосредственно из поста # 4 Praseodym (большая похвала их мудрости!) : https://ubuntuforums.org/showthread.php?t=2398917 и установит ряд пакетов для сборки модуля драйвера wifi (git, dkms, build-essential & amp; linux- заголовки) и клонируйте репозиторий rtl8821ce из git из tomaspinho (также хвала!)

DKMS используется потому, что это «система, которая автоматически перекомпилирует и устанавливает модуль ядра при установке или обновлении нового ядра».


Откройте терминал и введите следующие строки (Вы можете вырезать и вставить, если хотите):

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

После того, как это успешно завершено, вы должны перезагрузиться и обнаружить, что ваш Wi-Fi работает.

Вы также хотите убедиться, что SecureBoot отключен в настройках BIOS, или он не позволит вам загрузить неподписанный модуль ядра с самодостаточностью.

10
ответ дан 25.09.2019, 10:55
  • 1
    Я могу подтвердить, что вам не нужно отключать SecureBoot . Если у вас включен SecureBoot , просто следуйте инструкциям в течение sudo ./dkms-install.sh и введите тот же пароль, который вы выберете при перезагрузке. – Chan Kim 02.12.2018, 00:26
  • 2
    Работал на меня. Сэкономил мое время – Peter Mortensen 15.01.2019, 19:06

Решение для ошибки таймера.

Мне удается заставить его работать на моем lenovo E570 с Ubuntu 16.04, и вот мои шаги: во-первых, я обновляю версию своего ядра до 4.15.4, используя это руководство

Я считаю, любая версия ядра выше 4.15.4 должна работать, потому что мне пришлось снова обновить ядро ​​до 4.15.9. Обратите внимание, что драйвер необходимо переустановить.

Затем я выполнил шаги, упомянутые в ответах @ chili555

.
1
ответ дан 25.09.2019, 10:55
  • 1
    Что вы подразумеваете под «установкой драйвера»? – Peter Mortensen 13.03.2018, 17:44
  • 2
    Это означает, что вам нужно сделать sudo make install снова. пожалуйста, дайте мне знать, работает ли он у вас и какую версию ядра вы используете. Этот метод работал для меня раньше, но недавно мне пришлось переустанавливать Ubuntu несколько раз, и он перестал работать для меня. – selladurai 14.03.2018, 09:58
  • 3
    Следующий поток включает альтернативный драйвер для 8821ce, ссылка , и он снова работает для меня – Alireza Noorali 18.03.2018, 09:06
  • 4
    Кажется, у меня точно такая же машина, как и у вас, работающая 16.04 LTS, и, похоже, у меня точно такие же проблемы, но безуспешно. Можно ли постить построчно размещать именно то, что вы сделали, чтобы заставить свою работу работать: я, кажется, хожу по кругу и продолжаю видеть затылок Arrrrgh. Благодарю. – selladurai 23.01.2019, 08:50
  • 5
    э-э ... это было давно, и я не помню точно, что я сделал, чтобы это исправить. Но вы проверили ссылку, которую я разместил выше, потому что она содержит какие команды я использовал. также вы пробовали это: github.com/lwfinger/rtlwifi_new – Ryan Stewart 29.01.2019, 10:52

Теги

Похожие вопросы