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

Зачем — рассказал здесь. Предполагаю когда-нибудь заменить его нормальным 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/aircrack-ng/rtl8812au
- моё зеркало: https://git.axenov.dev/anthony/rtl8812au (обновляется ежедневно каждые 8 часов)
А вот — драйвер, который мне удалось установить, однако у меня он не заработал: https://github.com/morrownr/8821cu-20210916
Пусть тебя не смущает другая модель контроллера в названии: по заверениям мейтейнеров, он тоже должен подойти. Мне не подошёл, но почему тогда я выделил именно его среди прочих?
- На него часто ссылаются разные источники и поэтому он стал первым, который мне попался.
- Это один из немногих, который всё ещё активно поддерживается (помимо описанного выше).
- В нём есть гора полезной технической (и не только) инфы по самому драйверу (и не только).
Попробуй, может быть у тебя получится поднять и этот драйвер. Инструкции там описаны.
Вы сэкономили мне кучу времени, спасибо.