Change ath10k firmware


I´m trying to compile a new build for my Archer C60 v2 using a diferent firmware binarie file to test the performance.

First, i want to test the non-ct driver from kvalo (, so i modified the folling lines on Makefile in ./package/firmware/ath10k-firmware/

Lines 12 and 13 - Replaced for:

Line 426 - Replaced for:
$(PKG_BUILD_DIR)/QCA9888/hw2.0/ \

Line 610 - Removed the comment.
$(eval $(call BuildPackage,ath10k-firmware-qca9888))

But this is not working.
The image builder always download a file called "linux-firmware-20200122.tar, and get the binaries from this file.

What am i doing wrong?


You can choose between ath10k-ct and vanilla ath10k using the make menuconfig command.

You can't choose which versions they'll be though, that is done in the make file and usually the latest releases available..

Below is for a different router, but you are better off not messing with the build but instead add files on top of the standard files. Pass FILES=/some_path/files to make image and it will overwrite the original files with the ones you provided in FILES. Also make sure, you package the non-ct packages and then something like below will overwrite the default files.

ls -la files/lib/firmware/ath10k/QCA9984/hw1.0/
total 840
drwxr-xr-x 2 build build   4096 Apr 23 13:54 .
drwxr-xr-x 3 build build   4096 Apr 23 13:54 ..
-rw-r--r-- 1 build build 171916 Apr 23 13:54 board-2.bin
-rw-r--r-- 1 build build 677148 Apr 23 13:54 firmware-5.bin

That is not usually the case: the standard packages are quite behind.

Hello @Gingernut.

I know that I can change between ct driver and non-ct driver in menuconfig, i already do that.
I want to change the driver version. Are you sure that this is not possible by changing the Makefile? I do that with mt76 driver, kernel updates, etc and it works.

@fantom-x , i did not got the point.
Can you explain better?
On the root of my image builder, i had a lot of folders. "packages", building_dir, staging_dir, etc".
I already try to change the .bin file in these folders, but when i run the make, the files are overwritten


  1. Setup to build a standard image without any custom changes and with non-CT packages
  2. Use FILES - directory with custom files to include (help)
  3. Build the firmware

If the full path of your additional files match the path of the standard files then they will be overwritten. It is like the standard packages are installed first and then overwritten with yours.

make image PROFILE=XXX PACKAGES="pkg1 pkg2 pkg3 -pkg4 -pkg5 -pkg6" FILES=files/

Hi @fantom-x.

Now i guess i got the point.

These are my steps:

  1. Create a folder called /files on my build_root_dir
  2. Create a folder called /lib/firmware/ath10k/QCA9888/hw2.0
  3. Place the .bin files in that folder.
  4. Run make again.


You still need to add a parameter to make to use that folder.


This command works?

make -i FILES=files/ V=s 2>&1

Or i have to use "make image" and specify the profile and packages?
I am asking because i haver another custom changes mades in menuconfig.

Thanks again for the help.

Oh, my bad: I assumed you are using the image builder, but you are compiling from source. The instructions are slightly different:

  1. Create ./files/lib/firmware/ath10k/QCA9888/hw2.0/ with all the files in the directory where you rum make from
  2. Compile your firmware the usual way and the build process will package all files from ./files/ into the image


Cool, i will try tomorrow.
Thank tou very much.


You can also transfer the different firmware.bin versions you wish to test over SCP to the router, reboot and you have it running.


I can do that when the router is running?
This file isn't read only in this case?
When i reboot the new file will be kept?


Yes, the new files will be kept after reboot.

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