最近我购买了一台笔记本电脑 Acer E15 E5-553G-T4TJ,运行的是 Ubuntu 20.04。
这台笔记本电脑配备了 Qualcomm 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,而在于我的电脑,可能在于驱动程序。
所以我做了很多研究,发现 Qualcomm Atheros 无线网卡确实存在问题。我找到了很多可能的解决方案,并且尝试了很多。我会尝试链接到我尝试过的所有方法,但我记不清了。
我试过:
禁用硬件加密,如下这是 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/(英文):
无线适配器上禁用省电模式
skip_otp=y 在 ath10k_core 中
/etc/modprobe.d/ath10k_core.conf
在中正确设置 Reg Domain
/etc/default/crda
禁用 DHCP(我现在使用的是静态 IP)
我尝试了这个解决方案:Qualcomm Atheros QCA9377 丢失 wifi
我尝试安装反向移植,但没有解析内核,因此我可以使用
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
我认为就是这样。
请问有人能帮帮我吗?我不知道出了什么问题!:(
先感谢您。
答案1
尝试了很多方法之后,我认为我解决了这个问题。
警告:我不知道我所做的是否正确,但它对我有用。
首先,你需要下载最新的固件KValo 的 github在 QCA9377/hw1.0 上并将内容复制到 /lib/firmware/ath10k/QCA9377/
git clone https://github.com/kvalo/ath10k-firmware.git
sudo cp -r ath10k-firmware/QCA9377 /lib/firmware/ath10k/QCA9377
事情是这样的,我尝试了很多次firmware-5.bin
用多个版本的固件替换文件,但都没有成功。所以我在 dmesg 上确认了版本
dmesg | grep -E 'ath10k_pci .* firmware ver'
您可以读取您已安装的版本(WLAN.TF.*)。
现在你需要在文件夹中找到这个版本
ls -R /lib/firmware/ath10k/QCA9377/hw1.0/ | grep '.*WLAN.TF.<here you should fill with your dmesg result>'
找到你正在运行的版本后,你可能会发现你正在运行的固件带有 MD5 校验和
md5sum /lib/firmware/ath10k/QCA9377/hw1.0/<your firmware location based on previous ls command>
md5sum /lib/firmware/ath10k/QCA9377/hw1.0/firmware-6.bin
md5sum /lib/firmware/ath10k/QCA9377/hw1.0/firmware-5.bin
就我而言,我正在运行firmware-6.bin
,因此我将最新版本的固件复制到此文件(目前为 WLAN.TF.1.0-00023-QCATFSWPZ-1)。
cp /lib/firmware/ath10k/QCA9377/hw1.0/firmware-6.bin /lib/firmware/ath10k/QCA9377/hw1.0/firmware-6.bin.old
cp /lib/firmware/ath10k/QCA9377/hw1.0/WLAN.TF.1.0/firmware-5.bin_WLAN.TF.1.0-00023-QCATFSWPZ-1 /lib/firmware/ath10k/QCA9377/hw1.0/firmware-6.bin
复制之前,请确保将您正在运行的固件与文件匹配!在我的情况下,它是固件 6,但它可能与您不同!
再次,我不知道这是否适用于任何情况,但对我来说是有效的。希望我能帮上忙。