Как установить драйвер wi-fi адаптера Dexp WFA-601 (RTL8811AU) на Ubuntu (обновляемый пост)

Привет. Я тут прикупил вот такой девайс:

Зачем — рассказал здесь. Предполагаю когда-нибудь заменить его нормальным PCI-E или подвести витуху, а до тех пор сойдёт и он. На коробке заявлена поддержка Linux, ценник невысок, мои требования к нему пока тоже. Главное, чтобы он работал и была антенна.

Я не могу спокойно смотреть на USB wi-fi свистульки: на коробке заявляется до 600 Мбит/сек (чем, впрочем, формально не врут), но USB2.0 даже в режиме High-Speed не может пропускать выше 480. USB-не-3.* безальтернативно будет узким горлышком при передаче данных. Этот адаптер хотя бы пару стен пробьёт, а наносвистоперделки без антенн — это просто смешно.

Дома у меня почти все компы на убунтах, посему я ожидал некоторые приключения (можно сказать, знал на что шёл при покупке). И хотя они не были увлекательными, я их прошёл и ниже даю выкладки по результатам.

Этот способ у меня сработал на Ubuntu 22.* и 23.* с абсолютно разным железом, но на 24.04 пришлось вновь гуглить решение.

Подключай донгл к компу. Сразу он у тебя, разумеется, не заработает, но система сможет увидеть, что он подключен. Чтобы это проверить, набирай команду 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. Это модель сетевого контроллера, который стоит внутри донгла. Под него мы будем ставить драйвер.

Драйвер для Ubuntu 22.04 / 22.10 / 23.04 / 23.10

Гуглёж показал, что конкретно под эту модель каких-то самостоятельных отдельных драйверов не существует, но, на самом деле, это семейство чипов, часть которых покрывается (должна?) одним и тем же драйвером. Типа, 8812AU, 8821CU и всякие такие. В целом, это, скорее, неудивительно. А на гитхабе драйверов под них просто дофига. И форков, и их форков, и форков их форков форков, и т.д. Я многие перебрал, часть не вставала, часть успешно не работала.

Мне конкретно подошёл только этот:

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

$ sudo apt install -y git build-essential make dkms
$ git clone https://github.com/aircrack-ng/rtl8812au.git --depth=1

Если на целевом компе (с донглом) нет запасного интернета (витухи нет, оптики нет, с мобилы не раздать, 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

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

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

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

UPD 19.07.24: Драйвер для Ubuntu 24.04

При обновлении с Ubuntu 23.10 на 24.04 этот драйвер слетел, а после успешной повторной установки не видел сетей.

На Ubuntu 24.04 у меня заработал этот драйвер (хоть он и старый): https://github.com/gnab/rtl8812au

Его установка точно такая же, как описано выше.

UPD 26.07.24

На указанном драйвере я начал встречать проблемы. В частности, ПК почти всегда отказывался загружаться дальше sddm с подключенным адаптером, а стоило извлечь его из USB — загружался нормально.

После загрузки и подключение адаптера всё работало, но в какие-то моменты система вела себя странно: оболочка постепенно умирала, переключение на другие tty не давало ничего. Даже в recovery-mode без оболочки было то же самое.

Я нашёл форк самого первого (aircrack-ng) с ревертом одного проблемного коммита. Нашёл и другой форк, где сделали реверт уже всего pull-request с тем же коммитом. Также issues в репе aircrack-ng

либо поставить этот форк с уже откатанным проблемным ПР:

Их установка точно такая же, как описано выше.


А вот — драйвер, который мне удалось установить, однако у меня он не заработал ни на одной версии ОС:

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

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

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


4 ответа

  1. Аватар пользователя Константин
    Константин

    Вы сэкономили мне кучу времени, спасибо.

  2. Аватар пользователя Andrey Vazhenin
    Andrey Vazhenin

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

  3. Аватар пользователя Стас
    Стас

    СПС

  4. Аватар пользователя Anton

    Большое спасибо!
    Долго парился, ваша статья очень помогла!

Добавить комментарий для Стас Отменить ответ

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

Больше записей

1C Битрикс Android API bash CentOS Delphi Docker Dropbox FOSS git gitea Google Hasee KDE Plasma Laravel Linux MySQL php PHPStorm Quake RAD Studio SSH Syncthing Ubuntu Windows Windows 10 Wordpress ВКонтакте Вейпинг Велосипед Девайсы Железо Информационная безопасность Музыка Ноутбук Перевод Разработка Реальность Резервирование Ремонт Русификация СМИ Софт Флейм Фотография и фототехника