Ubuntu – Getting Killer Wireless-AC 1535 working for installing Ubuntu 16.04

16.04firmwaremdadmwireless

My wireless device is 168c:003e:1a56:1353 rev 32.
The installer contains a 4.4.0-21-lowlatency kernel, and I see firmware files in /lib/firmware/ath10k/QCA6174/hw3.0
There is a board.bin and firmware-4.bin. These are the stock files. In dmesg I see that the initialization fails, and that's true, I don't even see a device in ifconfig. During initialization it is looking for a firmware-5.bin, which is not there.

First I tried to add firmware-5.bin cooked here: https://github.com/kvalo/ath10k-firmware/pull/4/files

That didn't help, the magic in the file doesn't match. I guess it's cooked for 4.2 or something. Then I tried to use all the files which are in the official repo https://github.com/kvalo/ath10k-firmware/tree/master/QCA6174/hw3.0 (recommended by http://www.killernetworking.com/support/knowledge-base/17-linux/20-killer-wireless-ac-in-linux-ubuntu-debian). Magic doesn't match.

Since I'm in the beginning of an installation, restart is not an option for me, that's a 22 catch. Instead I wrote a little script which modprobe -rs ath10k_pci, ath10k_core, ath, mac80211 and cfg80211. Another script insmods these in reverse order.

I also tried board-2.bin by https://github.com/kvalo/ath10k-firmware/pull/3.
Magic doesn't match.


Little more info. Initial/original state of the installer's /lib/firmware/ath10k/QCA6174/hw3.0 firmware directory:

-rw-r--r-- 1 root root   8124 Mar 21 12:27 board.bin
-rw-r--r-- 1 root root 733784 Mar 21 12:27 firmware-4.bin

cb37c63d9ca28f53fea1ff09ad7c7a82  board.bin
a5dfbc03c9a7a73f7aa8d0a94a6d9426  firmware-4.bin

This results in:

[  118.170694] ath10k_pci 0000:04:00.0: enabling device (0000 -> 0002)
[  118.171818] ath10k_pci 0000:04:00.0: pci irq msi-x interrupts 8 irq_mode 0 reset_mode 0
[  118.658737] ath10k_pci 0000:04:00.0: Direct firmware load for ath10k/cal-pci-0000:04:00.0.bin failed with error -2
[  118.658754] ath10k_pci 0000:04:00.0: Direct firmware load for ath10k/QCA6174/hw3.0/firmware-5.bin failed with error -2
[  118.658770] ath10k_pci 0000:04:00.0: could not fetch firmware file 'ath10k/QCA6174/hw3.0/firmware-5.bin': -2
...
[  128.810919] ath10k_pci 0000:04:00.0: Direct firmware load for ath10k/QCA6174/hw3.0/board-2.bin failed with error -2
[  131.928674] ath10k_pci 0000:04:00.0: qca6174 hw3.2 (0x05030000, 0x00340aff sub 1a56:1535) fw WLAN.RM.2.0-00180-QCARMSWPZ-1 fwapi 4 bdapi 1 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
[  131.928676] ath10k_pci 0000:04:00.0: debug 0 debugfs 1 tracing 1 dfs 0 testmode 0
[  134.928910] ath10k_pci 0000:04:00.0: could not suspend target (-11)
[  134.982552] ath: EEPROM regdomain: 0x6c
[  134.982553] ath: EEPROM indicates we should expect a direct regpair map
[  134.982554] ath: Country alpha2 being used: 00
[  134.982555] ath: Regpair used: 0x6c
[  136.139717] ath10k_pci 0000:04:00.0 wlp4s0: renamed from wlan0
[  147.251066] IPv6: ADDRCONF(NETDEV_UP): wlp4s0: link is not ready
[  152.475059] ath10k_pci 0000:04:00.0: failed to enable dynamic BW: -11
[  158.475164] ath10k_pci 0000:04:00.0: could not suspend target (-11)
[  158.532546] IPv6: ADDRCONF(NETDEV_UP): enp6s0: link is not ready
[  158.533313] IPv6: ADDRCONF(NETDEV_UP): enp6s0: link is not ready
[  167.547281] ath10k_pci 0000:04:00.0: failed to enable dynamic BW: -11
[  173.547366] ath10k_pci 0000:04:00.0: could not suspend target (-11)
[  178.826678] ath10k_pci 0000:04:00.0: failed to enable dynamic BW: -11
[  184.826637] ath10k_pci 0000:04:00.0: could not suspend target (-11)
[  202.258851] ath10k_pci 0000:04:00.0: failed to enable dynamic BW: -11
[  208.258910] ath10k_pci 0000:04:00.0: could not suspend target (-11)
[  213.537200] ath10k_pci 0000:04:00.0: failed to enable dynamic BW: -11
[  219.537070] ath10k_pci 0000:04:00.0: could not suspend target (-11)
[  235.258295] ath10k_pci 0000:04:00.0: failed to enable dynamic BW: -11
[  241.258474] ath10k_pci 0000:04:00.0: could not suspend target (-11)
[  246.537511] ath10k_pci 0000:04:00.0: failed to enable dynamic BW: -11
[  252.537681] ath10k_pci 0000:04:00.0: could not suspend target (-11)
[  268.259942] ath10k_pci 0000:04:00.0: failed to enable dynamic BW: -11
[  274.259976] ath10k_pci 0000:04:00.0: could not suspend target (-11)
[  279.538073] ath10k_pci 0000:04:00.0: failed to enable dynamic BW: -11
[  285.538232] ath10k_pci 0000:04:00.0: could not suspend target (-11)
[  301.260390] ath10k_pci 0000:04:00.0: failed to enable dynamic BW: -11
[  307.260552] ath10k_pci 0000:04:00.0: could not suspend target (-11)
[  312.538796] ath10k_pci 0000:04:00.0: failed to enable dynamic BW: -11
[  318.539935] ath10k_pci 0000:04:00.0: could not suspend target (-11)
...
[  340.262113] ath10k_pci 0000:04:00.0: could not suspend target (-11)
[  345.540330] ath10k_pci 0000:04:00.0: failed to enable dynamic BW: -11
[  351.540341] ath10k_pci 0000:04:00.0: could not suspend target (-11)

One of my tries which looked promising by the dmesg without firmware crash, but could not init core:

-rw-r--r-- 1 root root  42110 Jul  3 09:56 board-2.bin
-rw-r--r-- 1 root root   8124 Jul  3 09:56 board.bin
-rw-r--r-- 1 root root 733784 Mar 21 12:27 firmware-4.bin
-rw-r--r-- 1 root root 572324 Jul  3 09:57 firmware-5.bin

5e47d7cbe6255e4ac3ef71f6e2210f95  board-2.bin
1d07f60b4f6e3dc06028f4f31d1eec60  board.bin
a5dfbc03c9a7a73f7aa8d0a94a6d9426  firmware-4.bin
2c5629dc360ee3606c12088ee5e2de98  firmware-5.bin 

[ 2798.276194] ath10k_pci 0000:04:00.0: pci irq msi-x interrupts 8 irq_mode 0 reset_mode 0
[ 2798.477454] ath10k_pci 0000:04:00.0: Direct firmware load for ath10k/cal-pci-0000:04:00.0.bin failed with error -2
[ 2798.539215] ath10k_pci 0000:04:00.0: found invalid board magic
[ 2798.622537] ath10k_pci 0000:04:00.0: otp calibration failed: 3
[ 2798.622538] ath10k_pci 0000:04:00.0: failed to run otp: -22
[ 2798.622539] ath10k_pci 0000:04:00.0: could not init core (-22)
[ 2798.622550] ath10k_pci 0000:04:00.0: could not probe fw (-22)
[ 3318.953548] IPv6: ADDRCONF(NETDEV_UP): enp6s0: link is not ready
[ 3318.954150] IPv6: ADDRCONF(NETDEV_UP): enp6s0: link is not ready 

Mostly I get firmware crashes in dmesg.
I'll try the deb package soon.


Note: it's very important to check each time you boot that the BIOS didn't revert back from UEFI-CSM mode to UEFI. Apparently this proved to be crucial for the install, without CSM the install just silently stalls. Also check if the BIOS didn't revert back to Secure Boot mode. What a headache!

Upgrading the v1.157 firmware package to 1.158 helped (I didn't need to swap out any of the files from the 1.158 deb). Details:

  1. First I stopped the network:

    sudo su
    /etc/init.d/Network-Manager stop
    /etc/init.d/Networking stop
    
  2. Unloaded the kernel modules:

    modprobe -r ath10k_pci
    modprobe -r ath10k_core
    modprobe -r ath
    modprobe -r mac80211
    modprobe -r cfg80211 
    
  3. Upgraded the firmware package

    dpkg -i linux-firmware_1.158_all.deb
    

Content of the firmware directory after that:

-rw-r--r-- 1 root root 271412 May  6 12:42 board-2.bin
-rw-r--r-- 1 root root   8124 Apr 25 12:59 board.bin
-rw-r--r-- 1 root root 733784 Apr 25 12:59 firmware-4.bin

ac5184615090503870442da5f703de25  /lib/firmware/ath10k/QCA6174/hw3.0/board-2.bin
cb37c63d9ca28f53fea1ff09ad7c7a82  /lib/firmware/ath10k/QCA6174/hw3.0/board.bin
a5dfbc03c9a7a73f7aa8d0a94a6d9426  /lib/firmware/ath10k/QCA6174/hw3.0/firmware-4.bin 

dmesg:

[ 1084.393020] ath10k_pci 0000:04:00.0: pci irq msi-x interrupts 8 irq_mode 0 reset_mode 0
[ 1084.594123] ath10k_pci 0000:04:00.0: Direct firmware load for ath10k/cal-pci-0000:04:00.0.bin failed with error -2
[ 1084.594143] ath10k_pci 0000:04:00.0: Direct firmware load for ath10k/QCA6174/hw3.0/firmware-5.bin failed with error -2
[ 1084.594149] ath10k_pci 0000:04:00.0: could not fetch firmware file 'ath10k/QCA6174/hw3.0/firmware-5.bin': -2
[ 1086.774542] ath10k_pci 0000:04:00.0: qca6174 hw3.2 (0x05030000, 0x00340aff sub 1a56:1535) 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
[ 1086.774545] ath10k_pci 0000:04:00.0: debug 0 debugfs 1 tracing 1 dfs 0 testmode 0
[ 1086.828603] ath: EEPROM regdomain: 0x6c
[ 1086.828605] ath: EEPROM indicates we should expect a direct regpair map
[ 1086.828606] ath: Country alpha2 being used: 00
[ 1086.828607] ath: Regpair used: 0x6c
[ 1086.830651] ath10k_pci 0000:04:00.0 wlp4s0: renamed from wlan0 

So we finally have wlan0 (renamed to wlp4s0)

  1. Loaded the kernel modules

    cd /lib/modules/4.4.0-21-lowlatency/kernel/
    insmod net/wireless/cfg80211.ko
    insmod net/mac80211/mac80211.ko
    insmod drivers/net/wireless/ath/ath.ko
    insmod drivers/net/wireless/ath/ath10k/ath10k_core.ko
    insmod drivers/net/wireless/ath/ath10k/ath10k_pci.ko 
    
  2. Started networking

    /etc/init.d/Networking start
    /etc/init.d/Network-Manager start
    
  3. Needed to restart nm-applet:

    kilall nm-applet
    nohup nm-applet &
    

Now I could install mdadm. If I complete my next mission objective, I'll finally be able to install Linux: How to determine device name for NMVe SSDs during install


Just FYI, current state with Ubuntu 17.04 is (error, error, error…):

[    2.772902] ath10k_pci 0000:05:00.0: Direct firmware load for ath10k/pre-cal-pci-0000:05:00.0.bin failed with error -2
[    2.772909] ath10k_pci 0000:05:00.0: Direct firmware load for ath10k/cal-pci-0000:05:00.0.bin failed with error -2
[    2.773036] ath10k_pci 0000:05:00.0: Direct firmware load for ath10k/QCA6174/hw3.0/firmware-5.bin failed with error -2
[    2.773038] ath10k_pci 0000:05:00.0: could not fetch firmware file 'ath10k/QCA6174/hw3.0/firmware-5.bin': -2
[    2.773892] ath10k_pci 0000:05:00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 1a56:1535
[    2.773893] ath10k_pci 0000:05:00.0: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0
[    2.774309] ath10k_pci 0000:05:00.0: firmware ver WLAN.RM.2.0-00180-QCARMSWPZ-1 api 4 features wowlan,ignore-otp,no-4addr-pad crc32 75dee6c5

linux-firmware package v 1.164.1

https://giphy.com/gifs/justin-monkey-i-am-disappointed-l3vRhaxVcQ1i0CZlC

Best Answer

Please try the newer firmware package. With a working internet connection, please open a terminal and do:

wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/linux-firmware_1.161.1_all.deb
sudo dpkg -i linux-firmware*.deb
sudo modprobe -r ath10k_pci && sudo modprobe ath10k_pci

Your wireless should now be working.

Related Question