Как установить драйвер 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 и всякие такие. В целом, это, скорее, неудивительно. А на гитхабе драйверов под них просто дофига. И форков, и их форков, и форков их форков форков, и т.д. Я многие перебрал, часть не вставала, часть успешно не работала.

Мне конкретно подошёл только этот: https://github.com/aircrack-ng/rtl8812au (моё зеркало)

Иди в терминал и ставь сначала софт, который поможет получить и скомпилировать драйвер из исходников, а затем — сам драйвер:

$ 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 dev wifi

Утилита nmcli вообще богата, с её же помощью можно и подключиться к нужной сети без гуйни и много чего ещё.

После перезагрузки ОС драйвер будет работать сразу, но есть ненулевая вероятность, что его придётся переустанавливать из актуальной версии при смене (обновлении) ядра. Сам пока не сталкивался, может и не надо — просто не исключаю.

UPD 27.04.23: я неоднократно апгрейдил ядро из родных репозиториев штатными средствами и сегодня обновил всю Ubuntu с 22.10 до 23.04 — драйвер работает, дополнительно что-то делать не пришлось.

Удалить драйвер можно командой:

sudo make dkms_remove

находясь в той же самой директории. Также необходимо выполнять её после неудачной установки перед следующей попыткой.

Дополнительную инфу можно найти в репозитории с исходниками — там есть некоторые полезняшки.

Повторю ссылку на драйвер:


А вот — драйвер, который мне удалось установить, однако у меня он не заработал: https://github.com/morrownr/8821cu-20210916

Пусть тебя не смущает другая модель контроллера в названии: по заверениям мейтейнеров, он тоже должен подойти. Мне не подошёл, но почему тогда я выделил именно его среди прочих?

  • На него часто ссылаются разные источники и поэтому он стал первым, который мне попался.
  • Это один из немногих, который всё ещё активно поддерживается (помимо описанного выше).
  • В нём есть гора полезной технической (и не только) инфы по самому драйверу (и не только).

Попробуй, может быть у тебя получится поднять и этот драйвер. Инструкции там описаны.

3 комментария

  1. Спасибо за подробную инструкцию!) Драйвер все-таки слетел в какой-то момент, помогла переустановка.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *