最近我买了一台笔记本电脑 Acer E15 E5-553G-T4TJ,我运行的是 Ubuntu 20.04。
这台笔记本电脑配备了高通 Atheros QCA9377 作为无线网卡,我多次遇到 ping 尖峰甚至断开连接。
在常规使用中,如 YouTube、Google Meet 等,我感觉不到这个问题,但它确实存在。当我尝试玩任何游戏(又名 Lutris 下的英雄联盟)时,我真的有这种感觉。播放时我的 ping 超过 100 毫秒。
首先,我尝试购买一个新的路由器,但它不起作用。所以我决定在终端检查我的延迟,ping Google.com。令我惊讶的是,我发现了高 ping 峰值。对此很感兴趣,我尝试 ping 我的路由器,瞧,我也有我的 ping 尖峰。
这是我到路由器的 ping 日志:
PING www.mwlogin.net (192.168.1.1) 56(84) bytes of data.
64 bytes from _gateway (192.168.1.1): icmp_seq=1 ttl=64 time=13.2 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=2 ttl=64 time=67.6 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=3 ttl=64 time=114 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=4 ttl=64 time=150 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=5 ttl=64 time=4.63 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=6 ttl=64 time=3.66 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=7 ttl=64 time=23.4 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=8 ttl=64 time=55.4 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=9 ttl=64 time=43.2 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=10 ttl=64 time=73.2 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=11 ttl=64 time=102 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=12 ttl=64 time=126 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=13 ttl=64 time=154 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=14 ttl=64 time=4.36 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=15 ttl=64 time=5.33 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=16 ttl=64 time=85.4 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=17 ttl=64 time=149 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=18 ttl=64 time=157 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=19 ttl=64 time=22.6 ms
64 bytes from _gateway (192.168.1.1): icmp_seq=20 ttl=64 time=11.2 ms
^C
--- www.mwlogin.net ping statistics ---
20 packets transmitted, 20 received, 0% packet loss, time 19030ms
rtt min/avg/max/mdev = 3.661/68.308/156.966/56.062 ms
话虽如此,我确信问题不在于我的路由器或 ISP,而在于我的 PC,可能与驱动程序有关。
所以我研究了很多发现什么,我发现高通创锐讯无线卡确实有问题。我找到了很多可能的解决方案,并且我已经尝试了很多。我会尝试链接到我尝试过的任何内容,但我不记得所有内容。
我试过了:
禁用硬件加密,遵循这篇 It's FOSS 文章;我从 ath9k 改编为 ath10k(我也在互联网上找到了这个);
修复 Avahi-daemon
/etc/nsswitch.conf
(https://itsfoss.com/speed-up-slow-wifi-connection-ubuntu/);禁用 ipv6 支持(https://itsfoss.com/speed-up-slow-wifi-connection-ubuntu/);
禁用无线适配器上的省电模式
在ath10k_core 上skip_otp=y
/etc/modprobe.d/ath10k_core.conf
正确设置注册域
/etc/default/crda
禁用 DHCP(我现在使用静态 IP)
我试过这个解决方案:Qualcomm Atheros QCA9377 drop wifi
我尝试安装 backports,但没有解析内核,所以我可以使用
make
命令
我想这就是我所做的一切,但我不确定。
我注意到当我对 GPU 施加压力时,我的 ping 会出现峰值,所以这可能是相关的。
这是我的日志:
iwconfig
:
wlp2s0 IEEE 802.11 ESSID:"Rudah"
Mode:Managed Frequency:2.462 GHz Access Point: 38:6B:1C:7D:3D:D6
Bit Rate=1 Mb/s Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=69/70 Signal level=-41 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:19 Missed beacon:0
dmesg | grep atk10k
[ 15.096274] ath10k_pci 0000:02:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[ 16.450335] ath10k_pci 0000:02:00.0: qca9377 hw1.1 target 0x05020001 chip_id 0x003821ff sub 11ad:08a6
[ 16.450339] ath10k_pci 0000:02:00.0: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0
[ 16.450954] ath10k_pci 0000:02:00.0: firmware ver WLAN.TF.2.1-00021-QCARMSWP-1 api 6 features wowlan,ignore-otp crc32 42e41877
[ 16.571762] ath10k_pci 0000:02:00.0: board_file api 2 bmi_id N/A crc32 8aedfa4a
[ 16.646057] ath10k_pci 0000:02:00.0: unsupported HTC service id: 1536
[ 16.664790] ath10k_pci 0000:02:00.0: htt-ver 3.56 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1
[ 16.810650] ath10k_pci 0000:02:00.0 wlp2s0: renamed from wlan0
[ 32.981113] ath10k_pci 0000:02:00.0: unsupported HTC service id: 1536
[10191.788103] ath10k_pci 0000:02:00.0: failed to flush transmit queue (skip 0 ar-state 1): 0
[10194.311146] ath10k_pci 0000:02:00.0: unsupported HTC service id: 1536
[14252.126988] ath10k_pci 0000:02:00.0: unsupported HTC service id: 1536
hwinfo --netcard --wlan --bluetooth | grep -Ei "model\:|driver\:|status\:|cmd\:|file\:|detected\:" | grep -v "Config Status"
Model: "Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter"
Driver: "ath10k_pci"
Device File: wlp2s0
Link detected: yes
Driver Status: ath10k_pci is active
Driver Activation Cmd: "modprobe ath10k_pci"
Model: "Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller"
Driver: "r8169"
Device File: enp1s0f1
Link detected: no
Driver Status: r8169 is active
Driver Activation Cmd: "modprobe r8169"
Model: "Lite-On Bluetooth Device"
Driver: "btusb"
Driver Status: btusb is active
Driver Activation Cmd: "modprobe btusb"
rfkill list all
0: acer-wireless: Wireless LAN
Soft blocked: no
Hard blocked: no
1: acer-bluetooth: Bluetooth
Soft blocked: no
Hard blocked: no
2: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
3: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
我想就是这样。
请问,有人可以帮我吗?我不知道出了什么问题!:(
先感谢您。
在尝试了很多事情之后,我想我解决了这个问题。
警告:我不知道我所做的是否正确,但它对我有用。
首先你需要在QCA9377/hw1.0的KValo的github上下载最新的固件并将内容复制到/lib/firmware/ath10k/QCA9377/
事情是这样的,我多次尝试
firmware-5.bin
用多个版本的固件替换文件,但没有成功。所以我在 dmesg 上确定了版本您可以阅读已安装的版本 (WLAN.TF.*)。
现在你需要在文件夹中找到这个版本
找到您正在运行的版本后,您可能会使用 MD5 校验和找到您正在运行的固件
在我的例子中,我正在运行
firmware-6.bin
,所以我将最新版本的固件复制到这个文件中(目前是 WLAN.TF.1.0-00023-QCATFSWPZ-1)。确保在复制之前将您正在运行的固件与文件匹配!在我的情况下,它是固件 6,但它可能对你不同!
同样,我不知道这是否适用于任何情况,但对我有用。希望我能帮上忙。