Не удается скомпилировать драйвер TPLINK TL-WN822N под Linux Mint 19.1 XFCE - PullRequest
1 голос
/ 11 апреля 2019

У меня есть USB-адаптер Wi-Fi (TPLINK TL-WN822N. Я скачал драйвер linux от производителей Страница загрузки и попытался скомпилировать его, но всегда получаю ошибки при попытке запустить команду make .

У меня Linux Mint 19.1 с рабочим столом XFCE. uname -a дает следующее:

  • Linux user-HomePC 4.15.0-47-generic # 50-Ubuntu SMP Ср. 13 марта 10:44:52 UTC 2019 x86_64 x86_64 x86_64 GNU / Linux

Мое мнение таково, что проблема вызвана версией gcc.

У меня также есть LXLE linux, установленный на старом ПК, и компиляция драйвера может быть выполнена без каких-либо ошибок. И установленный драйвер работает отлично.

  • Linux Mint имеет версия gcc: версия gcc 7.3.0 (Ubuntu 7.3.0-27ubuntu1 ~ 18.04) make версия: GNU Make 4.1

  • Linux LXLE имеет версия gcc: версия 5.4.0 gcc (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.11) make version: GNU Make 4.1

Когда я запускаю команду make, я получаю следующие сообщения:


make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.15.0-47-generic/build M=/home/user/Asztal/rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047  modules
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-47-generic'
  CC [M]  /home/user/Asztal/rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047/core/rtw_cmd.o
In file included from /home/user/Asztal/rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047/include/osdep_service.h:47:0,
                 from /home/user/Asztal/rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047/include/drv_types.h:27,
                 from /home/user/Asztal/rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047/core/rtw_cmd.c:17:
/home/user/Asztal/rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047/include/osdep_service_linux.h: In function ‘_init_timer’:
/home/user/Asztal/rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047/include/osdep_service_linux.h:299:8: error: ‘_timer {aka struct timer_list}’ has no member named ‘data’
  ptimer->data = (unsigned long)cntx;
        ^~
/home/user/Asztal/rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047/include/osdep_service_linux.h:300:2: error: implicit declaration of function ‘init_timer’; did you mean ‘_init_timer’? [-Werror=implicit-function-declaration]
  init_timer(ptimer);
  ^~~~~~~~~~
  _init_timer
cc1: some warnings being treated as errors
scripts/Makefile.build:332: recipe for target '/home/user/Asztal/rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047/core/rtw_cmd.o' failed
make[2]: *** [/home/user/Asztal/rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047/core/rtw_cmd.o] Error 1
Makefile:1552: recipe for target '_module_/home/user/Asztal/rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047' failed
make[1]: *** [_module_/home/user/Asztal/rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-47-generic'
Makefile:1828: recipe for target 'modules' failed
make: *** [modules] Error 2

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

Если проблема в чем-то еще, что это может быть?

Я новичок в платформе Linux, и, возможно, ответ настолько профан, но некоторая помощь будет очень признательна.

пс. И извините за мой английский, не мой родной язык;

1 Ответ

1 голос
/ 23 апреля 2019

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

  1. Проверка обновлений: sudo apt update
  2. Установите git: sudo apt install git
  3. Скачать драйвер с github: git clone https://github.com/jeremyb31/rtl8192eu-linux-driver
  4. Перейдите в каталог драйверов: cd rtl8192eu-linux-driver
  5. Скомпилируйте драйвер для вашего ядра: make
  6. Установить драйвер в систему: sudo make install
  7. Загрузить драйвер: sudo modprobe 8192eu

Но процедура здесь не закончена, потому что система будет использовать изначально установленный драйвер, поэтому мы должны занести его в черный список:

  1. открыть соответствующий файл: sudo nano /etc/modprobe.d/realtek.conf
  2. вставить опцию черного списка в файл: черный список rtl8xxxu
  3. сохранить файл и выйти
  4. перезагрузите систему

Теперь все должно работать правильно. Для меня это сработало.

Надеюсь, это кому-нибудь поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...