我有一个 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 表示没有任何东西正在使用该模块: