Ubuntu 16.04 - 无法使用Killer 1535 (QCA6174)连接家庭Wi-Fi网络

最近我在MSI GS63VR笔记本电脑上安装了Ubuntu 16.04,并进行了双系统启动(与Windows 10一起)。这台笔记本电脑配备了Killer 1535 Wi-Fi适配器(带有QCA6174芯片)。我按照他们官方网站上的说明进行了操作。

Ubuntu 16.04

The built in drivers should work without any changes, though you may need to update your wireless firmware:

wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/linux-firmware_1.162_all.deb
sudo dpkg -i linux-firmware*.deb
sudo modprobe -r ath10k_pci && sudo modprobe ath10k_pci
有一点要提醒的是 - 提到的文件已经不存在了,所以信息有点过时。因此,我查看了整个列表,并使用了最新可用版本(1.164)
即使Wi-Fi网络是可见的,不幸的是我无法连接到家里的Wi-Fi。我多次检查了密码,确保是正确的。
奇怪的是,我可以连接到设置在智能手机上的Android访问点。而且其他设备在家里都可以连接到这个Wi-Fi,没有任何问题,并且在同样距离下,Windows 10上的同一台笔记本电脑上也可以正常工作。所以现在我被迫使用Android访问点作为临时解决方法。
路由器放在大厅里(离地面约1米半的墙上)。距离是:大厅-客厅-我的房间(大约8-9米)。如果我靠近路由器,我可以立即连接到家庭Wi-Fi,速度相当不错。甚至在我的房间里,如果我走到门口(离我的工作桌大约1米半远),我也能够连接,并且速度相当不错。但是,如果我把笔记本电脑放在工作桌上,根本无法连接,或者如果我幸运地连接上了(这种情况非常非常少见),网络也无法使用。如果我把笔记本电脑移到床上,连接的机会稍微高一些,但速度非常非常慢,也无法使用。
现在对我来说,移动路由器(或者自己靠近路由器)不是一个选择,而且这只会在本地解决问题(仅适用于我的环境)。
所以我认为原因要么是驱动程序,要么是Ubuntu特定的设置,因为同样距离下,使用Windows 10的笔记本电脑没有问题。
重要提示:在发布这个问题之前,我进行了很多搜索,并尝试了类似问题中提出的建议。但是,这些建议对我都没有起作用。
相关输出:
sudo lshw -c network

是:
description: Wireless interface
product: QCA6174 802.11ac Wireless Network Adapter
vendor: Qualcomm Atheros
physical id: 0
bus info: pci@0000:3e:00.0
logical name: wlp62s0
version: 32
serial: **:**:**:**:**:**
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=ath10k_pci driverversion=4.8.0-36-generic firmware=WLAN.RM.2.0-00180-QCARMSWPZ-1 ip=***.***.**.* latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:132 memory:df200000-df3fffff

的输出:

dmesg | grep ath10k

是:
[    3.086898] ath10k_pci ****:**:**.*: enabling device (0000 -> 0002)
[    3.087198] ath10k_pci ****:**:**.*: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[    3.372179] ath10k_pci ****:**:**.*: Direct firmware load for ath10k/pre-cal-pci-****:**:**.*.bin failed with error -2
[    3.372184] ath10k_pci ****:**:**.*: Direct firmware load for ath10k/cal-pci-****:**:**.*.bin failed with error -2
[    3.372360] ath10k_pci ****:**:**.*: Direct firmware load for ath10k/QCA6174/hw3.0/firmware-5.bin failed with error -2
[    3.372361] ath10k_pci ****:**:**.*: could not fetch firmware file 'ath10k/QCA6174/hw3.0/firmware-5.bin': -2
[    3.373277] ath10k_pci ****:**:**.*: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 1a56:1535
[    3.373277] ath10k_pci ****:**:**.*: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0
[    3.373623] ath10k_pci ****:**:**.*: firmware ver WLAN.RM.2.0-00180-QCARMSWPZ-1 api 4 features wowlan,ignore-otp,no-4addr-pad crc32 75dee6c5
[    3.436610] ath10k_pci ****:**:**.*: board_file api 2 bmi_id N/A crc32 8c15898f
[    5.561030] ath10k_pci ****:**:**.*: htt-ver 3.26 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1
[    5.656429] ath10k_pci ****:**:**.* wlp62s0: renamed from wlan0

这是连接到Android接入点的日志记录:
[  107.007374] wlp62s0: authenticate with **:**:**:**:**:**
[  107.057897] wlp62s0: send auth to **:**:**:**:**:** (try 1/3)
[  107.059728] wlp62s0: authenticated
[  107.061296] wlp62s0: associate with **:**:**:**:**:** (try 1/3)
[  107.064661] wlp62s0: RX AssocResp from **:**:**:**:**:** (capab=0x411 status=0 aid=1)
[  107.067985] wlp62s0: associated
[  107.068042] IPv6: ADDRCONF(NETDEV_CHANGE): wlp62s0: link becomes ready

以下是连接到家庭无线网络的日志记录:
[  101.628172] wlp62s0: authenticate with **:**:**:**:**:**
[  101.674946] wlp62s0: send auth to **:**:**:**:**:** (try 1/3)
[  101.679850] wlp62s0: send auth to **:**:**:**:**:** (try 2/3)
[  101.684955] wlp62s0: send auth to **:**:**:**:**:** (try 3/3)
[  101.690259] wlp62s0: authentication with **:**:**:**:**:** timed out
[  102.308700] IPv6: ADDRCONF(NETDEV_UP): wlp62s0: link is not ready

我使用了:

dmesg | grep wlp62s0

命令以检索此信息。

一些建议建议从kvalo/ath10k-firmware存储库替换固件文件,所以我也决定试一试:

cd ~/programs/
git clone https://github.com/kvalo/ath10k-firmware.git
sudo rm -rf /lib/firmware/ath10k/QCA6174/
sudo cp -r ath10k-firmware/QCA6174 /lib/firmware/ath10k/
cd /lib/firmware/ath10k/QCA6174/hw2.1/
sudo mv firmware-5.bin_SW_RM.1.1.1-00157-QCARMSWPZ-1 firmware-5.bin
cd ../hw3.0
sudo mv firmware-4.bin_WLAN.RM.2.0-00180-QCARMSWPZ-1 firmware-4.bin
sudo modprobe -r ath10k_pci && sudo modprobe ath10k_pci
reboot

很遗憾,这并没有太大帮助。

以下是我尝试的其他方法:

1) 我使用这种方法禁用了IPv6。现在这种错误信息 - "IPv6: ADDRCONF(NETDEV_UP): wlp62s0: link is not ready" 已经消失了,但是身份验证仍然超时:

2) 我按照Jeremy31这个答案中提到的建议更改了电源管理设置。现在有时候进程会稍微前进一些:

[   76.352810] wlp62s0: authenticate with **:**:**:**:**:**
[   76.400120] wlp62s0: send auth to **:**:**:**:**:** (try 1/3)
[   76.405250] wlp62s0: authenticated
[   76.407644] wlp62s0: associate **:**:**:**:**:** (try 1/3)
[   76.418128] wlp62s0: RX AssocResp from **:**:**:**:**:** (capab=0x431 status=0 aid=2)
[   76.421150] wlp62s0: associated
[  122.364346] wlp62s0: deauthenticating **:**:**:**:**:** by local choice (Reason: 3=DEAUTH_LEAVING)

在其他情况下我会像更新1中一样超时。 3) 更改路由器设置以仅使用WPA2加密。尝试了其他设置,如模式、频道、频带宽度。尝试按提供者建议手动设置连接属性(地址、网络、网关和DNS)。 4) 将无线电监管域设置为我的国家代码(KZ,代表哈萨克斯坦)。
应用后的日志内容:
[    5.958257] ath: EEPROM regdomain: 0x6c
[    5.958258] ath: EEPROM indicates we should expect a direct regpair map
[    5.958259] ath: Country alpha2 being used: 00
[    5.958259] ath: Regpair used: 0x6c
[    5.963073] ath10k_pci 0000:3e:00.0 wlp62s0: renamed from wlan0

尝试更改“skip_otp”选项:
echo "options ath10k_pci skip_otp=y"  >  /etc/modprobe.d/ath10k.conf

这没有帮助,而且还在日志中给出了这行内容:
[    3.381182] ath10k_pci: unknown parameter 'skip_otp' ignored

6)尝试使用其他固件版本,例如1.157.9
同时我在Ubuntu论坛上提出了同样的问题,但仍然没有成功。这对我来说是最大的问题,因为我无法正常工作而没有良好的网络连接。
非常感谢任何帮助和建议。如果您需要更多信息,请告诉我。

2由于您可以连接到Android热点,无线似乎是正常工作的。我怀疑问题出在路由器上,而不是您的电脑上。也许您在WiFi路由器上启用了MAC过滤,并且没有将笔记本电脑的MAC地址添加进去?或者,您已经用尽了路由器设置中的DHCP地址数量。任何一种情况都可能导致路由器不允许连接。您能够短暂连接的时间可能是因为网络上的其他设备没有连接,这样为笔记本电脑提供了一个可用的地址,但在测试过程中,您又失去了该地址,被其他设备占用了。 - user649240
@GypsySpellweaver 谢谢你的建议,但是路由器的设置中没有这样的限制。 - arogachev
1路由器支持无线N或AC吗?它使用WEP还是TKIP加密? - Jeremy31
@Jeremy31 协议是802.11n,安全类型为WPA2个人,WPA加密模式为AES(可以在路由器设置中切换为TKIP)。 - arogachev
1请查看我在这里的回答(https://askubuntu.com/a/884987/300665),看看是否有帮助。 - Jeremy31
@Jeremy31 谢谢,我试过了。现在我得到了“本地选择取消认证...(原因:3=DEAUTH_LEAVING)”(有关更多详细信息,请参见初始问题中的更新2)。 - arogachev
2您在UF上的帖子显示路由器启用了WPA和WPA2,您可以禁用WPA,只保留WPA2加密,并尝试靠近接入点。 - Jeremy31
我也有一个类似的故事,我的GS73VR与路由器的距离更近一些。将我的笔记本电脑放在离路由器约4米的地方,它可以稳定连接到WiFi,但速度很慢 - 在Ubuntu中大约是1-2兆比特每秒(使用固件版本1.167),而在完全相同的位置上,在Windows 10中速度达到了大约25兆比特每秒。稍微远一点(4.5-5米)会导致WiFi连接非常不稳定,速度甚至更慢。你是否找到了一些有效的解决方案来改善在Ubuntu中使用Killer 1535的所有这些情况?看起来我已经尝试了我能找到的所有建议。 - trushkevich
类似的情况也发生在我的Alienware 17R3上,不过有一个例外,它距离路由器有2-3米的直线视线。速度为6 Mbps。但这并不是问题,因为我使用的是Killer Ethernet:以太网控制器:Qualcomm Atheros Killer E2400千兆以太网控制器(版本10)。WiFi卡片则是更新一代:3c:00.0 网络控制器:Qualcomm Atheros QCA6174 802.11ac无线网络适配器(版本32) - WinEunuuchs2Unix
我注意到你“取消接受”了我的答案。我不确定为什么,但我今天已经修订了它。 - WinEunuuchs2Unix
3个回答

尽管在发布这个问题时QCA6174存在一些错误,但已经修复了。当然,可能还会出现新的错误。要修复这些旧错误,请使用:

sudo apt update
sudo apt upgrade

新安装不会出现上述的旧漏洞,并且无需进行任何修复旧漏洞的操作。

与您在网络管理器节能链接中相反,我已将我的卡设置为相反的方式:

$ cat /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
[connection]
wifi.powersave = 3
# Slow sleep fix: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1670041
#wifi.powersave = 2

你的dmesg输出显示:
无法获取固件文件 'ath10k/QCA6174/hw3.0/firmware-5.bin'。
然而,你尝试使用kvalo固件解决此问题时,将firmware-5.bin文件放在了'/lib/firmware/ath10k/QCA6174/hw2.1/'而不是期望找到它的'..../ath10k/QCA6174/hw3.0'位置。除此之外的一切都可能是多余的,因为请求的固件未找到。


Github: 或者项目的链接似乎是https://github.com/kvalo/ath10k-firmware - Tux
感谢你尝试帮助。我已经尝试了评论中提供的.deb文件以及使用kvalo/ath10k-firmware中最新的QCA6174文件夹,但不幸的是,仍然无法在这个距离上连接。 - arogachev