RTL8812AU: Устанавливаем драйвер для USB WIFI.

Установка, настройка, эксплуатация.

Модератор: ROOT

RTL8812AU: Устанавливаем драйвер для USB WIFI.

Сообщение ROOT » 19 дек 2020, 13:03

Оглавление


Темы
 RTL8812AU: установка драйвера для USB Wi-Fi адаптера на Fedora 
 RTL8812AU — устранение ошибок DKMS и сборки 



 RTL8812AU: установка драйвера для USB Wi-Fi адаптера на Fedora 
Введение
Некоторые USB Wi-Fi адаптеры на чипах Realtek (в частности RTL8812AU, RTL8814AU и RTL8821AU) не поддерживаются стандартными драйверами ядра Linux.
Для Fedora потребуется установка внешнего модуля, собранного из исходников с GitHub. Ниже приведён пример установки через DKMS для Fedora 40+.


1. Подготовка системы
Перед началом убедитесь, что установлены инструменты сборки и DKMS.
  1. Установим зависимости:
    Код: выделить все
    sudo dnf install git dkms kernel-devel kernel-headers make gcc
  2. Проверим текущую версию ядра:
    Код: выделить все
    uname -r

    (важно, чтобы пакеты `kernel-devel` и `kernel-headers` соответствовали установленному ядру)
  3. Убедимся, что DKMS активен:
    Код: выделить все
    systemctl status dkms


2. Загрузка исходников драйвера
Актуальные исходники поддерживаются в репозитории `aircrack-ng` и `gordboy`.
  1. Клонируем репозиторий:
    Код: выделить все
    git clone https://github.com/aircrack-ng/rtl8812au.git
  2. Переходим в каталог:
    Код: выделить все
    cd rtl8812au
  3. Проверим версию модуля в файле `dkms.conf`:
    Код: выделить все
    grep PACKAGE_VERSION dkms.conf

    (например, `PACKAGE_VERSION="5.13.6"`)
  4. Копируем исходники в каталог DKMS:
    Код: выделить все
    sudo cp -r . /usr/src/rtl8812au-5.13.6


3. Сборка и установка через DKMS
Выполним регистрацию, сборку и установку модуля.
Код: выделить все
sudo dkms add -m rtl8812au -v 5.13.6
sudo dkms build -m rtl8812au -v 5.13.6
sudo dkms install -m rtl8812au -v 5.13.6

Проверяем наличие модуля:
Код: выделить все
dkms status

Загружаем драйвер вручную (если не загрузился автоматически):
Код: выделить все
sudo modprobe 8812au

Проверяем подключение адаптера:
Код: выделить все
ip link show



4. Проверка и диагностика
Проверим, что модуль корректно загружен:
Код: выделить все
lsmod | grep 8812au

Если адаптер не определяется:
  1. Переподключите устройство к другому порту USB.
  2. Убедитесь, что питание на портах не ограничено (особенно на ноутбуках).
  3. Посмотрите логи:
    Код: выделить все
    sudo dmesg | grep 8812au
При необходимости можно перезапустить службу сети:
Код: выделить все
sudo systemctl restart NetworkManager



5. Удаление драйвера
Для полного удаления модуля из DKMS:
Код: выделить все
sudo dkms remove -m rtl8812au -v 5.13.6 --all

После удаления можно удалить исходники:
Код: выделить все
sudo rm -rf /usr/src/rtl8812au-5.13.6



6. Полезные команды
КомандаОписание
nmcli dev wifi listСписок доступных сетей Wi-Fi
nmcli r wifi onВключить Wi-Fi через NetworkManager
iwconfigПроверить параметры адаптера (SSID, мощность и т.п.)
sudo modinfo 8812auПоказать информацию о модуле



Заключение
Установка драйвера RTL8812AU через DKMS в Fedora позволяет без ручной пересборки ядра обеспечить поддержку большинства адаптеров Realtek.
После обновления ядра модуль автоматически пересобирается.
Если адаптер не определяется — проверяйте соответствие версии `kernel-devel` и используемого ядра, а также вывод `dmesg`.
Для новых устройств предпочтительно использовать репозиторий `aircrack-ng`.
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 2202 2083 5115 2302


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 463
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Сообщение ROOT » 09 апр 2022, 12:27



Продолжение темы: типичные ошибки при сборке драйвера RTL8812AU под Fedora



 RTL8812AU — устранение ошибок DKMS и сборки 
Типовые проблемы и решения
При установке драйвера через DKMS на Fedora иногда возникают ошибки сборки.
Ниже приведены наиболее распространённые случаи и способы их устранения.


1. Ошибка DKMS: "dkms.conf not found"
Сообщение:
Код: выделить все
Error! DKMS tree already contains: rtl8812au-5.13.6
File: /usr/src/rtl8812au-5.13.6/dkms.conf does not exist.

Причина: исходники были скопированы не полностью или в неверную директорию.
Решение:
  1. Убедитесь, что в каталоге `/usr/src/rtl8812au-5.13.6/` есть файл `dkms.conf`.
  2. Если нет — скопируйте исходники заново:
    Код: выделить все
    sudo rm -rf /usr/src/rtl8812au-5.13.6
    sudo cp -r ~/rtl8812au /usr/src/rtl8812au-5.13.6
  3. Повторите установку:
    Код: выделить все
    sudo dkms add -m rtl8812au -v 5.13.6
    sudo dkms build -m rtl8812au -v 5.13.6
    sudo dkms install -m rtl8812au -v 5.13.6


2. Ошибка GCC: "gcc version mismatch"
Сообщение:
Код: выделить все
Your GCC version does not match the compiler used to build the kernel.

Причина: версия `gcc` не совпадает с той, что использовалась при сборке текущего ядра.
Решение:
  1. Узнайте версию компилятора, с которым собрано ядро:
    Код: выделить все
    cat /proc/version
  2. Установите подходящую версию GCC (если доступна) или обновите ядро и заголовки:
    Код: выделить все
    sudo dnf upgrade kernel kernel-devel kernel-headers gcc
  3. Перезагрузите систему и повторите сборку.


3. Ошибка DKMS: "Kernel preparation error"
Сообщение:
Код: выделить все
Error! Your kernel headers for kernel 6.x.x not found at /lib/modules/6.x.x/build

Причина: отсутствуют пакеты `kernel-devel` и `kernel-headers` для текущего ядра.
Решение:
  1. Установите недостающие пакеты:
    Код: выделить все
    sudo dnf install kernel-devel kernel-headers
  2. Убедитесь, что версия совпадает с `uname -r`:
    Код: выделить все
    rpm -q kernel-devel | grep $(uname -r)
  3. Если версии не совпадают — перезагрузитесь в актуальное ядро.


4. Ошибка DKMS: "MOK signing failed"
Сообщение:
Код: выделить все
modprobe: ERROR: could not insert '8812au': Key was rejected by service

Причина: включён Secure Boot, а модуль не подписан.
Решение 1 (временное): отключить Secure Boot в UEFI.
Решение 2 (рекомендуемое): подписать модуль вручную.
  1. Создайте ключ:
    Код: выделить все
    openssl req -new -x509 -newkey rsa:2048 -keyout MOK.key -out MOK.crt -nodes -days 36500 -subj "/CN=Fedora DKMS/"
  2. Добавьте его в хранилище:
    Код: выделить все
    sudo mokutil --import MOK.crt
  3. После перезагрузки подтвердите импорт ключа.
  4. Подпишите модуль:
    Код: выделить все
    sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 MOK.key MOK.crt /lib/modules/$(uname -r)/extra/8812au.ko.xz


5. Ошибка NetworkManager: адаптер не появляется
Симптомы:
— модуль загружен (`lsmod | grep 8812au`), но интерфейса Wi-Fi нет.
Решение:
  1. Перезапустите NetworkManager:
    Код: выделить все
    sudo systemctl restart NetworkManager
  2. Проверьте интерфейсы:
    Код: выделить все
    ip link show
  3. Если устройство всё ещё не отображается, выгрузите и снова загрузите модуль:
    Код: выделить все
    sudo modprobe -r 8812au
    sudo modprobe 8812au


Заключение
Большинство ошибок при установке драйвера RTL8812AU под Fedora связаны с несоответствием версий ядра, GCC или активным Secure Boot.
Рекомендуется выполнять установку сразу после обновления системы и держать пакеты `kernel-devel`, `kernel-headers` и `gcc` синхронизированными.
При правильной настройке DKMS драйвер автоматически пересобирается при каждом обновлении ядра.
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 2202 2083 5115 2302


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 463
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный


Вернуться в Fedora

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron