更新后Xubuntu Wifi驱动程序无法正常工作

我正在运行Xubuntu 14.04 LTS。 我有一个TP Link T4U USB wifi适配器,它基于Realtek RTL8812AU芯片组。 它已经运行了好几个月,直到Linux内核3.13.0-77。 从更新到内核3.13.0-79开始,随着每次更新,wifi适配器驱动程序都不会运行。 从各方面看,它都不存在。 我可以重新启动并选择内核3.13.0-77,一切都很好。 我已经修改了我的grub菜单以提供内核3.13.0-77作为我的第一个默认选项,但我真的想解决这个问题。

在内核3.13.0-77中,这是输出

sudo lshw -C network *-network description: Ethernet interface product: 82567LM-3 Gigabit Network Connection vendor: Intel Corporation physical id: 19 bus info: pci@0000:00:19.0 logical name: eth1 version: 02 serial: b8:ac:6f:1d:64:14 size: 100Mbit/s capacity: 1Gbit/s width: 32 bits clock: 33MHz capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=2.3.2-k duplex=full firmware=0.4-3 latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s resources: irq:48 memory:fdfe0000-fdffffff memory:fdfd9000-fdfd9fff ioport:ece0(size=32) *-network description: Wireless interface physical id: 1 bus info: usb@1:2 logical name: wlan1 serial: c4:e9:84:09:4d:fd capabilities: ethernet physical wireless configuration: broadcast=yes driver=rtl8812au driverversion=3.13.0-77-generic firmware=N/A ip=192.168.0.46 link=yes multicast=yes wireless=IEEE 802.11AC 

有线连接连接到我在桥接模式下运行的旧802.11G路由器。 如你所见,wifi路由器= rtl8812au列出并正常工作。

当我重启到内核3.13.0-86(当前更新)时,我得到以下输出

sudo lshw -C network

  *-network description: Ethernet interface product: 82567LM-3 Gigabit Network Connection vendor: Intel Corporation physical id: 19 bus info: pci@0000:00:19.0 logical name: eth1 version: 02 serial: b8:ac:6f:1d:64:14 size: 100Mbit/s capacity: 1Gbit/s width: 32 bits clock: 33MHz capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=2.3.2-k duplex=full firmware=0.4-3 ip=192.168.0.40 latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s resources: irq:48 memory:fdfe0000-fdffffff memory:fdfd9000-fdfd9fff ioport:ece0(size=32) 

正如您所看到的,甚至没有列出wifi设备,因为没有可操作的驱动程序。 同样,如果我运行iwconfig,甚至没有列出wifi设备,也没有列在我的NetworkManager中。 但我回到内核3.13.0-77,一切都很好。 我没有尝试重新安装驱动程序,因为它与早期的内核运行良好。

在内核3.13.0-86中,这是输出

的lsusb

 Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 002: ID 045e:0745 Microsoft Corp. Nano Transceiver v1.0 for Bluetooth Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 004: ID 0781:a7c1 SanDisk Corp. Storage device (SD card reader) Bus 001 Device 003: ID 2357:0101 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 002: ID 051d:0002 American Power Conversion Uninterruptible Power Supply Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 

它在内核3.13.0-77中看起来一样。 wifi适配器连接到总线001设备003(ID 2357:0101)。 谢谢你的帮助。

内核版本3.13.0-xx中的驱动程序rtl8812au本身不存在。 我确信,为了让它在-77中运行,你下载并从源代码编译它。 但是,当Update Manager安装更高版本的内核版本时,在您的情况下,-79,则需要重新编译。

您可以使用DKMS程序自动完成此操作。 通过可用的互联网连接并启动到-86,请执行以下操作:

 sudo apt-get update sudo apt-get install git dkms git clone https://github.com/abperiasamy/rtl8812AU_8821AU_linux.git sudo dkms add ./rtl8812AU_8821AU_linux sudo dkms install -m 8812au -v 1.0 

您的无线应该正常工作。

感谢您的帮助,Chili555,但这并没有解决它。 在-86内核中运行时,我运行了一次你列出的命令,一切正常,直到最后一个。 输出到命令

sudo dkms install -m 8812au -v 1.0

是:

 Kernel preparation unnecessary for this kernel. Skipping... Building module: cleaning build area.... 'make'................... cleaning build area.... DKMS: build completed. 8812au.ko: Running module version sanity check. Error! Module version v4.2.2_7502.20130517 for 8812au.ko is not newer than what is already found in kernel 3.13.0-86-generic (v4.2.2_7502.20130517). You may override by specifying --force. depmod.... DKMS: install completed. 

所以我用–force添加“重新命令”

sudo dkms install --force -m 8812au -v 1.0

输出是:

Module 8812au/1.0 already installed on kernel 3.13.0-86-generic/i686

因此,在运行正常的驱动程序方面仍然没有差

我看着你给我的倒数第二个命令。 这是输出:

 sudo dkms add ./rtl8812AU_8821AU_linux Creating symlink /var/lib/dkms/8812au/1.0/source -> /usr/src/8812au-1.0 DKMS: add completed. 

我接下来想看看/ var / lib / dkms中的内容

 cd /var/lib/dkms [/var/lib/dkms] [home4-randy]:ll total 16 drwxr-xr-x 3 root root 4096 26.05.2016 23:57 8812au drwxr-xr-x 3 root root 4096 10.05.2016 10:15 nvidia-304 drwxr-xr-x 3 root root 4096 10.05.2016 10:15 rtl8812AU_8821AU_linux -rw-r--r-- 1 root root 6 08.07.2008 08:19 dkms_dbversion [/var/lib/dkms] [home4-randy]:ll 8812au total 4 drwxr-xr-x 4 root root 4096 26.05.2016 23:57 1.0 lrwxrwxrwx 1 root root 26 26.05.2016 23:57 kernel-3.13.0-86-generic-i686 -> 1.0/3.13.0-86-generic/i686 [/var/lib/dkms] [home4-randy]:ll rtl* total 4 drwxr-xr-x 17 root root 4096 10.05.2016 10:15 1.0 lrwxrwxrwx 1 root root 26 20.09.2015 11:49 kernel-3.13.0-46-generic-i686 -> 1.0/3.13.0-46-generic/i686 lrwxrwxrwx 1 root root 26 10.09.2015 10:23 kernel-3.13.0-63-generic-i686 -> 1.0/3.13.0-63-generic/i686 lrwxrwxrwx 1 root root 26 28.09.2015 23:30 kernel-3.13.0-65-generic-i686 -> 1.0/3.13.0-65-generic/i686 lrwxrwxrwx 1 root root 26 21.10.2015 13:09 kernel-3.13.0-66-generic-i686 -> 1.0/3.13.0-66-generic/i686 lrwxrwxrwx 1 root root 26 05.11.2015 09:12 kernel-3.13.0-67-generic-i686 -> 1.0/3.13.0-67-generic/i686 lrwxrwxrwx 1 root root 26 18.11.2015 14:23 kernel-3.13.0-68-generic-i686 -> 1.0/3.13.0-68-generic/i686 lrwxrwxrwx 1 root root 26 02.12.2015 14:11 kernel-3.13.0-71-generic-i686 -> 1.0/3.13.0-71-generic/i686 lrwxrwxrwx 1 root root 26 31.12.2015 10:33 kernel-3.13.0-74-generic-i686 -> 1.0/3.13.0-74-generic/i686 lrwxrwxrwx 1 root root 26 21.01.2016 18:37 kernel-3.13.0-76-generic-i686 -> 1.0/3.13.0-76-generic/i686 lrwxrwxrwx 1 root root 26 03.02.2016 23:43 kernel-3.13.0-77-generic-i686 -> 1.0/3.13.0-77-generic/i686 lrwxrwxrwx 1 root root 26 04.03.2016 10:49 kernel-3.13.0-79-generic-i686 -> 1.0/3.13.0-79-generic/i686 lrwxrwxrwx 1 root root 26 15.03.2016 23:38 kernel-3.13.0-83-generic-i686 -> 1.0/3.13.0-83-generic/i686 lrwxrwxrwx 1 root root 26 06.04.2016 12:54 kernel-3.13.0-85-generic-i686 -> 1.0/3.13.0-85-generic/i686 lrwxrwxrwx 1 root root 26 10.05.2016 10:15 kernel-3.13.0-86-generic-i686 -> 1.0/3.13.0-86-generic/i686 

所以看起来你重建的驱动程序在目录/ var / lib / dkms / 8812au中。 此外,在目录/ var / lib / dkms / rtl8812AU_8821AU_linux中,已经为我安装的每个内核升级构建了一个wifi驱动程序。 因此,如果已经为内核专门构建了wifi驱动程序,为什么它不适用于更新版本? 我想知道这些较新的内核是否有更改未反映在驱动程序中,导致驱动程序软件过时了?

