Gcc Can';t在Linux Mint 19.1 XFCE下编译TPLINK TL-WN822N驱动程序

Gcc Can';t在Linux Mint 19.1 XFCE下编译TPLINK TL-WN822N驱动程序,gcc,makefile,linux-device-driver,Gcc,Makefile,Linux Device Driver,我有一个USB wifi适配器(TPLINK TL-WN822N)。我从制造商那里下载了linux驱动程序,并尝试编译它,但在尝试运行make命令时总是出错 我有一个带有XFCE桌面的Linux Mint 19.1 Linux用户HomePC 4.15.0-47-generic#50 Ubuntu SMP周三3月13日10:44:52 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux 我的观点是这个问题是由gcc版本引起的 我也在一台旧电脑上安装了一个LXLeL

我有一个USB wifi适配器(TPLINK TL-WN822N)。我从制造商那里下载了linux驱动程序,并尝试编译它,但在尝试运行make命令时总是出错

我有一个带有XFCE桌面的Linux Mint 19.1

  • Linux用户HomePC 4.15.0-47-generic#50 Ubuntu SMP周三3月13日10:44:52 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
我的观点是这个问题是由gcc版本引起的

我也在一台旧电脑上安装了一个LXLeLinux,驱动程序的编译没有任何错误,而且安装的驱动程序工作得很好

  • Linux造币厂有一个 gcc版本:gcc版本7.3.0(Ubuntu 7.3.0-27ubuntu1~18.04) make版本:GNU make 4.1

  • Linux LXLE有一个 gcc版本:gcc版本5.4.0(Ubuntu 5.4.0-6ubuntu1~16.04.11) make版本:GNU make 4.1

启动make命令时,会收到以下消息:



如果我是对的,并且问题是由较新的gcc版本引起的,那么有没有办法使用另一个版本的gcc进行临时编译

如果问题出在其他方面,那会是什么

我是Linux平台的新手,也许答案是如此亵渎,但如果能得到一些帮助,我将不胜感激


另外,对不起,我的英语不是我的母语;

至少我在一点帮助下找到了解决方案。以下是我在系统重启后如何使用USB wifi适配器:

  • 检查更新:sudo apt update
  • 安装git:sudoapt安装git
  • 从github下载驱动程序:git clone
  • 更改到驱动程序目录:cd rtl8192eu linux驱动程序
  • 为内核编译驱动程序:make
  • 将驱动程序安装到系统中:sudo make Install
  • 加载驱动程序:sudo modprobe 8192eu
  • 但是程序还没有在这里完成,因为系统将使用最初安装的驱动程序,所以我们必须将其列入黑名单:

  • 打开相应的文件:sudo nano/etc/modprobe.d/realtek.conf
  • 将黑名单选项插入文件:黑名单RTL8xxu
  • 保存文件并退出
  • 重新启动系统
  • 现在它应该以正确的方式工作。对我来说,它工作了


    希望,它会对某人有所帮助…

    在安装指南中,我发现:Ubuntu中的开发环境要求如下:开发环境OS Ubuntu 16.04 LTS;内核版本4.13.0-36-generic;Gcc版本5.4.0您可能不需要构建这个旧的驱动程序。只需执行
    sudo apt get install linux modu即可les extra linux固件
    。问题不在于gcc版本。问题在于驱动程序源代码尚未针对您正在使用的linux内核版本进行更新。您无论如何都不需要它,因为您正在使用的linux内核已经支持该设备,但默认情况下未安装驱动程序模块。所需的驱动程序模块ule(“rtl8xxu.ko”)在“linux模块额外”软件包中。驱动程序需要加载设备的固件文件。所需的固件文件(“rtlwifi/rtl8192eu_nic.bin”)在“linux固件”软件包中。@Ian Abbott:感谢您的快速回复!我尝试了建议的命令(sudo apt get install linux modules额外linux固件),但答案是:没有这样的包:linux模块额外。或者类似的东西(用匈牙利语)。我还在synaptic软件包管理器中检查了这些软件包,似乎它们已经安装好了。我最初的问题是,当系统启动时,适配器有时能够连接到路由器,有时不能。在这种情况下,我必须将其拔下几秒钟,然后重新安装,然后它才能连接。我在搜索web a关于这个问题,我读到应该从制造商网站下载驱动程序。但是,正如我所写的,在LinuxMint19.1下无法编译该驱动程序。
    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