如何强制 AE3000 无线使用 rt3573sta 驱动程序?

如何强制 AE3000 无线使用 rt3573sta 驱动程序?

我有一个 AE3000 Linksys 无线 USB 设备,它可以在 802.11n 级别与 rt2800usb 驱动程序配合使用。但是,该设备是一个 802.11ac wifi 适配器,能够达到 5ghz。

我下载了 rt3573sta 驱动程序的代码,对其进行了修改以消除“make”错误,对其进行了 modprobe 并运行了 update-initramfs 。因此现在,命令 lsmod |grep rt 显示:

rt3573sta             712704  0
rt2800usb              28672  0
rt2x00usb              20480  1 rt2800usb
rt2800lib              94208  1 rt2800usb
rt2x00lib              53248  3 rt2800lib,rt2800usb,rt2x00usb
mac80211              782336  3 rt2800lib,rt2x00lib,rt2x00usb
cfg80211              602112  2 rt2x00lib,mac80211
parport_pc             32768  1
parport                49152  3 lp,parport_pc,ppdev

如您所见,rt3573sta 已加载,但未被使用(使用次数为 0)。我尝试将 rt2800usb 列入黑名单,但结果根本没有 wifi,因为 rt3573sta 驱动程序仍然无法关联。

有人能告诉我如何让新驱动程序抓住 AE3000 吗?非常感谢。

chili555 要求的附加数据: lsusb -t 的输出,显示驱动程序为 rt2800usb:

/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/10p, 12M |__ Port 4: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 4: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 4: Dev 2, If 2, Class=Human Interface Device, Driver=usbhid, 12M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/10p, 480M |__ Port 1: Dev 2, If 3, Class=Vendor Specific Class, Driver=, 480M |__ Port 1: Dev 2, If 1, Class=Audio, Driver=snd-usb-audio, 480M |__ Port 1: Dev 2, If 2, Class=Audio, Driver=snd-usb-audio, 480M |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=au0828, 480M |__ Port 5: Dev 4, If 0, Class=Vendor Specific Class, Driver=rt2800usb, 480M

另外,这是一个简单的“lsusb”的输出:

Bus 001 Device 004: ID 13b1:003b Linksys AE3000 802.11abgn (3x3) Wireless Adapter [Ralink RT3573] Bus 001 Device 002: ID 2040:7240 Hauppauge WinTV HVR-850 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 芯片组读取 RAlkink RT3573。我一直在寻找启用 802.11ac 的方法,然后遇到了这个问题:

http://geekniggle.blogspot.ca/2012/07/cisco-linksys-ae3000-wifi-usb-dongle.html

这对那个家伙有用。我点击了他解决方案部分中的链接并从那里下载了源代码;源代码显然源自 Cisco 的开源驱动程序代码。编译时出现错误:

/home/xxx/Downloads/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0/os/linux/../../os/linux/rt_linux.c:1136:20: error: incompatible types when assigning to type ‘int’ from type ‘kuid_t {aka const struct <anonymous>}’ /home/xxx/Downloads/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0/os/linux/../../os/linux/rt_linux.c:1137:20: error: incompatible types when assigning to type ‘int’ from type ‘kgid_t {aka const struct <anonymous>}’ /home/xxx/Downloads/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0/os/linux/../../sta/sta_cfg.c:4905:85: error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time] /home/xxx/Downloads/Linux/DPO_RT3573_LinuxSTA_V2.5.0.0/os/linux/../../sta/sta_cfg.c:4905:95: error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time] cc1: some warnings being treated as errors

我通过注释掉有问题的行来修复这个问题。它们似乎对代码的运行并不重要。(我知道……啧啧啧)之后,“make”运行没有错误。至于 lsmod 输出,我的理解是 0 表示没有任何东西正在使用该模块:

https://en.wikipedia.org/wiki/Lsmod

相关内容