由于这些只是符号链接,我跟着它们……对于你让我编译的构建,这里是make.log文件:

 DKMS make.log for 8812au-1.0 for kernel 3.13.0-86-generic (i686) Thu May 26 23:57:04 MST 2016 make ARCH=i386 CROSS_COMPILE= -C /lib/modules/3.13.0-86-generic/build M=/var/lib/dkms/8812au/1.0/build modules make[1]: Entering directory `/usr/src/linux-headers-3.13.0-86-generic' CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_cmd.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_security.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_debug.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_io.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_ioctl_query.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_ioctl_set.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_ieee80211.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_mlme.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_mlme_ext.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_wlan_util.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_vht.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_pwrctrl.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_rf.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_recv.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_sta_mgt.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_ap.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_xmit.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_p2p.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_tdls.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_br_ext.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_iol.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_sreset.o CC [M] /var/lib/dkms/8812au/1.0/build/core/efuse/rtw_efuse.o CC [M] /var/lib/dkms/8812au/1.0/build/os_dep/osdep_service.o CC [M] /var/lib/dkms/8812au/1.0/build/os_dep/linux/os_intfs.o /var/lib/dkms/8812au/1.0/build/os_dep/linux/os_intfs.c:1702:2: warning: initialization from incompatible pointer type [enabled by default] .ndo_select_queue = rtw_select_queue, ^ /var/lib/dkms/8812au/1.0/build/os_dep/linux/os_intfs.c:1702:2: warning: (near initialization for 'rtw_netdev_ops.ndo_select_queue') [enabled by default] CC [M] /var/lib/dkms/8812au/1.0/build/os_dep/linux/usb_intf.o CC [M] /var/lib/dkms/8812au/1.0/build/os_dep/linux/usb_ops_linux.o CC [M] /var/lib/dkms/8812au/1.0/build/os_dep/linux/ioctl_linux.o CC [M] /var/lib/dkms/8812au/1.0/build/os_dep/linux/xmit_linux.o CC [M] /var/lib/dkms/8812au/1.0/build/os_dep/linux/mlme_linux.o CC [M] /var/lib/dkms/8812au/1.0/build/os_dep/linux/recv_linux.o CC [M] /var/lib/dkms/8812au/1.0/build/os_dep/linux/ioctl_cfg80211.o /var/lib/dkms/8812au/1.0/build/os_dep/linux/ioctl_cfg80211.c:5109:2: warning: initialization from incompatible pointer type [enabled by default] .get_station = cfg80211_rtw_get_station, ^ /var/lib/dkms/8812au/1.0/build/os_dep/linux/ioctl_cfg80211.c:5109:2: warning: (near initialization for 'rtw_cfg80211_ops.get_station') [enabled by default] CC [M] /var/lib/dkms/8812au/1.0/build/os_dep/linux/rtw_android.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/hal_intf.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/hal_com.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/hal_com_phycfg.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/hal_phy.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/led/hal_usb_led.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/HalPwrSeqCmd.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/rtl8812a/Hal8812PwrSeq.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/rtl8812a/Hal8821APwrSeq.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/rtl8812a/rtl8812a_xmit.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/rtl8812a/rtl8812a_sreset.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/rtl8812a/rtl8812a_hal_init.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/rtl8812a/rtl8812a_phycfg.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/rtl8812a/rtl8812a_rf6052.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/rtl8812a/rtl8812a_dm.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/rtl8812a/rtl8812a_rxdesc.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/rtl8812a/rtl8812a_cmd.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/rtl8812a/usb/usb_halinit.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/rtl8812a/usb/rtl8812au_led.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/rtl8812a/usb/rtl8812au_xmit.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/rtl8812a/usb/rtl8812au_recv.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/rtl8812a/usb/usb_ops_linux.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/rtl8812a/rtl8812a_mp.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/odm_debug.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/odm_interface.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/odm_HWConfig.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/odm.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/HalPhyRf.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8812a/HalHWImg8812A_FW.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8812a/HalHWImg8812A_MAC.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8812a/HalHWImg8812A_BB.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8812a/HalHWImg8812A_RF.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8812a/HalHWImg8812A_TestChip_FW.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8812a/HalHWImg8812A_TestChip_MAC.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8812a/HalHWImg8812A_TestChip_BB.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8812a/HalHWImg8812A_TestChip_RF.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8812a/HalPhyRf_8812A.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8812a/odm_RegConfig8812A.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8821a/HalHWImg8821A_FW.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8821a/HalHWImg8821A_MAC.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8821a/HalHWImg8821A_BB.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8821a/HalHWImg8821A_RF.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8821a/HalHWImg8821A_TestChip_MAC.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8821a/HalHWImg8821A_TestChip_BB.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8821a/HalHWImg8821A_TestChip_RF.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8821a/HalPhyRf_8821A.o CC [M] /var/lib/dkms/8812au/1.0/build/hal/OUTSRC/rtl8821a/odm_RegConfig8821A.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_mp.o CC [M] /var/lib/dkms/8812au/1.0/build/core/rtw_mp_ioctl.o LD [M] /var/lib/dkms/8812au/1.0/build/8812au.o Building modules, stage 2. MODPOST 1 modules CC /var/lib/dkms/8812au/1.0/build/8812au.mod.o LD [M] /var/lib/dkms/8812au/1.0/build/8812au.ko make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-86-generic' 

然后,我查看了make.log文件,该文件通过更新自动构建:

 DKMS make.log for rtl8812AU_8821AU_linux-1.0 for kernel 3.13.0-86-generic (i686) Tue May 10 10:15:03 MST 2016 make ARCH=i386 CROSS_COMPILE= -C /lib/modules/3.13.0-77-generic/build M=/var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build modules make[1]: Entering directory `/usr/src/linux-headers-3.13.0-77-generic' CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_cmd.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_security.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_debug.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_io.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_ioctl_query.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_ioctl_set.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_ieee80211.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_mlme.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_mlme_ext.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_wlan_util.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_vht.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_pwrctrl.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_rf.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_recv.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_sta_mgt.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_ap.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_xmit.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_p2p.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_tdls.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_br_ext.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_iol.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_sreset.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/efuse/rtw_efuse.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/osdep_service.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/os_intfs.o /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/os_intfs.c:1702:2: warning: initialization from incompatible pointer type [enabled by default] .ndo_select_queue = rtw_select_queue, ^ /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/os_intfs.c:1702:2: warning: (near initialization for 'rtw_netdev_ops.ndo_select_queue') [enabled by default] CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/usb_intf.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/usb_ops_linux.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/ioctl_linux.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/xmit_linux.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/mlme_linux.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/recv_linux.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/ioctl_cfg80211.o /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/ioctl_cfg80211.c:5099:2: warning: initialization from incompatible pointer type [enabled by default] .add_station = cfg80211_rtw_add_station, ^ /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/ioctl_cfg80211.c:5099:2: warning: (near initialization for 'rtw_cfg80211_ops.add_station') [enabled by default] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/ioctl_cfg80211.c:5100:2: warning: initialization from incompatible pointer type [enabled by default] .del_station = cfg80211_rtw_del_station, ^ /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/ioctl_cfg80211.c:5100:2: warning: (near initialization for 'rtw_cfg80211_ops.del_station') [enabled by default] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/ioctl_cfg80211.c:5101:2: warning: initialization from incompatible pointer type [enabled by default] .change_station = cfg80211_rtw_change_station, ^ /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/ioctl_cfg80211.c:5101:2: warning: (near initialization for 'rtw_cfg80211_ops.change_station') [enabled by default] CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/os_dep/linux/rtw_android.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/hal_intf.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/hal_com.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/hal_com_phycfg.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/hal_phy.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/led/hal_usb_led.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/HalPwrSeqCmd.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/rtl8812a/Hal8812PwrSeq.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/rtl8812a/Hal8821APwrSeq.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/rtl8812a/rtl8812a_xmit.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/rtl8812a/rtl8812a_sreset.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/rtl8812a/rtl8812a_hal_init.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/rtl8812a/rtl8812a_phycfg.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/rtl8812a/rtl8812a_rf6052.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/rtl8812a/rtl8812a_dm.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/rtl8812a/rtl8812a_rxdesc.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/rtl8812a/rtl8812a_cmd.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/rtl8812a/usb/usb_halinit.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/rtl8812a/usb/rtl8812au_led.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/rtl8812a/usb/rtl8812au_xmit.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/rtl8812a/usb/rtl8812au_recv.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/rtl8812a/usb/usb_ops_linux.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/rtl8812a/rtl8812a_mp.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/odm_debug.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/odm_interface.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/odm_HWConfig.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/odm.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/HalPhyRf.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8812a/HalHWImg8812A_FW.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8812a/HalHWImg8812A_MAC.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8812a/HalHWImg8812A_BB.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8812a/HalHWImg8812A_RF.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8812a/HalHWImg8812A_TestChip_FW.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8812a/HalHWImg8812A_TestChip_MAC.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8812a/HalHWImg8812A_TestChip_BB.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8812a/HalHWImg8812A_TestChip_RF.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8812a/HalPhyRf_8812A.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8812a/odm_RegConfig8812A.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8821a/HalHWImg8821A_FW.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8821a/HalHWImg8821A_MAC.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8821a/HalHWImg8821A_BB.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8821a/HalHWImg8821A_RF.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8821a/HalHWImg8821A_TestChip_MAC.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8821a/HalHWImg8821A_TestChip_BB.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8821a/HalHWImg8821A_TestChip_RF.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8821a/HalPhyRf_8821A.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/hal/OUTSRC/rtl8821a/odm_RegConfig8821A.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_mp.o CC [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/core/rtw_mp_ioctl.o LD [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/8812au.o Building modules, stage 2. MODPOST 1 modules CC /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/8812au.mod.o LD [M] /var/lib/dkms/rtl8812AU_8821AU_linux/1.0/build/8812au.ko make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-77-generic' 

我在两个编辑中看到警告,但不知道它们有多重要。 如果您对此有任何进一步的想法,我会很高兴听到他们。 谢谢。

好的,我解决了这个问题。 Chili555走在正确的轨道上,但它并没有为我解决问题。 我修改了我的Grub2,所以它默认启动到内核3.13.0.77,但升级到LTS 16.04(内核4.4.0.24),即使我启动到3.13.0.77,我也不再有wifi连接。 再看一下,我从以下url下载了包裹:

https://github.com/abperiasamy/rtl8812AU_8821AU_linux

将zip文件下载到您选择的目录并在那里解压缩。 向下导航一个目录

 cd rtl8812AU_8821AU_linux-master 

需要安装dkms。 如果您没有,请运行:

 sudo apt-get install dkms 

以下2个命令只需要为驱动程序运行一次:

 sudo cp -R . /usr/src/8812au-1.0 sudo dkms add -m 8812au -v 1.0 

需要重新构建并重新安装驱动程序时,需要运行接下来的两个命令(例如,在内核更新不能与以前的驱动程序一起使用之后):

 sudo dkms build -m 8812au -v 1.0 sudo dkms install -m 8812au -v 1.0 

这对我来说都适用于Ubuntu和Xubuntu。 我会把这个post标记为已解决!

编辑:

好吧,我正在编辑这个答案,因为有另一个内核升级,我的wifi再次停止工作,我按照这里的程序,但它仍然无法正常工作。 但我变得更聪明了。 首先,我了解到Windows中所谓的驱动程序在Linux中称为模块,因此我将改变我的命名法。 我运行上面列出的后两个命令来构建和安装模块

 sudo dkms build -m 8812au -v 1.0 sudo dkms install -m 8812au -v 1.0 

但彭吉抱怨它已经建成并已经安装完毕。 我发现实际的驱动程序文件名为8812au.ko,并存储在目录中

  /lib/modules//updates/dkms 

可以从中找到当前的内核版本

  uname -r 

删除该文件没有用,因为该模块安装在内核中。 我可以用dmesg检查启动问题:

  dmesg: ... [ 7.849101] 8812au: disagrees about version of symbol filp_open [ 7.849103] 8812au: Unknown symbol filp_open (err -22) [ 7.849165] 8812au: disagrees about version of symbol wake_up_process [ 7.849166] 8812au: Unknown symbol wake_up_process (err -22) [ 7.849246] 8812au: disagrees about version of symbol filp_close [ 7.849247] 8812au: Unknown symbol filp_close (err -22) ... 

这告诉我它至少试图安装模块,但失败了。 我可以用modinfo检查模块的参数:

  modinfo 8812au filename: /lib/modules/4.4.0-36-generic/updates/dkms/8812au.ko version: v4.3.8_12175.20140902 author: Realtek Semiconductor Corp. description: Realtek Wireless Lan Driver license: GPL ...... vermagic: 4.4.0-34-generic SMP mod_unload modversions 686 ...... 

vermagic告诉我这是为内核4.4.0.34编译的,而我现在在内核4.4.0.36上运行。 Pengy拿走了旧模块并重复使用它。 这就是为什么它不起作用。 我尝试再次制作它,但他抱怨它已经为这个内核构建了。 我再次尝试安装它,他抱怨它已经安装好了。 我尝试使用选项–force,但是Pengy似乎认为我指的是 – 三人之后发生的事情。 我可以尝试多次更改不同的参数和选项,但没有任何效果。

