Как установить драйвер wi-fi адаптера Dexp WFA-601 на Ubuntu 22.04 и 22.10
Зачем — рассказал здесь. Предполагаю когда-нибудь заменить его нормальным PCI-E или подвести витуху, а до тех пор сойдёт и он. На коробке заявлена поддержка Linux, ценник невысок, мои требования к нему пока тоже. Главное, чтобы он работал и была антенна.
Я не могу спокойно смотреть на USB wi-fi свистульки: на коробке заявляется до 600 Мбит/сек (чем, впрочем, формально не врут), но USB2.0 даже в режиме High-Speed не может пропускать выше 480. USB-не-3.* безальтернативно будет узким горлышком при передаче данных. Этот адаптер хотя бы пару стен пробьёт, а наносвистоперделки без антенн — это просто смешно.
Дома у меня почти все компы на убунтах, посему я ожидал некоторые приключения (можно сказать, знал на что шёл при покупке). И хотя они не были увлекательными, я их прошёл и ниже даю выкладки по результатам.
Этот способ у меня сработал на Ubuntu 22.04 и 22.10 с абсолютно разным железом.
Подключай донгл к компу. Сразу он у тебя, разумеется, не заработает, но система сможет увидеть, что он подключен. Чтобы это проверить, набирай команду lsusb и проверяй вывод:
$ lsusb # здесь может быть большой список с разными Bus/Device, # но из этого нас интересует только такое название: Bus 001 Device 007: ID 0bda:a811 Realtek Semiconductor Corp. RTL8811AU 802.11a/b/g/n/ac WLAN Adapter
Если такая строчка есть, значит модуль определился и это хорошо. Если нет, попробуй другой USB-порт. Если не помогло, попробуй другой комп. Если не помогло, избавляйся от него и возьми что-нибудь другое.
В этой строке нас интересует конкретно вот что: RTL8811AU . Это модель сетевого контроллера, который стоит внутри донгла. Под него мы будем ставить драйвер.
Гуглёж показал, что конкретно под эту модель каких-то самостоятельных отдельных драйверов не существует, но, на самом деле, это семейство чипов, часть которых покрывается (должна?) одним и тем же драйвером. Типа, 8812AU, 8821CU и всякие такие. В целом, это, скорее, неудивительно. А на гитхабе драйверов под них просто дофига. И форков, и их форков, и форков их форков форков, и т.д. Я многие перебрал, часть не вставала, часть успешно не работала.
Иди в терминал и ставь сначала софт, который поможет получить и скомпилировать драйвер из исходников, а затем — сам драйвер:
$ sudo apt install -y git build-essential make dkms $ git clone https://github.com/aircrack-ng/rtl8812au.git
Если на целевом компе (с донглом) нет запасного интернета (витухи нет, оптики нет, с мобилы не раздать, USB-модем не алё), то драйвер можно скачать ZIP-архивом из того же репозитория, а нужное ПО для сборки — вытащить deb-ами из pkgs.org или packages.ubuntu.com, чтобы потом всё вместе перетащить флешкой и выполнить dpkg -i на каждый *.deb.
Дальше заходим в директорию с исходниками и запускаем сборку драйвера:
$ cd rtl8812au $ sudo make dkms_install
Вывод команды будет приблизительно таким:
mkdir: создан каталог '/usr/src/8812au-5.6.4.2_35491.20191025' cp -r * /usr/src/8812au-5.6.4.2_35491.20191025 dkms add -m 8812au -v 5.6.4.2_35491.20191025 Creating symlink /var/lib/dkms/8812au/5.6.4.2_35491.20191025/source -> /usr/src/8812au-5.6.4.2_35491.20191025 dkms build -m 8812au -v 5.6.4.2_35491.20191025 Kernel preparation unnecessary for this kernel. Skipping. Building module: cleaning build area. 'make' -j4 KVER=5.19.0-38-generic KSRC=/lib/modules/5.19.0-38-generic/build. Signing module: - /var/lib/dkms/8812au/5.6.4.2_35491.20191025/5.19.0-38-generic/x86_64/module/88XXau.ko This system doesn't support Secure Boot Secure Boot not enabled on this system. cleaning build area. dkms install -m 8812au -v 5.6.4.2_35491.20191025 88XXau.ko: Running module version sanity check. - Original module - No original module exists within this kernel - Installation - Installing to /lib/modules/5.19.0-38-generic/updates/dkms/ depmod. dkms status -m 8812au 8812au/5.6.4.2_35491.20191025, 5.19.0-38-generic, x86_64: installed
В моём случае, драйвер успешно собрался и установился, что видно в конце. Здесь также можно заметить версию моего ядра на текущий момент. Для драйверов это почти всегда очень важно, но я обычно следую документации и официальным мануалам, а если что не так — уже углубляюсь в суть. Тут мне сильно углубляться уже не пришлось, поэтому и тебе голову морочить не буду.
Перезагрузка не нужна. Переподключай донгл в USB и проверяй апплет с сетями: NetworkManager должен показать wi-fi-сети, который видит адаптер. Из терминала это можно проверить командой:
Утилита nmcli вообще богата, с её же помощью можно и подключиться к нужной сети без гуйни и много чего ещё.
После перезагрузки ОС драйвер будет работать сразу, но есть ненулевая вероятность, что его придётся переустанавливать из актуальной версии при смене (обновлении) ядра. Сам пока не сталкивался, может и не надо — просто не исключаю.
UPD 27.04.23: я неоднократно апгрейдил ядро из родных репозиториев штатными средствами и сегодня апгрейднул всю Ubuntu с 22.10 до 23.04 — драйвер работает, дополнительно что-то делать не пришлось.
Удалить драйвер можно командой:
находясь в той же самой директории. Также необходимо выполнять её после неудачной установки перед следующей попыткой.
Дополнительную инфу можно найти в репозитории с исходниками — там есть некоторые полезняшки.
Повторю ссылку на драйвер:
А вот драйвер, который мне удалось установить, однако у меня он не заработал: https://github.com/morrownr/8821cu-20210916
Пусть тебя не смущает другая модель контроллера в названии: по заверениям мейтейнеров, он тоже должен подойти. Мне не подошёл, но почему тогда я выделил именно его среди прочих?
- На него часто ссылаются разные источники и поэтому он стал первым, который мне попался.
- Это один из немногих, который всё ещё активно поддерживается (помимо описанного выше).
- В нём есть гора полезной технической (и не только) инфы по самому драйверу (и не только).
Попробуй, может быть у тебя получится поднять и этот драйвер. Инструкции там описаны.
Установка драйвера USB WiFi адаптера в Linux (на примере DEXP WFA-601)
В связи с переездом и нежеланием захламлять дом проводами повесил в прихожей роутер, а для компьютера купил Wi-Fi адаптер DEXP WFA-601.
Пока работал в Windows 10 проблем не было. Однако сгоревший жесткий диск подтолкнул меня к установке Linux (конкретно Kubuntu).
Путь веры
Захожу на официальный сайт производителя и скачиваю драйвер для любой ОС. Результат предсказуем: Linux != «любая ОС».
Роюсь в коробочках и нахожу родной CD-диск от адаптера. Скачиваю драйвер, нахожу «install.sh»:
$ chmod a+x install.sh $ sudo ./install.sh
Драйвер не компилируется, вылетает с ошибкой.
cc1: error: code model kernel does not support PIC mode
Не буду тратить время на описание, боя с ней. В гугле нашел советы персобирать ядро, пересобирать gcc… В общем мой уровень не позволяет такие сложности.
Путь разума
Первым делом решил проверить видит ли железку ядро. Вытаскиваю адаптер и втыкаю его в соседний разъем.
. [ 1498.558445] usb 1-1.1: new high-speed USB device number 6 using ehci-pci [ 1498.667540] usb 1-1.1: New USB device found, idVendor=0bda, idProduct=a811 [ 1498.667544] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 1498.667546] usb 1-1.1: Product: 802.11ac WLAN Adapter [ 1498.667548] usb 1-1.1: Manufacturer: Realtek [ 1498.667550] usb 1-1.1: SerialNumber: 00e04c000001
Ищу название драйвера на лазерном диске от производителя, вот оно: RTL8821AU_Linux_v5.2.6.3_25025_COEX20171103-6c6d.20171106.
Подключаю смартфон в режиме модема и пробую в лоб:
sk@ds:~$ sudo apt install realtek-88xxau-dkms [sudo] password fоr sk: Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово E: Невозможно найти пакет realtek-88xxau-dkms
Видимо репозиторий моего дистрибутива к такому не готов. Захожу на гитхаб и качаю исправленную версию драйвера.
Распаковываю, нахожу dkms-install.sh, запускаю его. Драйвер установлен.
Не будучи гуру linux не стал разбираться с остановкой и запуском адаптера, ввел:
Установка драйвера USB WiFi адаптера в Linux (на примере DEXP WFA-601)
В связи с переездом и нежеланием захламлять дом проводами повесил в прихожей роутер, а для компьютера купил Wi-Fi адаптер DEXP WFA-601.
Пока работал в Windows 10 проблем не было. Однако сгоревший жесткий диск подтолкнул меня к установке Linux (конкретно Kubuntu).
Путь веры
Захожу на официальный сайт производителя и скачиваю драйвер для любой ОС. Результат предсказуем: Linux != «любая ОС».
Роюсь в коробочках и нахожу родной CD-диск от адаптера. Скачиваю драйвер, нахожу «install.sh»:
$ chmod a+x install.sh $ sudo ./install.sh
Драйвер не компилируется, вылетает с ошибкой.
cc1: error: code model kernel does not support PIC mode
Не буду тратить время на описание, боя с ней. В гугле нашел советы персобирать ядро, пересобирать gcc… В общем мой уровень не позволяет такие сложности.
Путь разума
Первым делом решил проверить видит ли железку ядро. Вытаскиваю адаптер и втыкаю его в соседний разъем.
. [ 1498.558445] usb 1-1.1: new high-speed USB device number 6 using ehci-pci [ 1498.667540] usb 1-1.1: New USB device found, idVendor=0bda, idProduct=a811 [ 1498.667544] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 1498.667546] usb 1-1.1: Product: 802.11ac WLAN Adapter [ 1498.667548] usb 1-1.1: Manufacturer: Realtek [ 1498.667550] usb 1-1.1: SerialNumber: 00e04c000001
Ищу название драйвера на лазерном диске от производителя, вот оно: RTL8821AU_Linux_v5.2.6.3_25025_COEX20171103-6c6d.20171106.
Подключаю смартфон в режиме модема и пробую в лоб:
sk@ds:~$ sudo apt install realtek-88xxau-dkms [sudo] password fоr sk: Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово E: Невозможно найти пакет realtek-88xxau-dkms
Видимо репозиторий моего дистрибутива к такому не готов. Захожу на гитхаб и качаю исправленную версию драйвера.
Распаковываю, нахожу dkms-install.sh, запускаю его. Драйвер установлен.
Не будучи гуру linux не стал разбираться с остановкой и запуском адаптера, ввел: