![固件崩溃 qca6174 hw2.1](https://linux22.com/image/1012359/%E5%9B%BA%E4%BB%B6%E5%B4%A9%E6%BA%83%20qca6174%20hw2.1.png)
每次我的笔记本电脑进入睡眠状态(电池电量低)时,无线适配器就会崩溃。这会导致系统完全无法使用。我无法删除驱动程序、终止它或重新启动 NetworkManager。我也无法重新启动。
[40164.539367] wlp7s0: deauthenticating from 1a:5b:0e:ed:a3:9d by local choice (Reason: 3=DEAUTH_LEAVING)
[40164.790817] ath10k_pci 0000:07:00.0: firmware crashed! (uuid a6543dc3-4488-4dd3-8907-d3d69f6810ab)
[40164.790837] ath10k_pci 0000:07:00.0: qca6174 hw2.1 target 0x05010000 chip_id 0x003405ff sub 105b:e08e
[40164.790844] ath10k_pci 0000:07:00.0: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0
[40164.792107] ath10k_pci 0000:07:00.0: firmware ver SW_RM.1.1.1-00157-QCARMSWPZ-1 api 5 features ignore-otp,no-4addr-pad crc32 10bf8e08
[40164.792763] ath10k_pci 0000:07:00.0: board_file api 2 bmi_id N/A crc32 ae2e275a
[40164.792771] ath10k_pci 0000:07:00.0: htt-ver 3.1 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1
...a very long stacktrace below...
denis:~ $ ps ax | grep ath10
783 ? S< 0:00 [ath10k_wq]
784 ? S< 0:00 [ath10k_aux_wq]
23090 pts/2 D+ 0:00 sudo modprobe -r ath10k_pci
23381 ? D 0:00 sudo rmmod ath10k_pci
23564 ? D 0:00 sudo pkill ath10k_pci
23951 pts/3 S+ 0:00 grep --color=auto ath10
/lib/firmware/ath10k/QCA6174 $ ls
hw2.1 hw3.0
/lib/firmware/ath10k/QCA6174/hw2.1 $ sha256sum firmware-5.bin
cc77874b709e26ffcc1cd548a4813e4be8cd523329c1b3ba34e341417d2935c5 firmware-5.bin
/lib/firmware/ath10k/QCA6174/hw2.1 $ uname -a
Linux denis-Aspire-VN7-791G 4.10.0-38-generic #42~16.04.1-Ubuntu SMP Tue Oct 10 16:32:20 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ lshw -c network
WARNING: you should run this program as super-user.
*-network
description: Wireless interface
product: QCA6174 802.11ac Wireless Network Adapter
vendor: Qualcomm Atheros
physical id: 0
bus info: pci@0000:07:00.0
logical name: wlp7s0
version: 20
serial: ac:d1:b8:4e:2d:05
width: 64 bits
clock: 33MHz
capabilities: bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=ath10k_pci driverversion=4.10.0-38-generic firmware=SW_RM.1.1.1-00157-QCARMSWPZ-1 ip=192.168.43.156 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:36 memory:d1400000-d15fffff
$ cat /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
[connection]
wifi.powersave = 2
$ iwconfig
docker0 no wireless extensions.
wlp7s0 IEEE 802.11 ESSID:"Honor 10"
Mode:Managed Frequency:5.24 GHz Access Point: A4:93:3F:99:75:94
Bit Rate=6 Mb/s Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=65/70 Signal level=-45 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:68 Missed beacon:0
enp8s0 no wireless extensions.
lo no wireless extensions.
我需要找到一种方法来修复它,要么使用新驱动程序,要么修补现有驱动程序。有什么建议吗?也许一个简单的解决方法?
答案1
就我的情况而言(Ubuntu 18.04.3,qca6174 hw2.1 固件),内核 4.15 无法解决问题,内核 5 也无法解决问题。
经过两天的折腾,我终于能够使用较旧的固件 qca6174 版本解决问题。
我无法在自动挂起之前卸载 ath10k_pci 模块,无论是通过 systemd 单元还是使用 /lib/systemd/system/system-sleep 中的脚本都无法卸载。安装最新的 qca6174 表单软件也无济于事。
有帮助的是 2016 年的旧固件版本!现在我安装了 qca6174 hw2.1 版本 141,尽管我的笔记本运行的是内核 5 的 18.04.3。
我从这里得到了这个提示:https://askubuntu.com/a/978385/1004167所以我从那里获得了固件:https://launchpad.net/ubuntu/xenial/amd64/linux-firmware/1.157并将 ath10k_pci/QCA6174/hw2.1 文件(我的卡正在使用)复制到我的 /lib/firmware/ath10k/QCA6174/hw2.1 文件夹中。
重新启动后,我不需要先卸载驱动程序再挂起(删除了我的脚本)。
对我来说,现在进入睡眠和恢复功能已经可以正常工作,就像从 16.04 升级之前一样。我现在唯一需要了解的是,如何防止复制的文件被升级覆盖。