QCA6174 wifi disconnects

I’m relatively new with OpenSUSE. Just installed leap 42.2 version and I have a problems with Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter.

02:00.0 Network controller [0280]: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter [168c:003e] (rev 32)
        Subsystem: Lenovo Device [17aa:0827]                                                                                                                                                                                                                                   
        Kernel driver in use: ath10k_pci                                                                                                                                                                                                                                       
        Kernel modules: ath10k_pci 

Initially suse doesn’t recognized it.

I’ve copied this firmware files:

https://github.com/kvalo/ath10k-firmware/tree/master/QCA6174

into /lib/firmware/ath10k.
I’ve also renamed file /lib/firmware/ath10k/QCA6174/hw3.0/firmware-4.bin_WLAN.RM.2.0-00180-QCARMSWPZ-1 to firmware-4.bin
and /lib/firmware/ath10k/QCA6174/hw2.1/firmware-5.bin_SW_RM.1.1.1-00157-QCARMSWPZ-1 to firmware-5.bin.

Now opensuse see wifi adapter and connects. It works fine but after a while internet stops working.

This is the dmesg | grep ath result:

    4.291956] ath10k_pci 0000:02:00.0: pci irq msi-x interrupts 8 irq_mode 0 reset_mode 0
    4.529852] ath10k_pci 0000:02:00.0: Direct firmware load for ath10k/cal-pci-0000:02:00.0.bin failed with error -2
    4.530012] ath10k_pci 0000:02:00.0: Direct firmware load for ath10k/QCA6174/hw3.0/firmware-5.bin failed with error -2
    4.530014] ath10k_pci 0000:02:00.0: could not fetch firmware file 'ath10k/QCA6174/hw3.0/firmware-5.bin': -2
    6.755238] ath10k_pci 0000:02:00.0: qca6174 hw3.2 (0x05030000, 0x00340aff sub 17aa:0827) fw WLAN.RM.2.0-00180-QCARMSWPZ-1 fwapi 4 bdapi 2 htt-ver 3.26 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1 features wowlan,ignore-otp,no-4addr-pad
    6.755240] ath10k_pci 0000:02:00.0: debug 0 debugfs 0 tracing 0 dfs 0 testmode 0
    6.822541] ath: EEPROM regdomain: 0x6c
    6.822543] ath: EEPROM indicates we should expect a direct regpair map
    6.822545] ath: Country alpha2 being used: 00
    6.822545] ath: Regpair used: 0x6c

Thin is the sudo journalctl -r output:

