Ubuntu 16.04

Ubuntu 16.04

最近我在 MSI GS63VR 笔记本电脑上安装了 Ubuntu 16.04,并安装了双启动(Windows 10)。这台笔记本电脑配有 Killer 1535 Wi-Fi 适配器(带 QCA6174 芯片)。我遵循指示在他们的官方网站上:

Ubuntu 16.04

内置驱动程序无需任何更改即可工作,但您可能需要更新无线固件:

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

以下是家庭 Wi-Fi 连接日志:

[  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-固件repo 所以我决定也尝试一下:

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:链接未准备好”已经消失,但身份验证仍然超时:

2)我按照建议更改了电源管理设置杰里米31这个答案。现在有时这个过程会更进一步:

[   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

5)尝试改变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 论坛,但仍然没有成功。这对我来说是现在最大的问题,因为如果没有良好的网络连接,我无法正常工作。

任何帮助和建议都非常感谢。如果您需要更多信息,请告诉我。

答案1

尽管在发布此问题时 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

答案2

答案3

dmesg 的输出表明:

无法获取固件文件“ath10k/QCA6174/hw3.0/firmware-5.bin”

但是,您尝试使用 kvalo 固件解决此问题,/lib/firmware/ath10k/QCA6174/hw2.1/但将 firmware-5.bin 文件放在..../ath10k/QCA6174/hw3.0了预期的 / 位置。除此之外的所有内容可能都是多余的,因为找不到请求的固件。

相关内容