Вопрос или проблема
У меня есть Wi-Fi приемник ASUS AC53 Nano, который я пытаюсь настроить на Solus Linux. Вот некоторая основная информация:
$ lsusb
Bus 001 Device 004: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]
$ uname -r
5.0.7-114.current
Я следую инструкциям, найденным здесь, так как говорилось, что они работали для этого человека, и это лучший след, который у меня был до сих пор. Но я задаюсь вопросом, были ли у них более старые ядра, чем у меня. Я добавил строку:
{USB_DEVICE(0x0B05, 0x184C), .driver_info = RTL8822B}, /* ASUS USB AC53 */
в файл os_dep/linux/usb_intf.c согласно инструкциям и попытался выполнить make
. Вот результат:
$ make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/5.0.7-114.current/build M=/home/morgan/rtl8822bu modules
make[1]: Entering directory '/usr/src/linux-headers-5.0.7-114.current'
CC [M] /home/morgan/rtl8822bu/os_dep/linux/os_intfs.o
In file included from /home/morgan/rtl8822bu/include/drv_types.h:35,
from /home/morgan/rtl8822bu/os_dep/linux/os_intfs.c:22:
/home/morgan/rtl8822bu/include/wifi.h:1005: warning: "IEEE80211_MAX_AMPDU_BUF" redefined
#define IEEE80211_MAX_AMPDU_BUF 0x40
In file included from /home/morgan/rtl8822bu/include/osdep_service_linux.h:84,
from /home/morgan/rtl8822bu/include/osdep_service.h:41,
from /home/morgan/rtl8822bu/include/drv_types.h:32,
from /home/morgan/rtl8822bu/os_dep/linux/os_intfs.c:22:
./include/linux/ieee80211.h:1444: note: this is the location of the previous definition
#define IEEE80211_MAX_AMPDU_BUF 0x100
/home/morgan/rtl8822bu/os_dep/linux/os_intfs.c:1170:22: error: initialization of ‘u16 (*)(struct net_device *, struct sk_buff *, struct net_device *, u16 (*)(struct net_device *, struct sk_buff *, struct net_device *))’ {aka ‘short unsigned int (*)(struct net_device *, struct sk_buff *, struct net_device *, short unsigned int (*)(struct net_device *, struct sk_buff *, struct net_device *))’} from incompatible pointer type ‘u16 (*)(struct net_device *, struct sk_buff *, void *, u16 (*)(struct net_device *, struct sk_buff *, struct net_device *))’ {aka ‘short unsigned int (*)(struct net_device *, struct sk_buff *, void *, short unsigned int (*)(struct net_device *, struct sk_buff *, struct net_device *))’} [-Werror=incompatible-pointer-types]
.ndo_select_queue = rtw_select_queue,
^~~~~~~~~~~~~~~~
/home/morgan/rtl8822bu/os_dep/linux/os_intfs.c:1170:22: note: (near initialization for ‘rtw_netdev_ops.ndo_select_queue’)
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:277: /home/morgan/rtl8822bu/os_dep/linux/os_intfs.o] Error 1
make[1]: *** [Makefile:1576: _module_/home/morgan/rtl8822bu] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.0.7-114.current'
make: *** [Makefile:1318: modules] Error 2
Я действительно не знаю, что с этим делать (лол)! Есть кто-нибудь, кто может мне помочь? Большое спасибо заранее!
У меня была точно такая же ошибка при попытке установить ASUS AC53 Nano. На моем компьютере была POP!_os с ядром linux 5.0.0. После того как я попробовал несколько репозиториев для RTL8822BU Wireless Driver для Linux, репозиторий jeremyb31/rtl8822bu сработал идеально.
У меня не было интернета на компьютере, поэтому я клонировал его на компьютер с интернетом, перенес репозиторий через USB на мой ПК, скопировал его на свой ПК, зашел в этот репозиторий на моем ПК, а затем выполнил make
для компиляции и sudo make install
для установки прошивки, затем sudo modprobe 8822bu
. Я не вносил никаких правок в файлы в репозитории. Инструкции находятся в README репозитория.
После этого он начал работать для меня (возможно, вам потребуется перезагрузка). Надеюсь, это поможет!
Неважно, какой репозиторий я пробовал, сначала он не собирался. Однако после установки пакетов gcc
и binutils
это сработало. Так что попробуйте следующее:
sudo apt-get update
sudo apt-get install binutils
sudo apt-get install gcc
(следуйте инструкциям, которые дает терминал)
затем используйте команду make
.
Ответ или решение
Чтобы установить драйвер для Wi-Fi-адаптера ASUS AC53 Nano (базирующийся на чипе Realtek RTL8188CUS) под управлением системы Solus Linux, вы можете столкнуться с рядом проблем, особенно в связи с выбором правильного драйвера и его компиляцией. В этом руководстве мы рассмотрим важные шаги, которые помогут вам успешно установить данное устройство.
1. Сбор предварительной информации
Сначала убедитесь, что ваш адаптер правильно распознается вашей системой. Вы можете использовать команду lsusb
для просмотра подключенных USB-устройств:
lsusb
Вы должны увидеть вывод, подобный этому:
Bus 001 Device 004: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]
Также проверьте версию ядра вашей системы с помощью команды:
uname -r
Убедитесь, что у вас установлены необходимые заголовки ядра. В данном случае версия ядра — 5.0.7-114.current.
2. Чтение документации
Исходя из вашего описания, вы уже нашли ссылки на полезные ресурсы и форумы, где пользователи делятся опытом. Рекомендуется внимательно ознакомиться с предложенной вами документацией, так как она может содержать актуальные инструкции.
3. Компиляция драйвера
Согласно вашему описанию, вы пытались редактировать исходный код. Однако, вместо внесения изменений в драйвер, рекомендую клонировать репозиторий, который уже содержит необходимые патчи и настройки. Например, стоит попробовать репозиторий jeremyb31/rtl8822bu, который, по отзывам пользователей, часто решает проблемы с такими адаптерами.
Шаги по установке:
-
Убедитесь, что у вас установлены необходимые инструменты для сборки:
sudo apt-get update sudo apt-get install gcc make linux-headers-$(uname -r)
-
Клонируйте репозиторий на своем компьютере:
На другом компьютере с интернетом выполните:
git clone https://github.com/jeremyb31/rtl8822bu.git
Затем скопируйте каталог
rtl8822bu
на ваш компьютер с Solus с помощью USB-накопителя. -
Компиляция и установка драйвера:
На вашем компьютере с Solus:
cd rtl8822bu make sudo make install sudo modprobe 8822bu
4. Решение возможных проблем
Если вы столкнулись с ошибками компиляции, возможные причины могут быть следующими:
- Неправильные заголовки ядра: Убедитесь, что вы установили корректные заголовки для текущей версии ядра.
- Ошибки компиляции: Иногда наличие более старых версий компонентов системы может вызвать конфликты. Убедитесь, что у вас установлены свежие версии
gcc
иbinutils
.
5. Настройка подключения
После успешной установки драйвера вам может потребоваться настроить параметры соединения с Wi-Fi. Используйте стандартные инструменты вашей среды рабочего стола или утилиты командной строки, такие как nmcli
.
Заключение
Настройка Wi-Fi-адаптера под Linux может быть сложной задачей, но с правильным подходом можно добиться успеха. Важно следовать инструкциям по установке и тестировать различные репозитории для наилучшего результата. Если вам потребуется дополнительная помощь, сообщества пользователей Linux всегда готовы прийти на помощь. Успехов в установке!