我通过切换到ath10k
驱动程序解决了这个问题,驱动程序现在已经发布了我的卡的驱动程序。我写了一个分步指南我所做的。
我使用 8192cu 驱动程序的 Debian 8 笔记本电脑在扫描 WiFi 网络时间歇性无法返回任何结果。如何解决该问题并让我的计算机在扫描 WiFi 网络时始终返回完整结果?
编辑1:更新我不使用的原因ath10k
编辑2:添加lspci -nnk | grep -iA2 net
我正在运行 Debian 8 笔记本电脑(Lenovo G50-80,更换了预装 Windows),并使用采用 RTL8188CUS/RTL8192CU 芯片组的 Kootek USB 无线适配器。 (我的板载 WiFi 使用ath10k
驱动程序,上次我检查时该驱动程序对于我的内核尚不可用 但我上次检查时卡的设备 ID 并未更新,所以我现在被迫使用加密狗。返回的板载 WiFi 的 PCI 设备和制造商 IDlspci -nn
为168c:0041
。)我知道我使用的加密狗在 Raspberry Pi 社区中非常受欢迎。
我已经下载了8192cu.ko
驱动程序,安装了它们,并成功加载它们并列入黑名单rtl8192cu
;中没有出现错误消息,并且无论何时插入加密狗,dmesg -w
我都不会出现界面wlan0
出现或8192cu
模块出现在输出中的问题。lsmod
但有时,sudo iwlist wlan0 scan
会返回
$ sudo iwlist wlan0 scan
wlan0 No scan results
$
即使我知道我位于多个 WiFi 网络附近。
当我插入加密狗时,它的蓝灯通常会闪烁一下。 LED 在扫描时发出适度明亮的光,在连接到网络时闪烁非常明亮。
WiFi 工作时断时续。有时它可以顺利地工作(“它可以工作”意味着我可以成功扫描并连接到 WiFi 网络)。其他日子我可以使用解决方法:拔下加密狗,重新插入,sudo iwlist wlan0 scan
如果我愿意的话,发送垃圾邮件,然后重复直到它起作用。有些日子(就像过去一周一样)它根本不起作用,即使在多次重新启动后也是如此。
我已经进行了几次 Google 查询来尝试解决此问题。我的大部分结果似乎都集中在那些没有让加密狗出现在 上的人lsusb
,或者他们的驱动程序版本与内核不匹配,或者在拉起接口时遇到问题的人。这些条件都不适用,这就是我问这个问题的原因。
我知道我应该在已知良好的计算机上测试加密狗。我还没有这样做,但如果你相信我应该这样做的话。
我用来wpa_supplicant
连接WiFi;我将 NetworkManager 用于公共网络和 WPA-PSK,并使用自行编写的脚本(基本上运行wpa_supplicant
并dhclient
使用自定义配置文件)来处理更复杂的网络。
我通常不维护我连接的无线接入点。这意味着我无法更改配置或检查设置。
我定期使用 Debian 安全存储库中的软件包更新我的系统。但这从未导致内核升级;仅升级到真正的 .deb 软件包。
文件和成绩单。如上所述,这些配置间歇性地工作。
uname -a
:
Linux hamming 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u4 (2016-02-29) x86_64 GNU/Linux
cat /etc/network/interfaces
:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/* # [this directory is empty]
# The loopback network interface
auto lo
iface lo inet loopback
lspci -nnk | grep -iA2 net
:
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 10)
Subsystem: Lenovo Device [17aa:3821]
Kernel driver in use: r8169
03:00.0 Network controller [0280]: Qualcomm Atheros Device [168c:0041] (rev 20)
Subsystem: Lenovo Device [17aa:3545]
自己编写的脚本,带有经过审查的识别细节(从互联网上的某个地方摘取,我不记得从哪里 - 也许改编自 Arch wiki 或论坛?从那时起,我出于自己的目的添加了健全性检查和标准输出详细信息):
#!/bin/bash
iface=wlan0
# check if sudo
if [[ "`id -u`" -ne 0 ]]; then
echo '*** run this as root you idiot'
exit 1
fi
# stop network manager
echo '*** stopping NM'
service network-manager stop
# stop any persistent wireless wpa2 auth sessions
echo '*** killing all wpa_supplicants'
killall wpa_supplicant
# shut down iface
echo '*** shutting down interface'
ifconfig $iface down
# set working mode of wireless device
echo '*** setting interface mode'
ifconfig $iface mode Managed
# enable iface
echo '*** enabling interface'
ifconfig $iface up
# apply dragonfly3 settings to device
echo '*** running wpa supplicant'
until wpa_supplicant -B -Dwext -i $iface -c ./connect-to-xxx.conf -dd; do
echo "*** error level $?";
done
echo "*** error level $?"
# obtain an IP address
echo '*** obtaining IP address'
dhclient $iface
echo "*** error level $?"
echo '*** complete'
cat ./connect-to-xxx.conf
,并对识别细节进行审查:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="xxx"
key_mgmt=WPA-EAP
eap=TTLS
ca_cert="/path/to/ca/cert.cer"
#scan_ssid=0
#pairwise=CCMP TKIP
#group=CCMP TKIP
identity="myusername"
password="mypassword"
phase2="auth=MSCHAPv2"
}
我使用有线以太网连接来发布这个问题,所以我没有实际尝试使用 WiFi 适配器时的日志记录。一旦我尝试在通常给我带来问题的地理位置连接 WiFi,我就会保存这些并在此处发布它们。
答案1
我假设您的 USB 加密狗没有外部天线,也有可能变化的条件和(大量)相邻网络会影响您可以获得的信号(如果有)。像有源微波炉和其他因素也会影响信号,请留意这些因素。
您的内部 WiFi 芯片很可能受益于笔记本电脑屏幕边缘周围的天线,因此它将获得更好的信号。要使 ath10k 驱动程序正常工作,您还需要firmware-atheros
从非免费存储库安装该软件包。正如 @Jeremy31 提到的,提出有关 Atheros 芯片安装的新问题(包括其信息)将为您提供获得最佳设置的最佳机会。
答案2
大家似乎一致认为我应该放弃 WiFi 适配器并尝试让ath10k
芯片正常工作。有一些更新的向后移植;我将构建它们,看看它们是否支持我的卡,并可能根据结果提出一个新问题。现在,我最初的疑问已经得到解决;感谢大家。