Recently I bought a laptop Acer E15 E5-553G-T4TJ and I'm running Ubuntu 20.04.

This laptop is equipped with a Qualcomm Atheros QCA9377 as wireless card and many times I face ping spikes and even disconnects.

In regular use, like YouTube, Google Meet, etc, I can't feel this issue, but it is there. I really feel this when I try to play anything (aka League of Legends under Lutris). My ping go over 100ms when playing.

First of all, I tried to buy a new router, but it doesn't work. So I decided to check my latency in terminal, pinging Google.com. For my surprise, I found high ping spikes. Intrigued about that, I tried to ping my router and voilá, I have my ping spikes as well.

This is my ping logs to my router:

PING www.mwlogin.net ( 56(84) bytes of data.
64 bytes from _gateway ( icmp_seq=1 ttl=64 time=13.2 ms
64 bytes from _gateway ( icmp_seq=2 ttl=64 time=67.6 ms
64 bytes from _gateway ( icmp_seq=3 ttl=64 time=114 ms
64 bytes from _gateway ( icmp_seq=4 ttl=64 time=150 ms
64 bytes from _gateway ( icmp_seq=5 ttl=64 time=4.63 ms
64 bytes from _gateway ( icmp_seq=6 ttl=64 time=3.66 ms
64 bytes from _gateway ( icmp_seq=7 ttl=64 time=23.4 ms
64 bytes from _gateway ( icmp_seq=8 ttl=64 time=55.4 ms
64 bytes from _gateway ( icmp_seq=9 ttl=64 time=43.2 ms
64 bytes from _gateway ( icmp_seq=10 ttl=64 time=73.2 ms
64 bytes from _gateway ( icmp_seq=11 ttl=64 time=102 ms
64 bytes from _gateway ( icmp_seq=12 ttl=64 time=126 ms
64 bytes from _gateway ( icmp_seq=13 ttl=64 time=154 ms
64 bytes from _gateway ( icmp_seq=14 ttl=64 time=4.36 ms
64 bytes from _gateway ( icmp_seq=15 ttl=64 time=5.33 ms
64 bytes from _gateway ( icmp_seq=16 ttl=64 time=85.4 ms
64 bytes from _gateway ( icmp_seq=17 ttl=64 time=149 ms
64 bytes from _gateway ( icmp_seq=18 ttl=64 time=157 ms
64 bytes from _gateway ( icmp_seq=19 ttl=64 time=22.6 ms
64 bytes from _gateway ( icmp_seq=20 ttl=64 time=11.2 ms
--- 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

With this said, I'm sure the problem isn't in my router nor ISP, but in my PC, probably with drivers.

So I researched a lot to found anything and I found that Qualcomm Atheros wireless cards are really problematic. I found a lot of possible solutions and I've tried many of them. I'll try to link to any I've tried, but I don't remember them all.

I tried:

I think this is all I've done, but I'm not sure.

I noticed that my ping spikes when I'm stressing GPU, so it could be related.

Here are my logs:


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

I think that's it.

Please, can someone help me? I have no clue what's wrong! :(

Thank you in advance.


After trying many things, I think I solved this issue.

WARNING: I don't know if what I've done is correct, but it worked for me.

First of all you need to download the most recent firmware on KValo's github on QCA9377/hw1.0 and copy the content to /lib/firmware/ath10k/QCA9377/

git clone https://github.com/kvalo/ath10k-firmware.git
sudo cp -r ath10k-firmware/QCA9377 /lib/firmware/ath10k/QCA9377

Here is the thing, I tried many times to replace the file firmware-5.bin with many versions of firmware with no success. So I identified the version on dmesg

dmesg | grep -E 'ath10k_pci .* firmware ver'

You may read the version you have installed (WLAN.TF.*).

Now you need find this version on the folders

ls -R /lib/firmware/ath10k/QCA9377/hw1.0/ | grep '.*WLAN.TF.<here you should fill with your dmesg result>'

Once you find the version you're running, you may find the firmware you're running with MD5 checksum

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

In my case, I was running firmware-6.bin, so I copied the latest version of the firmware to this file (which is, for now, 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

Make sure to match the firmware you're running to the file before copy! In my case it was firmware-6, but but it could be different to you!

Again, I don't know if this is correct for any case, but worked for me. Hope I could help.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.