Aug 16 22:43:13 linux-vq2c sudo[22985]: pam_systemd(sudo:session): Cannot create session: Already running in a session
Aug 16 22:43:13 linux-vq2c sudo[22985]: pam_unix(sudo:session): session opened for user root by grid(uid=0)
Aug 16 22:43:13 linux-vq2c sudo[22985]:     grid : TTY=pts/0 ; PWD=/home/grid ; USER=root ; COMMAND=/usr/bin/journalctl -r
Aug 16 22:42:59 linux-vq2c NetworkManager[1170]: <info>  connectivity: check for uri 'http://conncheck.opensuse.org' failed with 'Could not connect: No route to host'
Aug 16 22:42:59 linux-vq2c NetworkManager[1170]: <info>  connectivity: check for uri 'http://conncheck.opensuse.org' failed with 'Could not connect: No route to host'
Aug 16 22:42:59 linux-vq2c sudo[22549]: pam_unix(sudo:session): session closed for user root
Aug 16 22:42:56 linux-vq2c NetworkManager[1170]: <info>  NetworkManager state is now CONNECTED_SITE
Aug 16 22:42:56 linux-vq2c NetworkManager[1170]: <info>  connectivity: check for uri 'http://conncheck.opensuse.org' failed with 'Could not connect: No route to host'
Aug 16 22:38:14 linux-vq2c nm-dispatcher[22578]: Dispatching action 'dhcp4-change' for wlan0
Aug 16 22:38:14 linux-vq2c systemd[1]: Started Network Manager Script Dispatcher Service.
Aug 16 22:38:14 linux-vq2c dbus[1041]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Aug 16 22:38:14 linux-vq2c systemd[1]: Starting Network Manager Script Dispatcher Service...
Aug 16 22:38:14 linux-vq2c dbus[1041]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service'
Aug 16 22:38:14 linux-vq2c NetworkManager[1170]: <info>  (wlan0): DHCPv4 state changed bound -> bound
Aug 16 22:38:14 linux-vq2c NetworkManager[1170]: <info>    nameserver '192.168.0.1'
Aug 16 22:38:14 linux-vq2c NetworkManager[1170]: <info>    lease time 7200
Aug 16 22:38:14 linux-vq2c NetworkManager[1170]: <info>    server identifier 192.168.0.1
Aug 16 22:38:14 linux-vq2c NetworkManager[1170]: <info>    gateway 192.168.0.1
Aug 16 22:38:14 linux-vq2c NetworkManager[1170]: <info>    plen 24 (255.255.255.0)
Aug 16 22:38:14 linux-vq2c NetworkManager[1170]: <info>    address 192.168.0.104
Aug 16 22:36:15 linux-vq2c sudo[22549]: pam_systemd(sudo:session): Cannot create session: Already running in a session
Aug 16 22:36:15 linux-vq2c sudo[22549]: pam_unix(sudo:session): session opened for user root by grid(uid=0)
Aug 16 22:36:15 linux-vq2c sudo[22549]:     grid : TTY=pts/0 ; PWD=/home/grid ; USER=root ; COMMAND=/usr/bin/journalctl -r
Aug 16 22:35:21 linux-vq2c kernel: SFW2-INext-DROP-DEFLT IN=wlan0 OUT= MAC=58:00:e3:f6:bd:6f:d4:6e:0e:51:3f:ae:08:00 SRC=192.168.0.1 DST=192.168.0.104 LEN=274 TOS=0x00 PREC=0x00 TTL=61 ID=51471 PROTO=UDP SPT=53 DPT=49319 LEN=254 
Aug 16 22:35:21 linux-vq2c kernel: SFW2-INext-DROP-DEFLT IN=wlan0 OUT= MAC=58:00:e3:f6:bd:6f:d4:6e:0e:51:3f:ae:08:00 SRC=192.168.0.1 DST=192.168.0.104 LEN=311 TOS=0x00 PREC=0x00 TTL=61 ID=51468 PROTO=UDP SPT=53 DPT=43572 LEN=291 
Aug 16 22:35:21 linux-vq2c kernel: SFW2-INext-DROP-DEFLT IN=wlan0 OUT= MAC=58:00:e3:f6:bd:6f:d4:6e:0e:51:3f:ae:08:00 SRC=192.168.0.1 DST=192.168.0.104 LEN=274 TOS=0x00 PREC=0x00 TTL=61 ID=51461 PROTO=UDP SPT=53 DPT=38073 LEN=254 
Aug 16 22:35:21 linux-vq2c kernel: SFW2-INext-DROP-DEFLT IN=wlan0 OUT= MAC=58:00:e3:f6:bd:6f:d4:6e:0e:51:3f:ae:08:00 SRC=192.168.0.1 DST=192.168.0.104 LEN=274 TOS=0x00 PREC=0x00 TTL=61 ID=51460 PROTO=UDP SPT=53 DPT=49028 LEN=254 
Aug 16 22:35:19 linux-vq2c kernel: SFW2-INext-DROP-DEFLT IN=wlan0 OUT= MAC=58:00:e3:f6:bd:6f:d4:6e:0e:51:3f:ae:08:00 SRC=192.168.0.1 DST=192.168.0.104 LEN=274 TOS=0x00 PREC=0x00 TTL=61 ID=51459 PROTO=UDP SPT=53 DPT=49028 LEN=254 
Aug 16 22:30:02 linux-vq2c systemd[1]: Removed slice User Slice of root.
Aug 16 22:30:02 linux-vq2c systemd[1]: Stopped User Manager for UID 0.
Aug 16 22:30:02 linux-vq2c systemd[22141]: pam_unix(systemd-user:session): session closed for user root
Aug 16 22:30:02 linux-vq2c systemd[22138]: Received SIGRTMIN+24 from PID 22178 (kill).
Aug 16 22:30:02 linux-vq2c systemd[22138]: Starting Exit the Session...
Aug 16 22:30:01 linux-vq2c systemd[22138]: Stopped target Sockets.
Aug 16 22:30:01 linux-vq2c systemd[22138]: Stopped target Paths.
Aug 16 22:30:01 linux-vq2c systemd[22138]: Stopped target Timers.
Aug 16 22:30:01 linux-vq2c systemd[22138]: Stopped target Basic System.
Aug 16 22:30:01 linux-vq2c systemd[22138]: Reached target Shutdown.
Aug 16 22:30:01 linux-vq2c systemd[22138]: Stopped target Default.
Aug 16 22:30:01 linux-vq2c systemd[1]: Stopping User Manager for UID 0...
Aug 16 22:30:01 linux-vq2c CRON[22137]: pam_unix(crond:session): session closed for user root
Aug 16 22:30:01 linux-vq2c systemd[1]: Started User Manager for UID 0.
Aug 16 22:30:01 linux-vq2c systemd[22138]: Startup finished in 24ms.
Aug 16 22:30:01 linux-vq2c systemd[22138]: Reached target Default.
Aug 16 22:30:01 linux-vq2c systemd[22138]: Reached target Basic System.
Aug 16 22:30:01 linux-vq2c systemd[22138]: Reached target Timers.
Aug 16 22:30:01 linux-vq2c systemd[22138]: Reached target Paths.
Aug 16 22:30:01 linux-vq2c systemd[22138]: Reached target Sockets.
Aug 16 22:30:01 linux-vq2c systemd[1]: Started Session 10 of user root.
Aug 16 22:30:01 linux-vq2c systemd[22138]: pam_unix(systemd-user:session): session opened for user root by (uid=0)
Aug 16 22:30:01 linux-vq2c systemd[1]: Starting User Manager for UID 0...
Aug 16 22:30:01 linux-vq2c systemd[1]: Created slice User Slice of root.
Aug 16 22:30:01 linux-vq2c cron[22137]: pam_unix(crond:session): session opened for user root by (uid=0)

