Работающий адаптер Wi-Fi Realtek RTL8811AU на XUbuntu [закрыто]

Вопрос или проблема

Я настраиваю ПК с установленной Xubuntu, и пока что все идет довольно хорошо. Однако у меня есть проблемы с подключением к Wi-Fi.

Сначала я пытался использовать уже имеющийся у меня адаптер Netgear A6200, но мне сказали, что драйверы для него, в основном, не существуют, и что мне придется использовать драйверы Windows — что мне не понравилось, поэтому я купил один из этих, который перечислен как поддерживаемая ОС для Linux.

Мне не повезло с его работой. Я надеялся, что просто подключу его, и драйверы установятся автоматически, но, увы, этого не произошло.

Чипсет, по всей видимости, realtek RTL8811AU (я узнал это, подключив его к своему ПК с Windows).

Я нашел этот пост, но команда make завершилась с ошибкой* — мне также не нравится идея повторно делать это каждый раз, когда обновляется Linux.

Я изучил драйверы, которые идут в комплекте с адаптером, и там есть install.sh для компиляции и установки драйверов (я предполагаю, что он делает то же самое, что и репозиторий на GitHub, на который ссылаются выше). Этот установочный скрипт также завершился неудачей.

Также имеется архив исходного кода на диске.

Я действительно надеялся на какую-то команду apt-get для установки, которая отслеживала бы и обновляла драйверы по мере выхода новых обновлений.

Если я заставлю make работать, разве мне действительно придется повторять это каждый раз, когда я получаю обновление?

* вывод ошибки make

andy@Andy-Miner:~/git/rtl8811AU_rtl8821A-linux$ make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.10.0-33-generic/build M=/home/andy/git/rtl8811AU_rtl8821A-linux  modules
make[1]: Entering directory '/usr/src/linux-headers-4.10.0-33-generic'
  CC [M]  /home/andy/git/rtl8811AU_rtl8821A-linux/core/rtw_cmd.o
  CC [M]  /home/andy/git/rtl8811AU_rtl8821A-linux/core/rtw_security.o
  CC [M]  /home/andy/git/rtl8811AU_rtl8821A-linux/core/rtw_debug.o
In file included from /home/andy/git/rtl8811AU_rtl8821A-linux/include/drv_types.h:64:0,
                 from /home/andy/git/rtl8811AU_rtl8821A-linux/core/rtw_debug.c:22:
/home/andy/git/rtl8811AU_rtl8821A-linux/core/rtw_debug.c: In function ‘dump_drv_version’:
/home/andy/git/rtl8811AU_rtl8821A-linux/include/rtw_debug.h:187:19: error: void value not ignored as it ought to be
  #define _seqdump seq_printf
                   ^
/home/andy/git/rtl8811AU_rtl8821A-linux/include/rtw_debug.h:240:7: note: in expansion of macro ‘_seqdump’
    if(_seqdump(sel, fmt, ##arg)) /*rtw_warn_on(1)*/; \
       ^
/home/andy/git/rtl8811AU_rtl8821A-linux/core/rtw_debug.c:65:2: note: in expansion of macro ‘DBG_871X_SEL_NL’
  DBG_871X_SEL_NL(sel, "%s %s\n", DRV_NAME, DRIVERVERSION);
  ^
/home/andy/git/rtl8811AU_rtl8821A-linux/core/rtw_debug.c:66:64: error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]
  DBG_871X_SEL_NL(sel, "build time: %s %s\n", __DATE__, __TIME__);
                                                                ^
    //snip МАССА ошибок

/home/andy/git/rtl8811AU_rtl8821A-linux/include/rtw_debug.h:240:7: note: in expansion of macro ‘_seqdump’
    if(_seqdump(sel, fmt, ##arg)) /*rtw_warn_on(1)*/; \
       ^
/home/andy/git/rtl8811AU_rtl8821A-linux/core/rtw_debug.c:1221:2: note: in expansion of macro ‘DBG_871X_SEL_NL’
  DBG_871X_SEL_NL(m, "best_channel_24G = %d\n", best_channel_24G);
  ^
cc1: some warnings being treated as errors
scripts/Makefile.build:294: recipe for target '/home/andy/git/rtl8811AU_rtl8821A-linux/core/rtw_debug.o' failed
make[2]: *** [/home/andy/git/rtl8811AU_rtl8821A-linux/core/rtw_debug.o] Error 1
Makefile:1524: recipe for target '_module_/home/andy/git/rtl8811AU_rtl8821A-linux' failed
make[1]: *** [_module_/home/andy/git/rtl8811AU_rtl8821A-linux] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.10.0-33-generic'
Makefile:1323: recipe for target 'modules' failed
make: *** [modules] Error 2
andy@Andy-Miner:~/git/rtl8811AU_rtl8821A-linux$

Вывод установочного скрипта из включенных драйверов

andy@Andy-Miner:~/Downloads/wifi dongle$ sudo ./install.sh
##################################################
Скрипт автоматической установки драйвера Realtek Wi-Fi
21 ноября 2011, версия 1.1.0
##################################################
Распаковка архива с исходным кодом драйвера:
        rtl8821AU_linux_v4.3.14_13455.20150212_BTCOEX20150128-51.tar.gz
rtl8821AU_linux_v4.3.14_13455.20150212_BTCOEX20150128-51/
rtl8821AU_linux_v4.3.14_13455.20150212_BTCOEX20150128-51/core/

//сокращено - много файлов перечислено

rtl8821AU_linux_v4.3.14_13455.20150212_BTCOEX20150128-51
Запрошена аутентификация [root] для команды make clean:
cd hal/OUTSRC/ ; rm -fr */*.mod.c */*.mod */*.o */.*.cmd */*.ko
cd hal/OUTSRC/ ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
cd hal/led ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
cd hal ; rm -fr */*/*.mod.c */*/*.mod */*/*.o */*/.*.cmd */*/*.ko
cd hal ; rm -fr */*.mod.c *.mod *.o */.*.cmd *.ko
cd hal ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
cd core/efuse ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
cd core ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
cd os_dep/linux ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
cd os_dep ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
cd platform ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
rm -fr Module.symvers ; rm -fr Module.markers ; rm -fr modules.order
rm -fr *.mod.c *.mod *.o .*.cmd *.ko *~
rm -fr .tmp_versions
Запрошена аутентификация [root] для сборки драйвера:
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.10.0-33-generic/build M=/home/andy/Downloads/wifi dongle/driver/rtl8821AU_linux_v4.3.14_13455.20150212_BTCOEX20150128-51  modules
make[1]: Entering directory '/usr/src/linux-headers-4.10.0-33-generic'
arch/x86/Makefile:140: CONFIG_X86_X32 включен, но поддержка binutils отсутствует
make[1]: *** No rule to make target 'dongle/driver/rtl8821AU_linux_v4.3.14_13455.20150212_BTCOEX20150128-51'. Стоп.
make[1]: Leaving directory '/usr/src/linux-headers-4.10.0-33-generic'
Makefile:1551: recipe for target 'modules' failed
make: *** [modules] Ошибка 2
##################################################
Ошибка компиляции драйвера make: 2
Пожалуйста, проверьте сообщение об ошибке
##################################################

Чтобы заставить Wi-Fi работать, вам следует установить rtl8812au-dkms из официального репозитория Ubuntu.

sudo apt-get install rtl8812au-dkms
sudo modprobe 8812au

Или, собрав драйвер с помощью dkms из репозитория diederikdehaas/rtl8812AU (поддержка добавлена для версии ядра >= 4.7), выполните:

apt install dkms
git clone https://github.com/diederikdehaas/rtl8812AU.git
cd rtl8812AU
DRV_NAME=rtl8812AU
DRV_VERSION=4.3.14
mkdir /usr/src/${DRV_NAME}-${DRV_VERSION}
git archive driver-${DRV_VERSION} | tar -x -C /usr/src/${DRV_NAME}-${DRV_VERSION}
dkms add -m ${DRV_NAME} -v ${DRV_VERSION}
dkms build -m ${DRV_NAME} -v ${DRV_VERSION}
dkms install -m ${DRV_NAME} -v ${DRV_VERSION}
modprobe -v 8812au

Ответ или решение

Для установки и настройки USB-адаптера Realtek RTL8811AU в Xubuntu выполните следующие шаги:

  1. Убедитесь, что у вас установлены необходимые пакеты. Для начала убедитесь, что у вас установлены build-essential и dkms. Откройте терминал и выполните следующую команду:

    sudo apt-get update
    sudo apt-get install build-essential dkms linux-headers-$(uname -r)
  2. Установка драйвера из репозитория. В Xubuntu можно установить драйвер для RTL8811AU с помощью dkms из официальных репозиториев. Выполните команды:

    sudo apt-get install rtl8812au-dkms
    sudo modprobe 8812au

    Это должно автоматически установить драйвер и активировать его.

  3. Сборка драйвера из источников на GitHub. Если первая установка не сработала, вы можете попробовать собрать драйвер вручную с использованием DKMS. Для этого выполните следующие команды:

    git clone https://github.com/diederikdehaas/rtl8812AU.git
    cd rtl8812AU

    Далее выполните команды для установки драйвера:

    sudo dkms add .
    sudo dkms build 8812AU/<версия>
    sudo dkms install 8812AU/<версия>

    Замените <версия> на соответствующую версию драйвера, например 5.6.5.

  4. Загрузка модуля. После того, как драйвер установлен, вам нужно загрузить модуль с помощью команды:

    sudo modprobe 8812au
  5. Проверка работы. После выполнения вышеперечисленных шагов проверьте статус подключения Wi-Fi. Вы можете использовать команды:

    iwconfig

    или

    ifconfig

    чтобы увидеть, распознается ли ваш адаптер и есть ли доступ к Wi-Fi.

  6. Автоматическая загрузка модуля. Чтобы модуль загружался автоматически при старте, вам не нужно ничего дополнительно настраивать, так как dkms будет управлять модулем. Однако, если возникнут проблемы, вы можете добавить строчку 8812au в файл /etc/modules.

Следует отметить, что при обновлении ядра ОС может потребоваться пересобрать модуль. Однако, так как мы используем dkms, это должно происходить автоматически при необходимости.

Если у вас возникнут сложности на каком-либо шаге, пожалуйста, приведите конкретные ошибки, и я постараюсь помочь вам дальше!

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

Капча загружается...