Ошибка установки для WiFi-адаптера BrosTrend AC3.

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

Я пытаюсь установить WiFi-адаптер brostrend ac3 1200 mbps на свой настольный компьютер и сталкиваюсь с проблемами во время установки. Я пытаюсь установить драйверы, но они еще не доступны в Ubuntu. При попытке скомпилировать модуль ядра я получаю следующую ошибку:

root@chris-pc:~# cd rtl8812AU_8821AU_linux

root@chris-pc:~/rtl8812AU_8821AU_linux# make

make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/3.13.0-119-generic/build M=/root/rtl8812AU_8821AU_linux  modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-119-generic'
  CC [M]  /root/rtl8812AU_8821AU_linux/os_dep/linux/os_intfs.o
/root/rtl8812AU_8821AU_linux/os_dep/linux/os_intfs.c:809:2: error: initialization from incompatible pointer type [-Werror]
  .ndo_select_queue = rtw_select_queue,
  ^
/root/rtl8812AU_8821AU_linux/os_dep/linux/os_intfs.c:809:2: error: (near initialization for ‘rtw_netdev_ops.ndo_select_queue’) [-Werror]
cc1: all warnings being treated as errors
make[2]: *** [/root/rtl8812AU_8821AU_linux/os_dep/linux/os_intfs.o] Error 1
make[1]: *** [_module_/root/rtl8812AU_8821AU_linux] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-119-generic'
make: *** [modules] Error 2
root@chris-pc:~/rtl8812AU_8821AU_linux# 

Есть предложения?

Я предлагаю попробовать этот пакет; с работающим интернет-соединением через Ethernet, с помощью модема или любым другим доступным способом:

sudo apt-get update
sudo apt-get install git
git clone https://github.com/bits3rpent/rtl8812AU_8821AU_linux.git
cd rtl8812AU_8821AU_linux
make
sudo make install
sudo modprobe rtl8812au

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

Теория

Установка драйверов для оборудования Linux, особенно для нестандартных Wi-Fi адаптеров, таких как Brostrend AC3, может сталкиваться с определенными трудностями. Совместимость драйверов с различными версиями ядра Linux – одна из частых причин ошибок. В данном случае, вы сталкиваетесь с проблемой во время компиляции модуля ядра для Wi-Fi адаптера на Ubuntu. Ошибка в компиляции указывает на несоответствие между определенными структурами данных в драйвере и интерфейсом, ожидаемым вашим текущим ядром Linux.

Драйверы Wi-Fi на основе чипсета Realtek, такие как RTL8812AU/8821AU, часто предоставляются сообществом через репозитории на GitHub, и их интеграция может потребовать компиляции из исходного кода. Процесс компиляции требует наличия соответствующих заголовочных файлов ядра и инструментов сборки, таких как gcc и make.

Пример

В предоставленном вами примере ошибки компиляции заметно, что указано "ошибка инициализации от несовместимого типа указателя" в файле os_intfs.c. Это указывает на то, что структура кода драйвера не совместима с API функций вашего ядра.

Неправильная инициализация функции ndo_select_queue предполагает, что между версией ядра и исходным кодом драйвера есть разночтения. Это может происходить, когда структура или функция ядра изменена в более новых версиях, а исходный код драйвера не был обновлен с учетом этих изменений.

Применение

Шаг 1: Проверка версии ядра

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

uname -r

Шаг 2: Установка необходимых пакетов

Убедитесь, что все необходимые пакеты для компиляции исходного кода установлены:

sudo apt-get update
sudo apt-get install build-essential linux-headers-$(uname -r) git

Шаг 3: Клонирование рабочего репозитория

Попробуйте использовать альтернативный репозиторий GitHub для драйвера, который может поддерживать ваше ядро. Например, здесь представлен репозиторий:

git clone https://github.com/bits3rpent/rtl8812AU_8821AU_linux.git
cd rtl8812AU_8821AU_linux

Шаг 4: Компиляция драйвера

Затем вам нужно будет перекомпилировать драйвер:

make

Если ошибки продолжат возникать, попробуйте посмотреть в issues на GitHub проекте или поискать патчи в интернете, которые могут решить проблему совместимости.

Шаг 5: Установка и активация модуля

После успешной компиляции драйвера установите его:

sudo make install
sudo modprobe rtl8812au

Шаг 6: Диагностика и тестирование

Проверьте, виден ли адаптер командой iwconfig или ifconfig. Если адаптер виден, попытайтесь подключиться к сети и проверьте, работает ли подключение к Интернету стабильно.

Дополнительные рекомендации

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

Понимание взаимодействия между версиями ядра и исходным кодом является ключевым для решения подобных сложностей. Такие задачи требуют тщательной диагностики и иногда экспериментов с различными версиями драйвера и ядра. Сохраняйте терпение, и если потребуется, обратитесь за поддержкой к интернет-сообществам или форумах для Linux пользователей, таких как Ubuntu Forums или Stack Overflow.

Следуя данной методике, вы должны быть в состоянии устранить возникшие проблемы и успешно установить ваш Wi-Fi адаптер Brostrend AC3 на операционной системе Ubuntu.

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

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