Debian buster: установлен пакет firmware-realtek, Wi-Fi адаптер USB ключ rtl8192eu не отображается как сетевой интерфейс.

Вопрос или проблема

Я пытаюсь заставить работать Wi-Fi USB адаптер, но безуспешно. Донгл – это TP-Link WN821N, который имеет чип Realtek rtl8192eu. Я не могу его заменить и скоро потеряю проводное соединение из-за решений моего работодателя.

Когда вставляю, получаю следующий вывод из dmesg:

[12881.857485] usb 1-1.6: new high-speed USB device number 7 using ehci-pci
[12881.970614] usb 1-1.6: New USB device found, idVendor=2357, idProduct=0107, bcdDevice= 2.00
[12881.970617] usb 1-1.6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[12881.970618] usb 1-1.6: Product: 802.11n NIC
[12881.970619] usb 1-1.6: Manufacturer: Realtek
[12881.970620] usb 1-1.6: SerialNumber: 00e04c000001

и вот соответствующий вывод usb-devices:

$ usb-devices|grep -C 4 Realtek
T:  Bus=01 Lev=02 Prnt=02 Port=05 Cnt=03 Dev#=  7 Spd=480 MxCh= 0
D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=2357 ProdID=0107 Rev=02.00
S:  Manufacturer=Realtek
S:  Product=802.11n NIC
S:  SerialNumber=00e04c000001
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=500mA
I:  If#=0x0 Alt= 0 #EPs= 5 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)

однако никакого сетевого интерфейса не появляется

$ lspci -knn |grep -i net -A2
00:19.0 Ethernet controller [0200]: Intel Corporation 82579LM Gigabit Network Connection [8086:1502] (rev 04)
Subsystem: Intel Corporation 82579LM Gigabit Network Connection (Lewisville) [8086:2008]
Kernel driver in use: e1000e
Kernel modules: e1000e

также, ip a показывает только ethernet интерфейс, а iw dev не имеет вывода.

Моя необдуманная догадка заключается в том, что система не может найти драйвер для этого конкретного донгла. У меня установлен пакет firmware-realtek без бесплатного программного обеспечения:

$ dpkg -l|grep realtek
ii  firmware-realtek                              20190114-2                              all          Binary firmware for Realtek wired/wifi/BT adapters

и должно быть что-то связанное с rtl8192eu внутри:

$ dpkg -L firmware-realtek |grep rtl8192eu
/lib/firmware/rtl_bt/rtl8192eu_fw.bin
/lib/firmware/rtlwifi/rtl8192eu_nic.bin
/lib/firmware/rtlwifi/rtl8192eu_wowlan.bin

$ apt-cache show firmware-realtek|grep -i rtl8192eu
* Realtek RTL8192EU Bluetooth firmware (rtl_bt/rtl8192eu_fw.bin)
* Realtek RTl8192EU non-WoWLAN firmware (rtlwifi/rtl8192eu_nic.bin)
* Realtek RTl8192EU WoWLAN firmware (rtlwifi/rtl8192eu_wowlan.bin)

$ grep -r rtl8192eu /lib/modules/4.19.0-20-amd64/
Binary file /lib/modules/4.19.0-20-amd64/kernel/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.ko matches

однако у меня нет модуля с именем rtl8192eu:

$ sudo modprobe rtl8192eu
modprobe: FATAL: Module rtl8192eu not found in directory /lib/modules/4.19.0-20-amd64

и хотя я могу загрузить rtl8xxxu вместо него, это по-прежнему не делает никакой новый интерфейс видимым, lspci и ip a продолжают показывать только ethernet, а iw dev ничего не показывает.

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

  • Я сильно предпочитаю решение, основанное на firmware-realtek или другом поддерживаемом пакете, а не на компиляции драйверов с GitHub.
  • Я готов обновиться до Debian 11 bullseye, если потребуется, так как планировал это сделать в любом случае.
  • Интересно, были ли какие-то шаги установки, на которых я сказал, что мне никогда не понадобится Wi-Fi.

Можете помочь?

Спустя некоторое время и полное обновление до Debian bullseye, я думаю, что лучшее доступное решение – это установить модуль из этого репозитория на GitHub, который более актуален, чем fork, предложенный на этой странице Debian Wiki (архивированная версия).