Some ideas to start with…

  1. A better analysis of NetworkManager can be got using
journalctl -u NetworkManager

or watching the tail in a terminal while connected…

journalctl -fu NetworkManager
  1. Is the wifi connection 802.11ac or 802.11n…?

  2. With the connection active, watch the iwconfig output continuously with something like

watch "/usr/sbin/iwconfig wlan0
watch "/usr/sbin/iwconfig wlan0| grep Quality"
  1. These devices do seem to have stability/throughput issues with Linux. This bug report may be relevant for example…

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1670041

  1. I’m not sure if this is due to an underlying power management issue, but if the device supports it you may be able to inhibit power management with
sudo iw dev wlan0 set power_save off

In general the current value can be got using

sudo iw dev wlan0 get power_save

I have no errors in journalctl -fu NetworkManager when the internet stops working.

My wifi adapter is 802.11ac.

I’ve tried to set off power_save but it doesn’t help.

When I disconnect wifi and connect again, it works.

What about signal levels?

I have a good signal level, it works fine on another devices. This is what I get from sudo journalctl -fu NetworkManager -n 30 when wifi stops working:

Sep 30 11:56:06 linux-vq2c NetworkManager[1215]: <info> connectivity: check for uri ‘http://conncheck.opensuse.org’ failed with ‘Connection terminated unexpectedly’
Sep 30 11:56:06 linux-vq2c NetworkManager[1215]: <info> NetworkManager state is now CONNECTED_SITE
Sep 30 11:56:21 linux-vq2c NetworkManager[1215]: <info> connectivity: check for uri ‘http://conncheck.opensuse.org’ failed with ‘Could not connect: Network is unreachable’
Sep 30 11:56:21 linux-vq2c NetworkManager[1215]: <info> connectivity: check for uri ‘http://conncheck.opensuse.org’ failed with ‘Could not connect: Network is unreachable’

That just tells us that it can’t reach conncheck.opensuse.org, but not the underlying reason. There’s no evidence from the NM output that you wireless connection has broken though. When this next happens, report back with

ip address
ip route

and see if you can still ping the gateway.