1

I work on a computer backed by Ubuntu 16.04, RT preempted kernel 4.16 and latest the linux firmware 1.175.3. My goal is to enable raw mode in QCA6174 chipset based wifi card so that I can create a mesh point. After some research I found out only these firmwares support raw_mode.

https://github.com/kvalo/ath10k-firmware/tree/master/QCA6174/hw3.0/4.4.1.c3 https://github.com/kvalo/ath10k-firmware/tree/master/QCA6174/hw3.0/4.4.1.c2

But I don't understand the ath drivers deep enough to automatically choose the right firmware.

Thanks in advance.

3 Answers3

1

First you need to find your card's exact model and hw version, I suggest checking dmesg output:

ath10k_pci 0000:3b:00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 1a56:1535

After that, you can find the right firmware card on the linux wireless page for ath10k, they are already compiled, just pick the right one based on the card model (including hw version) and your kernel.

Installation instructions are on the same page too:

First download the firmware image from the links above. In this example we use firmware-2.bin_10.1.467.2-1 from QCA988X 10.1 directory. Then just copy that file as firmware-2.bin to the ath10k firmware directory:

cp firmware-2.bin_10.1.467.2-1 /lib/firmware/ath10k/QCA988X/hw2.0/firmware-2.bin

Then reload ath10k (or restart the system) and you can check if the new firmware is in use.

Note: In some distributions the firmware location can be different than /lib/firmware.

Hope this helps!

Diaa Sami
  • 391
0

you need to copy updated board-2.bin and firmware-6.bin to /lib/firmware/ath10k/QCA6174/hw3.0 (renaming them) from

https://github.com/kvalo/ath10k-firmware/blob/master/QCA6174/hw3.0/board-2.bin https://github.com/kvalo/ath10k-firmware/blob/master/QCA6174/hw3.0/4.4.1.c3/firmware-6.bin_WLAN.RM.4.4.1.c3-00059

cp ath10k-firmware/QCA6174/hw3.0/4.4.1.c3/firmware-6.bin_WLAN.RM.4.4.1.c3-00059 /lib/firmware/ath10k/QCA6174/hw3.0/firmware-6.bin

And then check if correct firmware was used on boot - here is my output after updating firmware

[   32.529665] ath10k_pci 0000:01:00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 1028:0410
[   32.529668] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0
[   32.530093] ath10k_pci 0000:01:00.0: firmware ver WLAN.RM.4.4.1.c3-00059 api 6 features wowlan,ignore-otp,no-4addr-pad,raw-mode,mfp crc32 3c85e1f9
[   32.776709] ath10k_pci 0000:01:00.0: board_file api 2 bmi_id N/A crc32 c15a244d
[   32.844046] ath10k_pci 0000:01:00.0: unsupported HTC service id: 1536
[   32.862171] ath10k_pci 0000:01:00.0: htt-ver 3.62 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1
Eugene
  • 91
  • 1
  • 3
0

There is another catch. NetworkManager shows WiFi as disabled, when you check it's state with /n

sudo rfkill list all 

and it shows it is hardblocked - means it is disabled by button, but when trying to enable it, it shows that laptop goes to the "Airplane mode"

sudo rfkill list all /n

will show it is soft blocked but not hardblocked any more so it is possible to remove softlock

sudo rfkill unblock all

voila! All works now. They messed up physical button state with software state.... normaly if it is hardlocked I would expect Laptop being in Airplane mode... opposite synchronisation in NetworkManager..