我正在使用: ,即使信号很弱(例如-80dBm),Debian Sid (kernel 4.15.0-2-amd64)
我也可以使用机载设备完美连接到我的wifi网络。Intel 7265
iwlwifi
然而,我最近遇到了ALFA AWUS036NHA (Atheros 9271)
,尽管信号质量良好(-68dBm),但有时我无法 ping 通我的路由器。我已经尝试过firmware-atheros
debian 软件包和开源替代方案,具有与下面描述的相同的结果:
通常我的路由表如下所示:
:~$ sudo route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default speedport-entry 0.0.0.0 UG 0 0 0 wlan1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan1
192.168.71.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
192.168.154.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
在随机时刻,路由表变为
:~$ sudo route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 0 0 0 wlan1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan1
192.168.71.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
192.168.154.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
在这种情况下,请 ping 网关 (192.168.1.1) 和任何其他 IP(例如 8.8.8.8)无限期挂起。然而 ARP在这种情况下工作,显示其余已连接的设备,并且天线灯按预期闪烁。
不同之处在于网关柱(_gateway
与speedport-entry
)。当它发生时我无法观察到任何其他特殊之处。它保留 IP、网络掩码等:
$ ifconfig wlan1
wlan1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.68 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:c0:ca:97:32:3e txqueuelen 1000 (Ethernet)
RX packets 4102532 bytes 3990894721 (3.7 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3198872 bytes 1012818336 (965.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
解决方案:
解决方案是 1) 使用 Wicd 断开连接并重新连接(因为 gnome 网络管理器选择网络无限期加载),或 2)等待(1-5 分钟),它会自动修复。
一些信息:
$ lsmod | grep ath9k
ath9k_htc 81920 0
ath9k_common 20480 1 ath9k_htc
ath9k_hw 487424 2 ath9k_htc,ath9k_common
ath 32768 3 ath9k_htc,ath9k_hw,ath9k_common
mac80211 798720 2 iwlmvm,ath9k_htc
cfg80211 720896 6 iwlmvm,ath9k_htc,iwlwifi,mac80211,ath,ath9k_common
usbcore 290816 11 ath9k_htc,usbhid,snd_usb_audio,usb_storage,ehci_hcd,xhci_pci,snd_usbmidi_lib,btusb,uas,xhci_hcd,ehci_pci
$ sudo lshw -c network
*-network
description: Ethernet interface
product: Ethernet Connection (3) I218-LM
vendor: Intel Corporation
physical id: 19
bus info: pci@0000:00:19.0
logical name: eth0
version: 03
serial: f8:ca:b8:37:ec:75
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=3.2.6-k firmware=0.2-3 latency=0 link=no multicast=yes port=twisted pair
resources: irq:52 memory:f7200000-f721ffff memory:f7243000-f7243fff ioport:f080(size=32)
*-network
description: Wireless interface
product: Wireless 7265
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:02:00.0
logical name: wlan0
version: 59
serial: 18:5e:0f:9f:2c:61
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=4.15.0-2-amd64 firmware=29.541020.0 latency=0 link=no multicast=yes wireless=IEEE 802.11
resources: irq:49 memory:f7000000-f7001fff
*-network
description: Wireless interface
physical id: 2
bus info: usb@1:1
logical name: wlan1
serial: 00:c0:ca:97:32:3e
capabilities: ethernet physical wireless
configuration: broadcast=yes driver=ath9k_htc driverversion=4.15.0-2-amd64 firmware=1.4 ip=192.168.1.68 link=yes multicast=yes wireless=IEEE 802.11
我在事件期间找不到任何有用的信息,只能找到以前/较旧的日志:
:~$ sudo dmesg -T | grep -i ath9k
[Thu Apr 12 20:57:43 2018] usb 1-1: ath9k_htc: Firmware ath9k_htc/htc_9271-1.4.0.fw requested
[Thu Apr 12 20:57:43 2018] usbcore: registered new interface driver ath9k_htc
[Thu Apr 12 20:57:43 2018] usb 1-1: firmware: failed to load ath9k_htc/htc_9271-1.4.0.fw (-2)
[Thu Apr 12 20:57:43 2018] usb 1-1: Direct firmware load for ath9k_htc/htc_9271-1.4.0.fw failed with error -2
[Thu Apr 12 20:57:43 2018] usb 1-1: ath9k_htc: Firmware htc_9271.fw requested
[Thu Apr 12 20:57:44 2018] usb 1-1: ath9k_htc: Transferred FW: htc_9271.fw, size: 51008
[Thu Apr 12 20:57:44 2018] ath9k_htc 1-1:1.0: ath9k_htc: HTC initialized with 33 credits
[Thu Apr 12 20:57:44 2018] ath9k_htc 1-1:1.0: ath9k_htc: FW Version: 1.4
[Thu Apr 12 20:57:44 2018] ath9k_htc 1-1:1.0: FW RMW support: On
[Fri Apr 13 00:38:49 2018] usb 1-1: ath9k_htc: Transferred FW: htc_9271.fw, size: 51008
[Fri Apr 13 00:38:49 2018] ath9k_htc 1-1:1.0: ath9k_htc: HTC initialized with 33 credits
我发现的唯一相关错误(最后三行)〜这些日志又是以前的,并且在我研究过的“断开连接”处没有重复。
:~$ sudo dmesg -T | grep -i error
[Thu Apr 12 20:57:38 2018] Error parsing PCC subspaces from PCCT
[Thu Apr 12 20:57:39 2018] i801_smbus: probe of 0000:00:1f.3 failed with error -16
[Thu Apr 12 20:57:42 2018] EXT4-fs (sdb3): re-mounted. Opts: errors=remount-ro
[Thu Apr 12 20:57:42 2018] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[Thu Apr 12 20:57:43 2018] usb 1-1: Direct firmware load for ath9k_htc/htc_9271-1.4.0.fw failed with error -2
[Fri Apr 13 00:38:48 2018] usb 1-1: device descriptor read/64, error -110
我有什么想法可以进一步调试吗?
答案1
我在使用这个适配器时也遇到过同样的问题,并且在调试驱动程序很长时间后,我没有发现问题。然后我注意到在Windows下也存在同样的问题,它们安装在同一台机器上(双启动)。这会使驱动程序问题变得非常巧合,所以我开始怀疑问题出在这个 WiFi 适配器的硬件或为其提供服务的 USB 端口上。因此,我退回旧的并重新订购了新的ALFA AWUS036NHA
WiFi 适配器,并安装了带有一对新 USB 端口的新 PCIe 卡。
令我惊讶的是,两个操作系统上都存在问题!
请记住,此 WiFi 适配器的 LED 指示灯有时会冻结(主要处于关闭状态),我开始怀疑此 WiFi 适配器内的 MCU 由于某些电源问题而挂起或重置,因此我将一个插入inline USB power monitor
Mini- B WiFi适配器的USB插口,将其设置为MAX Hold display
发现,该适配器拔出更多的通过间歇性地在库存设置上汲取高达 830mA 的电流(在使用 USB 标准时,电流高达 910mA)增加 TX 功率黑客)。
使用 90Ω 阻抗屏蔽双绞线电缆(带 16AWG 导线的 S/STP)构建我自己的 3 米长 USB 电缆,该电缆一端有一个 USB Mini-B 插孔,另一端有两个并行的 USB Type-A 插孔使用此电缆同时从 2 个主机 USB 插座汲取电源电流(但数据仅形成一个 USB 插座!),所有随机断开问题、挂起和锁定问题都消失了。