Qualcomm Atheros QCA6174 wireless not working

Evening all, I’ve read most posts relating to this issue and I cant get anywhere so thought I would ask for suggestions;

built in wifi not working, system detected the pci device correctly as Qualcomm Atheros QCA6174…

lspci -vv -s 05:00.005:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)
	Subsystem: ASUSTeK Computer Inc. Device 86cd
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 133
	Region 0: Memory at f7200000 (64-bit, non-prefetchable) [size=2]
	Capabilities: [40] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [50] MSI: Enable+ Count=1/8 Maskable+ 64bit-
		Address: fee0f00c  Data: 4192
		Masking: fffffffe  Pending: 00000000
	Capabilities: [70] Express (v2) Endpoint, MSI 00
		DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 <64us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 256 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <4us, L1 <64us
			ClockPM+ Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- CommClk-
			ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR+, OBFF Via message
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
	Capabilities: [100 v2] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
	Capabilities: [148 v1] Virtual Channel
		Caps:	LPEVC=0 RefClk=100ns PATEntryBits=1
		Arb:	Fixed- WRR32- WRR64- WRR128-
		Ctrl:	ArbSelect=Fixed
		Status:	InProgress-
		VC0:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
			Status:	NegoPending- InProgress-
	Capabilities: [168 v1] Device Serial Number 00-00-00-00-00-00-00-00
	Capabilities: [178 v1] Latency Tolerance Reporting
		Max snoop latency: 3145728ns
		Max no snoop latency: 3145728ns
	Capabilities: [180 v1] L1 PM Substates
		L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
			  PortCommonModeRestoreTime=50us PortTPowerOnTime=10us
	Kernel driver in use: ath10k_pci
	Kernel modules: ath10k_pci



lsmod | grep ath10kath10k_pci             45056  0 
ath10k_core           196608  1 ath10k_pci
ath                    36864  1 ath10k_core
mac80211              819200  1 ath10k_core
cfg80211              622592  3 ath,mac80211,ath10k_core

dmesg reveals a number of errors in the firmware load;

dmesg | grep ath10k    3.743612] ath10k_pci 0000:05:00.0: enabling device (0000 -> 0002)
    3.744295] ath10k_pci 0000:05:00.0: pci irq msi interrupts 1 irq_mode 0 reset_mode 0
    3.933454] ath10k_pci 0000:05:00.0: Direct firmware load for ath10k/cal-pci-0000:05:00.0.bin failed with error -2
    4.018126] ath10k_pci 0000:05:00.0: otp calibration failed: 3
    4.018142] ath10k_pci 0000:05:00.0: failed to run otp: -22
    4.018155] ath10k_pci 0000:05:00.0: could not init core (-22)
    4.018184] ath10k_pci 0000:05:00.0: could not probe fw (-22)



is the best suggestion wait for leap 42.2 and get the kernel >4.3 with support built in?

thanks
Matt[/size]

I guess you could try using a newer kernel by subscribing to the stable kernel repo…

zypper ar -f http://download.opensuse.org/repositories/Kernel:/stable/standard/ kernel
zypper ref
zypper dup -r kernel

Reboot and see how that goes.

BTW, here is information about updating ath10k firmware if required too…

http://linuxwireless.org/en/users/Drivers/ath10k/firmware/#Update_firmware

Hi, I don’t see any visible difference between the firmware support for QCA6174 for 42.1 or 42.2 beta… so I see no use in waiting for 42.2 and its 4.4.x kernel or a newer kernel from Kernel:stable.
Please check that you have installed kernel-firmware version 20160503-3.1
Then maybe add to your boot command line the following option:


ath10k_core.skip_otp=true

Hope this helps, I have an ath9k card here, so cannot test it myself, sorry.
Anyway my experience with this stuff is nowhere near that of deano_ferrari, so if in doubt follow him :wink:

No, your suggestions are good. The kernel upgrade idea was just speculative and the last thing to try, just in case the driver code has bug fixes. (It’s not clear to me what the firmware error is cause by.)

However, I think the driver options you mentioned should be

options *ath10k_core skip_otp*=y

FWIW, here’s a similar archlinux thread that may be helpful
https://bbs.archlinux.org/viewtopic.php?id=204871

Please post:

/sbin/lspci -nnk | grep -iA3 net

to see the ID of your Device.
It should be 168c:003e
vendor: 168c (“Qualcomm Atheros”), device: 003e (“QCA6174 802.11ac Wireless Network Adapter”)
https://cateee.net/lkddb/web-lkddb/ATH10K_PCI.html

Maybe you need newer Firmware?
Post:

zypper se -si kernel-firmware

