Changing to non-CT drivers via OPKG

I'm trying to use a non-CT driver for my ath10k device (Archer C6). I ssh into the device and:

root@OpenWrt:~# opkg remove ath10k-firmware-qca9888-ct kmod-ath10k-ct
root@OpenWrt:~# opkg install ath10k-firmware-qca9888 kmod-ath10k
root@OpenWrt:~# reboot

On reboot, the 5Ghz card stops working. The web interface for the card looks wrong - it returns a generic message for the card type.

Trying to revert this way:

root@OpenWrt:~# opkg remove ath10k-firmware-qca9888 kmod-ath10k
root@OpenWrt:~# opkg install ath10k-firmware-qca9888-ct kmod-ath10k-ct
root@OpenWrt:~# reboot

... does nothing. Card still doesn't work, nothing changes. Running a sysupgrade flash does work and resets the card back to the ct driver and everything works OK.

dmesg leaves this message:

[   11.632844] ath10k_pci 0000:00:00.0: pci irq legacy oper_irq_mode 1 irq_mode 0 reset_mode 0
[   11.858834] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/QCA9888/hw2.0/firmware-6.bin failed with error -2
[   11.869931] ath10k_pci 0000:00:00.0: Falling back to user helper
[   12.133540] firmware ath10k!QCA9888!hw2.0!firmware-6.bin: firmware_loading_store: map pages failed
[   13.439871] ath10k_pci 0000:00:00.0: qca9888 hw2.0 target 0x01000000 chip_id 0x00000000 sub 0000:0000
[   13.449441] ath10k_pci 0000:00:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[   13.470514] ath10k_pci 0000:00:00.0: firmware ver 10.4-3.9.0.2-00024 api 5 features no-p2p,mfp,peer-flow-ctrl,allows-mesh-bcast,no-ps crc32 98c840a5
[   13.807240] ath10k_pci 0000:00:00.0: failed to fetch board data for bus=pci,bmi-chip-id=0,bmi-board-id=20 from ath10k/QCA9888/hw2.0/board-2.bin
[   13.820901] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/QCA9888/hw2.0/board.bin failed with error -2
[   13.831546] ath10k_pci 0000:00:00.0: Falling back to user helper
[   13.924224] firmware ath10k!QCA9888!hw2.0!board.bin: firmware_loading_store: map pages failed
[   13.933241] ath10k_pci 0000:00:00.0: failed to fetch board-2.bin or board.bin from ath10k/QCA9888/hw2.0
[   13.942976] ath10k_pci 0000:00:00.0: failed to fetch board file: -11
[   13.949751] ath10k_pci 0000:00:00.0: could not probe fw (-11)

I must just be doing something wrong here, I don't think there's a bug or anything. How can I correctly install wifi drivers via opkg?

that's what I did on my Archer C7 and it worked fine. I don't understand.

Assuming that you are using the Archer C6 v2.

You probably need to replace the board-2.bin and firmware-5.bin firmwares also:

Have a look at what I've done on my R7800 to base your tryouts on (careful, not the same drivers as you):

This looks like it would be, for you:

1 Like

Cheers @DjiPi! I'll give that a shot soon. So far I've just been leaving with the crappy 5Ghz performance :expressionless:

Interesting, that process works on the R7800. Can you post the output of find /lib/firmware -type f

On the R7800 (already using the drivers you want due to problems with the ath10k-ct drivers):

# find /lib/firmware -type f
/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin
/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin
/lib/firmware/ath10k/pre-cal-pci-0001:01:00.0.bin
/lib/firmware/ath10k/pre-cal-pci-0000:01:00.0.bin
/lib/firmware/regulatory.db

To see which package own them:

# opkg search /lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin
ath10k-firmware-qca9984 - 20200519-1

# opkg search /lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin
ath10k-firmware-qca9984 - 20200519-1

Still no dice. So, this is a Archer c6 v2, and from the stock install, I performed the opkg install procedure from the first post, then did @DjiPi's method to change board-2.bin and firmware-5/bin. Thank you so much for finding the exact URLs for me as well @DjiPi.

dmesg now reports:

[   12.006667] ath10k_pci 0000:00:00.0: pci irq legacy oper_irq_mode 1 irq_mode 0 reset_mode 0
[   12.239461] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/QCA9888/hw2.0/firmware-6.bin failed with error -2
[   12.250558] ath10k_pci 0000:00:00.0: Falling back to user helper
[   12.520337] firmware ath10k!QCA9888!hw2.0!firmware-6.bin: firmware_loading_store: map pages failed
[   13.909285] ath10k_pci 0000:00:00.0: qca9888 hw2.0 target 0x01000000 chip_id 0x00000000 sub 0000:0000
[   13.918860] ath10k_pci 0000:00:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[   13.939931] ath10k_pci 0000:00:00.0: firmware ver 10.4-3.9.0.2-00086 api 5 features no-p2p,mfp,peer-flow-ctrl,allows-mesh-bcast,no-ps crc32 5e94c44d
[   14.300492] ath10k_pci 0000:00:00.0: failed to fetch board data for bus=pci,bmi-chip-id=0,bmi-board-id=20 from ath10k/QCA9888/hw2.0/board-2.bin
[   14.314174] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/QCA9888/hw2.0/board.bin failed with error -2
[   14.324822] ath10k_pci 0000:00:00.0: Falling back to user helper
[   14.422965] firmware ath10k!QCA9888!hw2.0!board.bin: firmware_loading_store: map pages failed
[   14.431979] ath10k_pci 0000:00:00.0: failed to fetch board-2.bin or board.bin from ath10k/QCA9888/hw2.0
[   14.441709] ath10k_pci 0000:00:00.0: failed to fetch board file: -11
[   14.448487] ath10k_pci 0000:00:00.0: could not probe fw (-11

After making these changes, To answer @darksky's question, lib/firmware now looks like:

/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin
/lib/firmware/ath10k/QCA9888/hw2.0/firmware-5.bin
/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin.bk
/lib/firmware/ath10k/QCA9888/hw2.0/firmware-5.bin.bak
/lib/firmware/ath10k/pre-cal-pci-0000:00:00.0.bin
/lib/firmware/regulatory.db

The .bk/bak files are obviously from the suggested mv commands.

Unfortunately, wireless remains dead with "generic" devices shown in the admin panel.

I'm confused as to why dmesg says it's looking for firmware-6 and board.bin (with no messages specifically really regarding firmware-5 and board-2).

Have you tried renaming them as:

~ # ls /lib/firmware/ath10k/QCA988X/hw2.0
board.bin       firmware-2.bin

Someone CMIIW, these are the fallback error messages that are completely normal; it tries to load a bunch of different firmware files and those that are not found produce these messages. When you replace your files, just ensure you give the same names that the ones that were already there originally and it will sweep them in it's "load scan".

I would keep the names that OpenWrt came with originally.

Sorry for bringing this back to live, but I have the same issue

@nateberkopec Did you got a solution for this problem?

No. I guess my device simply isn't supported with the non-CT drivers.

I have the same experience. Thats sad, since there is no possibility to get 5Ghz Mesh with these devices.