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

19

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

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

Беспроводной чип не обнаруживается lshw(или даже lspciвыглядит), ip linkне показывает беспроводной интерфейс, и iwlwifiмодуль ядра не загружается при загрузке (я могу загрузить его сам, используя, 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 ... что означает, что спецификации, представленные на странице продукта магазина, в котором я купил этот ноутбук, не были точными ... Вздох. Однако та же проблема стоит только с более хрупким беспроводным чипом.

RobinJ
источник
1
Что касается будущих пользователей Google, я хотел бы отметить, что выбранный ответ также работает на Linux Mint 19.1
LondonRob
На веб-сайте Lenovo указано, что у него есть карта Intel WiFi, поэтому, если вы купили ее, вы имеете дело с магазином. См. Ссылки, добавленные выше, для подтверждения.
K7AAY
1
Это работает для меня youtube.com/watch?v=vPfLVsyQU_A
Даган
спасибо @Dagang, ты сэкономил мои часы. Я попробовал это на Lenovo IdeaPad 130 15ikb.
Hridaynath

Ответы:

17

Во-первых, я бы предположил, что эти инструкции более вероятно будут работать с 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

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

chili555
источник
Это то, что я обнаружил и вчера, и это сработало :) Одна вещь, которая меня интересует, это то, будет ли это работать при обновлении ядра.
RobinJ
Очень хороший улов! Пожалуйста, посмотрите мои изменения выше через несколько минут.
chili555
после редактирования файла я попытался запустить команду make, но она выдает ошибку. я запускаю "make" в каталоге "rtl8821ce", ошибка: / bin / sh: 1 cc: not found. Любая идея . Утилита make default поставляется с ОС?
DILEEP THOMAS
@DILEEPTHOMAS Пожалуйста, начните свой новый вопрос.
chili555
Для меня редактировать файл не было необходимости. Просто скачайте драйвер, установите и активируйте мод, где достаточно. Благодарность!!!
Диего Андрес Диас Эспиноза
17

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

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

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

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

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

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

Решение принимается непосредственно из почтового # 4 по Praseodym (похвалой их мудрости!): Https://ubuntuforums.org/showthread.php?t=2398917 и установить несколько пакетов для построения модуля драйвера WiFi (мерзавца , DKMS, наращивание необходимо и Linux-Headers) и Клонирование rtl8821ce мерзавец хранилище от 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 , или это не позволит вам загрузить неподписанный модуль ядра самостоятельно подчинился.

pHeLiOn
источник
Я могу подтвердить, что вам не нужно отключать SecureBoot . Если у вас включена функция SecureBoot, просто следуйте инструкциям во время sudo ./dkms-install.shи введите тот же пароль, который вы выберете при перезагрузке.
Ниль де Мок
1
Работал на меня. Сэкономил мое время
Ифтахарул Алам
Фантастический. Спасибо. Это сработало для меня.
Доктор Xorile
с той же проблемой ... но хуже всего. idePadS145 не имеет Ethernet, так что я не могу даже установить apt-get. Как собрать модуль для ядра по умолчанию в eon: 5.3.0-18-generic?
Нико Грюнфельд
2

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

Обратите внимание, что предлагаемый драйвер предназначен для Endless OS, и поэтому он может сломаться в любой момент. Если у какого-либо тела есть официальный драйвер для 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

ingkevin
источник
2

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

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

Stason
источник
1

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

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

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

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

Juichung_Kuo
источник
Что вы подразумеваете под «установкой драйвера»?
Пим
Это означает, что вам нужно снова выполнить sudo make install. пожалуйста, дайте мне знать, сработало ли это для вас и какую версию ядра вы используете. Этот метод работал у меня раньше, но недавно мне пришлось переустанавливать Ubuntu несколько раз, и он перестал работать для меня.
Juichung_Kuo
Следующая ветка включает альтернативный драйвер для 8821ce, ссылку, и она снова работает для меня
Juichung_Kuo
Кажется, у меня точно такая же машина, как и у вас, работает 16.04 LTS и, похоже, возникают те же проблемы, но безуспешно. Можно ли постить построчно размещать именно то, что вы сделали, чтобы заставить свою работу работать: я, кажется, хожу по кругу и продолжаю видеть затылок. Arrrrgh. Благодарю.
Пилоти
эээ ... это было давно, и я не помню точно, что я сделал, чтобы это исправить. Но вы проверили ссылку, которую я разместил выше, потому что она содержит какие команды я использовал. также вы пробовали это: github.com/lwfinger/rtlwifi_new
Juichung_Kuo
0

кредиты praseodym из ubuntuusers.de для этого короткого руководства с использованием dkms для установки драйвера, потому что после попытки нескольких вариантов ответа, только это сработало для меня на свежем установленном Debian 10 (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 

удаление работает следующим образом:

sudo ./dkms-remove.sh 

было также упомянуто, чтобы в конечном итоге отключить безопасную загрузку, даже до установки ОС. не уверен, что это имеет значение, потому что мне это нужно на «Настольном ПК HP Slimline (290-a0512ng)», у которого по умолчанию отключена безопасная загрузка, которую я установил после установки ОС.

vchrizz
источник