You are right, but just to avoid confusion:
EITHER add the following to the KERNEL BOOT COMMAND LINE


ath10k_core.skip_otp=y

OR add a FILE named (for instance) /etc/modprobe.d/50-ath10k.conf with the following content


options ath10k_core skip_otp=y

thank you all for suggestions;

I’ve downloaded the latest firmware and cp’d into /lib/firmware/ath10k/QCA6174/*
modprobe to unload then reload ath10k_core and ath10k_pci. loaded ath10k_core with option skip_otp=y . dmesg output from starting is now as follows,


 1906.679963] cfg80211: Calling CRDA to update world regulatory domain
 1906.684227] cfg80211: World regulatory domain updated:
 1906.684234] cfg80211:  DFS Master region: unset
 1906.684236] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
 1906.684241] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
 1906.684244] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
 1906.684247] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
 1906.684250] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)
 1906.684254] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
 1906.684257] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
 1906.684259] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
 1906.684262] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
 1914.907858] ath10k_pci 0000:05:00.0: pci irq msi interrupts 1 irq_mode 0 reset_mode 0
 1915.094845] ath10k_pci 0000:05:00.0: Direct firmware load for ath10k/cal-pci-0000:05:00.0.bin failed with error -2
 1917.209365] ath10k_pci 0000:05:00.0: qca6174 hw3.2 (0x05030000, 0x00340aff) fw WLAN.RM.2.0-00180-QCARMSWPZ-1 api 4 htt 3.26 wmi 4 cal otp max_sta 32
 1917.209367] ath10k_pci 0000:05:00.0: debug 0 debugfs 0 tracing 0 dfs 0 testmode 0
 1917.284285] ath: EEPROM regdomain: 0x6c
 1917.284287] ath: EEPROM indicates we should expect a direct regpair map
 1917.284288] ath: Country alpha2 being used: 00
 1917.284288] ath: Regpair used: 0x6c



I can now see a wireless section under network manager, but i cant scan for any networks or use it. Progress but im not quite there.

other info as requested, many thanks for your replies :slight_smile:


 /sbin/lspci -nnk | grep -iA3 net
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (2) I219-V [8086:15b8] (rev 31)
    Subsystem: ASUSTeK Computer Inc. Device [1043:8672]
    Kernel driver in use: e1000e
    Kernel modules: e1000e
--
05:00.0 Network controller [0280]: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter [168c:003e] (rev 32)
    Subsystem: ASUSTeK Computer Inc. Device [1043:86cd]
    Kernel driver in use: ath10k_pci
    Kernel modules: ath10k_pci




zypper if kernel-firmware
Loading repository data...
Reading installed packages...




Information for package kernel-firmware:
----------------------------------------
Repository: kernel
Name: kernel-firmware
Version: 20160913-35.1
Arch: noarch
Vendor: obs://build.opensuse.org/Kernel
Installed: Yes
Status: up-to-date
Installed Size: 155.8 MiB
Summary: Linux kernel firmware files
Description: 
  This package contains the firmware for in-kernel drivers that was
  previously included in the kernel. It is shared by all kernels >=
  2.6.27-rc1.



I can now see a wireless section under network manager, but i cant scan for any networks or use it. Progress but im not quite there.

Demonstrate this for us with output from

nmcli -p dev wifi list

or

/usr/sbin/iwlist scan

nmcli -p dev wifi list
===================================================
              Wi-Fi scan list (wlan0)
===================================================
*  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY 
---------------------------------------------------



with accompanying dmesg output as;

]
  272.832190] ath10k_pci 0000:05:00.0: failed to receive scan abortion completion: timed out
  272.832206] ath10k_pci 0000:05:00.0: failed to abort scan: -110
  278.783303] ath10k_pci 0000:05:00.0: failed to start hw scan: -11



Examining the output from post #7 again, I note that your firmware is still failing to load (which I missed earlier)

 Direct firmware load for ath10k/cal-pci-0000:05:00.0.bin failed with error -2

so that problem needs to be solved before you can use this device.

I still think using a newer kernel (4.5+) might be helpful here. There have been some forks of the firmware made available as well from what I’ve been able to gleam, so this may influence the chances of success here, but I don’t have time to review thoroughly. Anyway, FWIW, read this post
https://ubuntuforums.org/showthread.php?t=2318547&page=2&p=13462953#post13462953
this bug report (in particular comments from Jeremy #59 onwards)
https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1520343
and this thread
https://bbs.archlinux.org/viewtopic.php?id=208874&p=2Anyone else using this hardware?

Please post:

ls -al /lib/firmware/ath10k/QCA6174/
ls -al /lib/firmware/ath10k/QCA6174/hw2.1/
ls -al /lib/firmware/ath10k/QCA6174/hw3.0/
uname -a

evening,

ls -al /lib/firmware/ath10k/QCA6174/
total 0
drwxr-xr-x 1 root root  20 Sep 13 17:14 .
drwxr-xr-x 1 root root 112 Sep 25 22:46 ..
drwxr-xr-x 1 root root 204 Sep 25 22:46 hw2.1
drwxr-xr-x 1 root root 204 Sep 25 22:46 hw3.0




ls -al /lib/firmware/ath10k/QCA6174/hw2.1/
total 852
drwxr-xr-x 1 root root    204 Sep 25 22:46 .
drwxr-xr-x 1 root root     20 Sep 13 17:14 ..
-rw-r--r-- 1 root root 263188 Sep 13 17:14 board-2.bin
-rw-r--r-- 1 root root   8124 Sep 13 17:14 board.bin
-rw-r--r-- 1 root root 498172 Sep 13 17:14 firmware-5.bin
-rw-r--r-- 1 root root  46087 Sep 13 17:14 notice_ath10k_firmware-5.txt
-rw-r--r-- 1 root root  46142 Sep 25 16:49 notice.txt_SW_RM.1.1.1-00157-QCARMSWPZ-1


ls -al /lib/firmware/ath10k/QCA6174/hw3.0/
total 1220
drwxr-xr-x 1 root root    204 Sep 25 22:46 .
drwxr-xr-x 1 root root     20 Sep 13 17:14 ..
-rw-r--r-- 1 root root 337204 Sep 13 17:14 board-2.bin
-rw-r--r-- 1 root root   8124 Sep 13 17:14 board.bin
-rw-r--r-- 1 root root 733784 Sep 13 17:14 firmware-4.bin
-rw-r--r-- 1 root root  79689 Sep 13 17:14 notice_ath10k_firmware-4.txt
-rw-r--r-- 1 root root  79801 Sep 25 16:49 notice.txt_WLAN.RM.2.0-00180-QCARMSWPZ-1

uname -a
Linux new-host-3 4.1.31-30-default #1 SMP PREEMPT Wed Aug 24 06:20:09 UTC 2016 (de9ddf8) x86_64 x86_64 x86_64 GNU/Linux



I am also in the process of installing to use kernel 4.7.x from kernel stable repo, however this is throwing up its own issues which I will not muddy this water with. However, on booting kernel 4.7.x to a terminal shell, it does appear to successfully load the ath10k firmware which would suggest I will have more luck, once i’ve overcome the graphics issues using 4.7.x I might have solved it. Many thanks for your help, its moved me on in my understanding to getting the issue resolved.

I am also in the process of installing to use kernel 4.7.x from kernel stable repo, however this is throwing up its own issues which I will not muddy this water with. However, on booting kernel 4.7.x to a terminal shell, it does appear to successfully load the ath10k firmware which would suggest I will have more luck, once i’ve overcome the graphics issues using 4.7.x I might have solved it. Many thanks for your help, its moved me on in my understanding to getting the issue resolved.

Sounds like you’re making progress. Yes, if you’re using a proprietary graphics driver that will need to be reinstalled to match the running kernel.

yes, thanks for the help. I’ve had the wifi working under kernel 4.7.5. Graphics working under open drivers also. Now all I need to do is get the prop. graphics working and I’ve cracked it fully.

I did have a few fun instances along the way where, despite setting multiversion support etc, my stable working kernel was removed by the kernel-stable repo updating. And I also managed to get /etc/default/grub corrupted via yast2 boot config which completely broke grub :smiley: . But a quick recovery from boot media its all good.

The quality of the opensuse documentation should be commended, as it kept me from asking a lot of very straight forward questions. Being honest, I enjoy tinkering with linux (i’ve been at it for about 10 years now) as I find it interesting so I don’t mind trying things out. My wife keeps asking why I use something that doesn’t work properly … i think she’s missing the point.

Well done.

The quality of the opensuse documentation should be commended, as it kept me from asking a lot of very straight forward questions.

Yes, a lot of effort goes into that by relatively few.

Being honest, I enjoy tinkering with linux (i’ve been at it for about 10 years now) as I find it interesting so I don’t mind trying things out. My wife keeps asking why I use something that doesn’t work properly … i think she’s missing the point.

Yes, it’s like working on a kitset car, rather than just buying a new ‘off the shelf’ model, but that does generally mean spending time ‘under the hood’ to have it running as you like, and I think it does make one more aware of how it all fits together, and where to look when something goes wrong. :slight_smile: