Network Drops with Qualcomm Atheros QCA6174

I have an issue with the QCA6174, and I think it may help advance the general knowledge on this. I recognize that there are a number of prior, semi-resolved threads on this specific network card. But hear me out.

I recently switched up and updated my three primary routers, all of which run either Tomato or DD-WRT. This led to some confusion because the result was that my Lenovo's wifi would intermittently drop the internet connection -- not the wireless connection, just the internet. For example, when pinging 1.1.1.1 for 500 times, I would lose 64% of the packets. I thought it was the routers until I tried another computer. It was the Lenovo. All other computers on the wifi network -- including one running Manjaro, but with a different Atheros card -- had no issue with the routers' wifi. So, multiple other computers with other network cards running Fedora, Ubuntu, and GalliumOS, all had no issues at all. Nor did and Android phone and an iOS phone.

That leaves the Lenovo, which luckily has multiple distros on it, including Manjaro and Fedora (both fully current). When running Manjaro -- my much preferred distro -- the wifi drops when connected to my router's main network. When running Fedora on the same Lenovo, the wifi works perfectly.

Interestingly, I recently learned that when running Manjaro on the Lenovo, it has no issues with my guest network on the same router (same 2.4Ghz N with same WPA2 AES as the main network). Also, the Manjaro Lenovo has no issues when connected to my Android hotspot.

I have tried the following from other forums/research:

  1. turned off TLP
  2. deleted current wifi setup in GNOME network manager
  3. turned off IPv6 via grub
  4. added grub entry pcie_aspm=off as suggested here
  5. tried a new kernel
  6. masked bluetooth
  7. ensured wireless domain is US
  8. changed powersave via /etc/udev/rules.d/70-wifi-powersave.rules suggested here
  9. updated the firmware as per this thread
  10. tried both 2.4Ghz and 5Ghz

I will post the output of various troubleshooting commands in the next post.

inxi -Fxxxz

System:    Host: manjaro-yoga Kernel: 5.2.21-rt14-MANJARO x86_64 bits: 64 compiler: gcc 
           v: 9.2.0 Desktop: Gnome 3.34.1 wm: gnome-shell dm: GDM 3.34.1 
           Distro: Manjaro Linux 
Machine:   Type: Convertible System: LENOVO product: 80VF v: Lenovo YOGA 910-13IKB 
           serial: <filter> Chassis: type: 31 v: Lenovo YOGA 910-13IKB serial: <filter> 
           Mobo: LENOVO model: Agera v: SDK0J40709 WIN serial: <filter> UEFI: LENOVO 
           v: 2JCN39WW date: 05/31/2017 
Battery:   ID-1: BAT1 charge: 27.1 Wh condition: 61.9/78.0 Wh (79%) volts: 8.1/7.7 
           model: Simplo BASE-BAT type: Li-poly serial: <filter> status: Charging 
CPU:       Topology: Dual Core model: Intel Core i7-7500U bits: 64 type: MCP 
           arch: Amber Lake rev: 9 L2 cache: 4096 KiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 11620 
           Speed: 610 MHz min/max: 400/3500 MHz Core speeds (MHz): 1: 616 2: 624 
Graphics:  Device-1: Intel HD Graphics 620 vendor: Lenovo driver: i915 v: kernel 
           bus ID: 00:02.0 chip ID: 8086:5916 
           Display: x11 server: X.Org 1.20.6 driver: intel unloaded: modesetting,vesa 
           alternate: fbdev compositor: gnome-shell resolution: 1920x1080~60Hz 
           OpenGL: renderer: Mesa DRI Intel HD Graphics 620 (Kaby Lake GT2) 
           v: 4.5 Mesa 19.2.7 compat-v: 3.0 direct render: Yes 
Audio:     Device-1: Intel Sunrise Point-LP HD Audio vendor: Lenovo driver: snd_hda_intel 
           v: kernel bus ID: 00:1f.3 chip ID: 8086:9d71 
           Sound Server: ALSA v: k5.2.21-rt14-MANJARO 
Network:   Device-1: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter 
           vendor: Lenovo driver: ath10k_pci v: kernel port: 3040 bus ID: 01:00.0 
           chip ID: 168c:003e 
           IF: wlp1s0 state: up mac: <filter> 
           Device-2: Qualcomm Atheros type: USB driver: btusb bus ID: 1-8:4 
           chip ID: 0cf3:e300 
Drives:    Local Storage: total: 238.47 GiB used: 58.33 GiB (24.5%) 
           ID-1: /dev/nvme0n1 vendor: Samsung model: MZVLW256HEHP-000L2 size: 238.47 GiB 
           speed: 31.6 Gb/s lanes: 4 serial: <filter> rev: 1L1QCXB7 scheme: GPT 
Partition: ID-1: / size: 81.29 GiB used: 58.04 GiB (71.4%) fs: ext4 dev: /dev/dm-0 
           ID-2: /boot size: 453.7 MiB used: 110.3 MiB (24.3%) fs: ext4 
           dev: /dev/nvme0n1p6 
Sensors:   System Temperatures: cpu: 41.5 C mobo: 29.8 C 
           Fan Speeds (RPM): N/A 
Info:      Processes: 279 Uptime: 1h 07m Memory: 7.54 GiB used: 2.43 GiB (32.2%) 
           Init: systemd v: 242 Compilers: gcc: 9.2.0 Shell: bash v: 5.0.11 
           running in: gnome-terminal inxi: 3.0.37

find /etc/modprobe.d -type f -name "*.conf" -print -execdir cat '{}' \; -execdir echo \;/etc/modprobe.d/cfg80211.conf

options cfg80211 ieee80211_regdom=US

sudo dmesg|grep firmware|grep ath10k_pci
[ 10.055782] ath10k_pci 0000:01:00.0: firmware ver WLAN.RM.4.4.1-00140-QCARMSWPZ-1 api 6 features wowlan,ignore-otp,mfp crc32 29eb8ca1

sudo dmesg | grep -i 'ath10|atheros'

[    9.218057] ath10k_pci 0000:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[    9.496300] ath10k_pci 0000:01:00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 17aa:0827
[    9.496304] ath10k_pci 0000:01:00.0: kconfig debug 1 debugfs 1 tracing 1 dfs 0 testmode 0
[    9.496673] ath10k_pci 0000:01:00.0: firmware ver WLAN.RM.4.4.1-00140-QCARMSWPZ-1 api 6 features wowlan,ignore-otp,mfp crc32 29eb8ca1
[    9.580366] ath10k_pci 0000:01:00.0: board_file api 2 bmi_id N/A crc32 4ed3569e
[    9.737262] ath10k_pci 0000:01:00.0: unsupported HTC service id: 1536
[    9.756501] ath10k_pci 0000:01:00.0: htt-ver 3.60 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1
[    9.954259] ath10k_pci 0000:01:00.0 wlp1s0: renamed from wlan0
[   10.295138] ath10k_pci 0000:01:00.0: unsupported HTC service id: 1536
[   10.721634] ath10k_pci 0000:01:00.0: unsupported HTC service id: 1536
[ 1503.022604] Modules linked in: fuse ccm rfcomm hid_sensor_als hid_sensor_accel_3d hid_sensor_trigger cmac arc4 industrialio_triggered_buffer algif_hash kfifo_buf hid_sensor_iio_common algif_skcipher industrialio af_alg bnep joydev mousedev intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp snd_hda_codec_hdmi snd_soc_skl snd_soc_hdac_hda snd_hda_ext_core ath10k_pci hid_multitouch hid_sensor_hub snd_soc_skl_ipc kvm_intel ath10k_core snd_hda_codec_realtek snd_soc_sst_ipc btusb snd_soc_sst_dsp ath snd_hda_codec_generic ledtrig_audio iTCO_wdt btrtl snd_soc_acpi_intel_match kvm snd_soc_acpi hid_generic btbcm iTCO_vendor_support intel_wmi_thunderbolt wmi_bmof mei_hdcp btintel snd_soc_core mac80211 i915 uvcvideo videobuf2_vmalloc videobuf2_memops snd_compress nls_iso8859_1 bluetooth ac97_bus videobuf2_v4l2 nls_cp437 snd_pcm_dmaengine irqbypass videobuf2_common snd_hda_intel vfat intel_cstate fat intel_uncore snd_hda_codec videodev intel_rapl_perf media ecdh_generic snd_hda_core input_leds
[ 1504.248554] ath10k_pci 0000:01:00.0: unsupported HTC service id: 1536

If you never found this thread have a read:

You could also try adding a kernel boot parameter:

First make a backup of /etc/default/grub with the following command:

sudo cp /etc/default/grub /etc/default/grub.bak

The following command will add a GRUB kernel boot parameter to /etc/default/grub:

sudo sed '/^GRUB_CMDLINE_LINUX_DEFAULT=/s/"$/ pcie_aspm=off "/g' -i /etc/default/grub

After adding the boot parameter(s) , run:

sudo update-grub 

Reboot, and test your connection for improvement.

1 Like

Thanks @tbg, I was hoping you would see this. I wasn't clear in my first post on that score. I will go back and add links to all of what I tried. I did try several grub entries, including: pcie_aspm=off and ath10k_core.skip_otp=y.

Your inxi output has your kernel listed as 5.2. Have you tested other kernels as kernel 5.2 is end of life. You should not use EOL kernels as your daily driver. Test kernels 4.19, 4.14, 5.3, and 5.4 in that order.