Основанные на инструкциях, предложенных в readme репозитория, следующие действия сработали для меня в Debian 11.4 bullseye, Linux 5.10.0-16-amd64 #1 SMP Debian 5.10.127-2 (2022-07-23) x86_64 GNU/Linux:

sudo apt install git linux-headers-generic build-essential dkms
git clone https://github.com/Mange/rtl8192eu-linux-driver
cd rtl8192eu-linux-driver
sudo dkms add .
sudo dkms install rtl8192eu/1.0
echo "blacklist rtl8xxxu" | sudo tee /etc/modprobe.d/rtl8xxxu.conf

Не уверен, нуждается ли последняя строка, блокирующая rtl8xxxu, в исполнении. После перезагрузки драйвер загружается автоматически:

$ usb-devices|grep -C 4 Realtek

T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 0
D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=2357 ProdID=0107 Rev=02.00
S:  Manufacturer=Realtek
S:  Product=802.11n NIC
S:  SerialNumber=00e04c000001
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=500mA
I:  If#=0x0 Alt= 0 #EPs= 5 Cls=ff(vend.) Sub=ff Prot=ff Driver=rtl8192eu

$ sudo iw dev
phy#0
       Interface wlxd037458b4186
               ifindex 3
               wdev 0x1
               addr d0:37:45:8b:41:86
               ssid eduroam
               type managed
               txpower 12.00 dBm

Под buster я также добавил следующее в /etc/NetworkManager/NetworkManager.conf:

[device]
wifi.scan-rand-mac-address=no

следуя руководству вики Debian, я не уверен, нужно ли это по-прежнему.

.

Ответ или решение

Ваше устройство USB Wi-Fi с чипом Realtek rtl8192eu, представленное в виде модели TP-Link WN821N, не работает на Debian Buster. Вы внедрили пакет firmware-realtek, но отсутствует интерфейс сети Wi-Fi. Проблема состоит в том, что вы не загрузили и не установили соответствующий драйвер ядра для rtl8192eu.

Проблема

Согласно предоставленным данным, ваше устройство успешно распознается системой через dmesg, однако нет загруженного драйвера (Driver=(none) в usb-devices), а modprobe не может найти модуль для rtl8192eu.

Решение

  1. Проверка и установка Debian Bullseye. Рассмотрите возможность обновления до Debian 11 (Bullseye) для оптимальной поддержки новейших драйверов. Это может упростить процесс установки драйвера через DKMS и обновлять его наряду с ядром.

  2. Установка драйвера rtl8192eu. Поскольку для вашего устройства нету готового ядра в стандартных репозиториях Debian, для вашего чипа лучше всего использовать драйвер из определенного репозитория на GitHub. Выполните следующее:

    • Установите необходимые инструменты:

      sudo apt update
      sudo apt install git linux-headers-$(uname -r) build-essential dkms
    • Клонируйте и установите драйвер rtl8192eu:

      git clone https://github.com/Mange/rtl8192eu-linux-driver
      cd rtl8192eu-linux-driver
      sudo dkms add .
      sudo dkms install rtl8192eu/1.0
  3. Отключение модуля rtl8xxxu. Модуль rtl8xxxu может конфликтовать с пользователем, поэтому его можно занести в черный список:

    echo "blacklist rtl8xxxu" | sudo tee /etc/modprobe.d/rtl8xxxu.conf

    После этого перезагрузите систему, чтобы изменения вступили в силу.

  4. Проверка интерфейса. Убедитесь, что интерфейс Wi-Fi распознается с помощью команд iw dev и ip a. Ваш адаптер должен быть виден в списке доступных сетевых интерфейсов.

Дополнительные шаги

  • Настройка NetworkManager. В некоторых случаях может понадобиться добавление опции в конфигурационный файл NetworkManager:

    sudo nano /etc/NetworkManager/NetworkManager.conf

    Добавьте следующие строки:

    [device]
    wifi.scan-rand-mac-address=no

Эти шаги должны помочь вашему устройству обнаруживаться системой и работать должным образом. Не забывайте регулярно обновлять систему Debian и установленные пакеты для поддержания безопасной и оптимальной работы.

Оцените материал
Добавить комментарий

Капча загружается...