Адаптер Wi-Fi не найден в ubuntu 18.04; нет драйверов для устройства rtl8822ce

Обновление

Ниже мой исходный вопрос с дополненной информацией. Первоначально я думал, что мое оборудование - это чип rtl8821ce, но, сравнив вывод lspci с в этом посте , похоже, что беспроводное устройство, которое у меня есть, на самом деле является чипом 8822ce. Ранее заголовок этого вопроса не отражал этого факта, поэтому я его отредактировал.


У меня есть проблема, которую я не могу решить, и я был бы признателен за помощь. У меня новый ноутбук Lenovo IdeaPad, на который я недавно установил Ubuntu 18.04.4. К сожалению, Ubuntu не распознает мой Wi-Fi, говоря: «Адаптер Wi-Fi не найден».

Некоторые результаты:

lspci -nnk | grep 0280 -A3 :

01:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:c82f]
    Subsystem: Lenovo Device [17aa:c02f]

rfkill list all :

0: ideapad_wlan: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: ideapad_bluetooth: Bluetooth
    Soft blocked: yes
    Hard blocked: no
5: hci0: Bluetooth
    Soft blocked: yes
    Hard blocked: no

sudo lshw -C network

  *-network UNCLAIMED       
   description: Network controller
   product: Realtek Semiconductor Co., Ltd.
   vendor: Realtek Semiconductor Co., Ltd.
   physical id: 0
   bus info: pci@0000:01:00.0
   version: 00
   width: 64 bits
   clock: 33MHz
   capabilities: pm msi pciexpress cap_list
   configuration: latency=0
   resources: ioport:4000(size=256) memory:93000000-9300ffff

Интересно отметить, что в выводах аналогичных команд в других сообщениях сетевой адаптер показывает: " RTL8821CE ", а мой вывод - нет.

Что я пробовал до сих пор:

Сначала я попытался установить rtl8821ce-dkms следующим образом:

sudo apt-get install rtl8821ce-dkms
sudo modprobe rtl8821ce
sudo modprobe -r ideapad_laptop

И я дополнительно отключил безопасную загрузку в BIOS. Это не подействовало. Ubuntu по-прежнему выдает то же сообщение.

Затем я попытался установить драйвер прямо с tomaspinho GitHub, вот так (после удаления rtl8821ce-dkms):

sudo apt-get install git dkms build-essential linux-headers-$(uname -r)
cd /usr/local/src/
sudo git clone https://github.com/tomaspinho/rtl8821ce
cd rtl8821ce/
sudo chmod +x dkms-install.sh
sudo chmod +x dkms-remove.sh
sudo ./dkms-install.sh
sudo modprobe 8821ce

Опять же, это не дало результата. Ubuntu по-прежнему выдает то же сообщение.

Интересно, что теперь при запуске dmesg | grep -i 8821 , я получаю:

[   94.460377] 8821ce: loading out-of-tree module taints kernel.
[   94.461221] 8821ce: module verification failed: signature and/or required key missing - tainting kernel

Я подозреваю, что, возможно, мое оборудование не поддерживается этим драйвером . Может ли кто-нибудь помочь мне понять, что мне нужно сделать, чтобы решить эту проблему «Нет адаптера Wi-Fi»?

Дополнительные попытки:

Как было предложено здесь , я попытался обновить версию ] linux-firmware на моей машине. Я пробовал несколько разных версий, но ни одна не работала . Что я сделал:

wget http://security.ubuntu.com/ubuntu/pool/main/l/linux-firmware/linux-firmware_<version>_all.deb
sudo dpkg -i linux-firmware_<version>_all.deb

, где " ", которые я пробовал, были:

  • 1.173.16 (который, похоже, был последним измененным на сервере).
  • 1.178
  • 1.186 (последняя на данный момент версия).

Я все еще получаю сообщение «Нет адаптера Wi-Fi».

0
задан 13 March 2020 в 01:09

3 ответа

Наконец-то я нашел решение! (благодаря ответу на этой странице).

Оказывается, драйвер, который должен поддерживать мое оборудование (rtw88), был доступен и совместим с этим оборудованием уже в ядре > 5.2 (у меня было 5.3.0-46-generic), но он не настроен на распознавание моего оборудования. Чтобы решить эту проблему, мне пришлось скомпилировать ядро ​​Linux с небольшой модификацией исходного кода (шаг 2 в решении ниже). Вот что я сделал:

1) Получите исходный код Linux по вашему выбору. В моем случае я использовал основное ядро:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

2) найдите файл: ./linux/drivers/net/wireless/realtek/rtw88/pci.c и отредактируйте его. Найдите строку '0xC822' и замените ее на '0xC82F'

3). Продолжайте компилировать ядро ​​по инструкции. Для полноты моего ответа вот что я сделал:

  1. перейдите в папку ./linux.

  2. Использовать конфигурации из текущего ядра: cp /boot/config-$(uname -r) .config

  3. make menuconfig. Здесь есть много вариантов для настройки. Лучше всего оставить их как есть (сохранить и выйти).
  4. Компиляция и установка:

    i) make или make -j8 (чтобы использовать 8 параллельных потоков вместо одного). Это займет некоторое время...

    ii) sudo make modules_install.

    iii) sudo make install

  5. Включить загрузку ядра:

    i) sudo update-initramfs -c -k 5.7.0-rc1+. Конечно, используйте установленную версию ядра (в моем случае 5.7.0-rc1+). Если вы не уверены в версии ядра: "ls /lib/modules/" и посмотрите, какие модули ядра установлены.

    ii) sudo update-grub

Все. Перезагрузитесь и обязательно загрузитесь в новое ядро. Теперь Wi-Fi должен работать.

5
ответ дан 19 April 2020 в 08:12

Я нашел видео YouTube на канале Amine Tech, в котором есть решение этой проблемы. Видео: https://www.youtube.com/watch?v=vPfLVsyQU_A

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

Подключите устройство к проводной сети или используйте модем для подключения устройства к Интернету, затем откройте Терминал и введите следующие команды:

sudo apt update
sudo apt install -y dkms git
git clone https://github.com/tomaspinho/rtl8821ce.git

Отключитесь от любых сетей, к которым вы подключены, затем введите следующие команды:

cd rtl8821ce
sudo ./dkms-install.sh
sudo modprobe 8821ce
iwconfig

Теперь у вас должна быть возможность подключиться через Wi-Fi.

3
ответ дан 18 April 2020 в 16:28

С Lenovo Ideapad S145-15iil и rtl 8822ce я использовал это: https://github.com/lwfinger/rtlwifi_new, что в основном означает:

git clone http://github.com/lwfinger/rtlwifi_new.git -b rtw88

и в pci.c я заменил «0xC822» на «0xC82F». Затем make clean, make, make install (как root), затем modprobe rtwpci (он автоматически загружает rtw88) и сделал: echo rtwpci >> /etc/modules для автоматической загрузки модуля при загрузке.

Предупреждение: Несмотря на то, что это было сделано успешно, SSID были видны, но по-прежнему невозможно было связать их с SSID. Это в Ubuntu 20.04 с WPA2, но также и с открытыми сетями. Сообщение было:

wlp1s0: SME: Deauth request to the driver failed
1
ответ дан 7 May 2020 в 12:32

Другие вопросы по тегам:

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