我去了我的/ usr / src /目录,看到我有3个不同的命名目录同样的东西来构建这个模块。 删除其中两个并重新运行第三个没有帮助。 我拿了上面列出的4行,并在它们前面添加了两行来从内核中删除模块,然后删除/ usr / src /目录树(在删除模块之前不要删除目录)。 我将这6行放入名为rebuild_t4u.sh的脚本文件中:

  sudo dkms remove -m 8812au -v 1.0 -k $(uname -r); sudo rm -rfd /usr/src/8812au-1.0 sudo cp -R . /usr/src/8812au-1.0 sudo dkms add -m 8812au -v 1.0 echo "Rebuilding 8812au -v 1.0...."; sudo dkms build --force -m 8812au -v 1.0 echo "Installing 8812au -v 1.0...."; sudo dkms install --force -m 8812au -v 1.0; 

第一行特定于仅从当前内核中删除模块,因此如果我需要恢复到以前的内核,它仍将存在。

我还修改了dkms.conf文件以添加该行

  MODULES_CONF_ALIAS_TYPE="wlan" 

这会将模块识别为wlan,并且如果有其他wlans(例如wlan0),它将为其提供下一行的数字。

这是该运行的输出:

  sudo dkms build -m rtl8812au -v 1.0 sudo dkms remove -m 8812au -v 1.0 -k 4.4.0-36-generic; sudo rm -rfd /usr/src/8812au-1.0 sudo cp -R . /usr/src/8812au-1.0 sudo dkms add -m 8812au -v 1.0 echo "Rebuilding 8812au -v 1.0...."; sudo dkms build --force -m 8812au -v 1.0 echo "Installing 8812au -v 1.0...."; sudo dkms install --force -m 8812au -v 1.0; ./rebuild-t4u-driver.sh -------- Uninstall Beginning -------- Module: 8812au Version: 1.0 Kernel: 4.4.0-36-generic (i686) ------------------------------------- Status: Before uninstall, this module version was ACTIVE on this kernel. 8812au.ko: - Uninstallation - Deleting from: /lib/modules/4.4.0-36-generic/ rmdir: failed to remove '': No such file or directory - Original module - No original module was found for this module on this kernel. - Use the dkms install command to reinstall any previous module version. depmod.... DKMS: uninstall completed. Error! DKMS tree already contains: 8812au-1.0 You cannot add the same module/version combo more than once. Rebuilding 8812au -v 1.0.... Kernel preparation unnecessary for this kernel. Skipping... Building module: cleaning build area.... 'make' KVER=4.4.0-36-generic.................. cleaning build area.... DKMS: build completed. Installing 8812au -v 1.0.... 8812au: Running module version sanity check. - Original module - No original module exists within this kernel - Installation - Installing to /lib/modules/4.4.0-36-generic/updates/dkms/ /etc/modprobe.d/dkms.conf: added alias reference for '8812au' depmod.... DKMS: install completed. 

嗯,这看起来很有希望,但它仍然没有运行。 尝试不同的东西,我输入了经过validation的真实命令:

  ifconfig wlan0 up 

兵。 指示灯立即开始在USB适配器上闪烁。 所以现在它被打开了。 但我仍然没有WIFI访问权限。 我进入了网络管理器GUI,它仍然没有显示任何WIFI连接。 我尝试了更多的东西,其中没有一个工作,但后来遇到的建议:

  With the computer running, unplug the adapter and plug it in again. 

兵! 兵! 兵! 这就是最终做到的。 我再次上​​wifi了! 如果我重新启动它可能会出现,但这使我免于必须这样做(但可能需要更长时间才能弄明白)。

那么,总结一下,下载模块包,安装dkms修改包中的dkms.conf文件来创建别名,取上面的6个命令并将它们放在包根目录下的脚本文件中,运行它,运行命令“ifconfig wlan?up”,拔下并重新插入适配器或重新启动计算机。 此过程应适用于除Realtek之外的其他具有类似问题的wifi适配器。

编辑2:

我重启了几次,这仍然有效。 当我发出命令ifconfig或iwconfig时,唯一的事情就是正常的设备名称已经改变。 您需要创建一个文件

 /etc/udev/rules.d/70-persistent-net.rules. 

在其中,添加该行

 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="" 

其中MAC-ID是设备的名称,dev-name是您想要的名称。 请注意,此文件的旧版本也有一个字段

 KERNEL=="wlan*" 

新内核不喜欢这样,如果包含此字段,将忽略整行,因此如果您正在使用此文件的旧版本,请删除此字段。