Some wifi adapters are very finicky on the settings in the router. Many devices may work perfectly fine with a specific AP, while another device may be flaky. Have you tried setting different fixed channels, changing bandwidths, setting a static IP Address via MAC Address association in your router settings.

2 Likes

Thanks again. I started the testing with 4.19. Not sure what happened to get 5.2, as I was shooting for 5.4. I'll try each and report back.

Regarding the router, I've tried three different routers (in turn, not simultaneously) with different channels (1, 6, 11 for 2.4 Ghz and various for 5). The laptop has a set wifi IP addresses at the router, which as you say is set via MAC address.

Have you tried different Manjaro live boot environments to see if the same problems exist on different Manjaro DE's. I have found sometimes the different Manjaro spins will react differently. I would suggest trying KDE, Cinnamon, or the Wayfire Manjaro spins for comparisson.

Interesting idea. Would that help troubleshoot? Or just provide an alternative? I'm pretty ensconced in GNOME and don't really like the other DEs. Tried most of them, just didn't do it for me. But if if will help troubleshoot, I'll do it.

Especially the Wayfire edition will help troubleshoot as it uses different core networking components. It would definitely be worth trying for troubleshooting purposes.

Another option might be to test an alternate GUI Network Manager such as Connman & CMST. WICD is also another option you could test. Sometimes Network Manerger is the cause of dropped connections and using an alternate manager can correct the issue.

Here IS link to a tutorial I wrote a while back on how to switch to Connman & CMST.

Have you tested the "skip_opt" ath10k driver option yet?

You can create the ath10k driver options file with this command:

echo "options ath10k_core skip_otp=y" | sudo tee -a /etc/modprobe.d/ath10k.conf

You can delete the options file if it does not result in improvement.

You should be sure you have the newest ath10k firmware from kvallo at Github.

The installation instructions can be found here:

https://wireless.wiki.kernel.org/en/users/Drivers/ath10k/firmware

You could also test older versions of the linux-firmware packages if you have run out of other ideas.

Just tested the "skip_opt" ath10k driver. No good.

Burning Wayfire .iso now.

I also reinstalled all of the ath10k firmware files from kvalo on GitHub. No improvement.

I will also try to find out what this means:

sudo dmesg | grep ath10k

[ 16.648429] ath10k_pci 0000:01:00.0: unsupported HTC service id: 1536

If Wayfire works without disconnects then you will know it is your network setup that is causing the issue and not the driver or firmware.

In that case your best bet might be to install Connman and replace Network Manager.

Thanks @tbg. The Wayfire liveUSB had the same connection issue. Does that lead us anywhere?

Unfortunately, that does not help with a solution, but it does help somewhat. That at least eliminates Network Manager and its associated applet as part of the problem.

Sorry but I'm not sure where to go from here. There are other tricks with the firmware you could try. You could try using older firmware versions. If you search the internet you will find various tricks on how to play around with the board.bin version.

As I don't have your adapter I'm unfortunately pretty much at the point where I probably can't help too much with further troubleshooting steps.

I wish I could have been of more help.

Good luck.

No, you were great. Appreciate all the help. I have a few more ideas. The fact that the card works with my guest wifi and with my hotspot suggests that it is a combo router-card issue. I'm going to flash my router to its original state and see if a default dd-wrt network has any issues. My guess is that it has to do with the IP address assignment and DHCP -- because the guest network is on a different subnet, it is assigning a different IP to the card when it connects. Just a guess, but I'll try it out and report back.

My QCA9377 doesn't like channel 153 for some reason. Perhaps try fiddling with the 5GHz channel on your router.

Perhaps if that is the case disable MAC Address association in your router and set the connections properties to auto select address. Do not program in alternate DNS servers and let network manager fully control the connection.

1 Like

I confirmed that the primary issue was the IP Address assignment via MAC Address. Essentially, I switched the MAC address between two devices when assigning the IP addresses. I'm not sure why that caused the problem, as the router just assigned different IP addresses than I had expected. It must be the case that I assigned a static IP to the Manjaro computer at some point and forgot.

So, it appears largely fixed and -- of course -- has nothing to do with my QCA6174.

I do now have a strange question mark inside the tray icon for the wifi, and I am dropping about 1% of packets, but I can deal with those now -- knowing that the issues lie with the router config.

I think this is the second or third thread I've seen where it ended up being a problem on the router side. I thought I had taken that into sufficient consideration, but obviously not. It might make sense next time this issue arises for the user to try reverting to a standard config on their router (after backing up their current config), and seeing if the problem persists. Especially in the instances where the Manjaro machine can connect to other devices/hotspots.

Thanks again for all of your help!

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by