Ath10k-ct driver supports only 32 devices

I tried to go forward to the ct driver and then modify the .txt to allow 98 clients, but I can't find any .txt there, only some binaries:

root@OpenWrt:~# ls /lib/firmware/ath10k/
QCA9984                       pre-cal-pci-0001:01:00.0.bin
pre-cal-pci-0000:01:00.0.bin

What should I do?

Thanks!

EDIT: With the ct driver installed I also can't find any file there

Yeah. Wasn't sure CT driver contains required patch. I guess it does.

You need to create the file. Just follow instructions from the link pasted by greearb.

Makes sense now!

Which fields are mandatory? Should I just paste all of them?

image

Most of it seems like greek to me, that's why I'm asking.

EDIT: Well, there goes nothing

EDIT2: Didn't work. It reaches 32 and that's it. Systemlog full of errors "... (32)". :confused:

EDIT3: Made it work. Apparently it must be the same name of one of the .bin's in the folder /lib/firmware/ath10k/, but with the extension .txt. (On mine?) it's: "pre-cal-pci-0001:01:00.0.txt". Now the limit's gone. If there are more than one file there are two approaches: Trial and error or the command "logread | grep fwcfg" (Thanks @perceival)

Thanks to everyone for their help!

I would start with all and then google for each.

1 Like

We have just tested with @Fusseldieb procedure without the need to enable debugging. Just to document the thing:

  • in the log file search for fwcfg string (logread | grep fwcfg)
  • create file /lib/firmware/ath10k/fwcfg-pci-restofthenamefoundinthelog.txt
  • populate it with the contents
3 Likes

hey guys.
that didnt work for me.
what am i doing wrong?

Mon Feb 3 09:26:23 2020 daemon.notice hostapd: wlan1: STA xx:xx:xx:xx:xx:xx IEEE 802.11: Could not add STA to kernel driver
Mon Feb 3 09:26:23 2020 kern.warn kernel: [ 769.257645] ath10k_pci 0001:01:00.0: refusing to associate station: too many connected already (32)

thanks

For starters, the .txt file name is wrong. Just dmesg | grep txt to find the path/name ath10k-ct is looking for.

thank you,
i have changed the filename accordingly to what dmesg | grep txt was pointing.
no more error msgs about that. now, under wireless tab i can see that the radio0 and radio1 are no associated. and no wifi is available.
once i changed the files names to .bck it all came back.

within the txt files

ath10k/fwcfg-pci-0000:01:00.0.txt
ath10k/fwcfg-pci-0001:01:00.0.txt

i've put:

vdevs = 4
peers = 100
active_peers = 100
stations = 100
rate_ctrl_objs = 7
regdom = 840
#fwname = firmware-5-htt-mgt-b.bin
fwver = 5
nohwcrypt = 0
ct_sta_mode = 0
tx_desc = 2200
#max_nss = 3
tids = 256
skid_limit = 360
max_amsdus = 3

please help :pray:

You're most likely asking for the impossible. :wink:
What's the output of dmesg | grep ath10k with that configuration?

You could try using the other driver, now you're probably using the "-ct" or "-ct-htt" driver.

Try the opkg remove & install combo to swap the drivers as mentioned in post 9.

With the "normal" ath10k driver you shouldn't need the .txt and it also hasn't the 32 limit. 5G isn't as stable (speed is ok, but it vanishes if you fiddle with it), but still...

Try it out.

Try with only the options you really need, those related to the number of clients. In other words remove the regdom line and everything below it.

Actually, I'd just keep vdevs = 4 and peers = 100 (even though 100 peers is pushing it).

i've pasted it to pastebin,
thanks

There's still something wrong. The driver is not loading the firmware configuration text files. Are you sure you've put them in the right place? The absolute paths should be

/lib/firmware/ath10k/fwcfg-pci-0000:01:00.0.txt
/lib/firmware/ath10k/fwcfg-pci-0001:01:00.0.txt

It looks to work for me, but i dont have many wlan devices to verify, it looks like it resets to default settings again

[   20.941755] ath10k_pci 0000:01:00.0: assign IRQ: got 35
[   20.941774] ath10k 4.19 driver, optimized for CT firmware, probing pci device: 0x46.
[   20.942260] ath10k_pci 0000:01:00.0: enabling device (0140 -> 0142)
[   20.948715] ath10k_pci 0000:01:00.0: enabling bus mastering
[   20.949269] ath10k_pci 0000:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[   21.055665] ath10k_pci 0000:01:00.0: fwcfg key: vdevs  val: 4
[   21.055696] ath10k_pci 0000:01:00.0: fwcfg key: peers  val: 100
[   21.060458] ath10k_pci 0000:01:00.0: fwcfg key: active_peers  val: 100
[   21.066172] ath10k_pci 0000:01:00.0: fwcfg key: stations  val: 100
[   21.072792] ath10k_pci 0000:01:00.0: fwcfg key: rate_ctrl_objs  val: 7
[   21.078948] ath10k_pci 0000:01:00.0: fwcfg key: regdom  val: 840
[   21.085447] ath10k_pci 0000:01:00.0: fwcfg key: fwver  val: 5
[   21.091598] ath10k_pci 0000:01:00.0: fwcfg key: nohwcrypt  val: 0
[   21.097254] ath10k_pci 0000:01:00.0: fwcfg key: ct_sta_mode  val: 0
[   21.103347] ath10k_pci 0000:01:00.0: fwcfg key: tx_desc  val: 2200
[   21.109420] ath10k_pci 0000:01:00.0: fwcfg key: tids  val: 256
[   21.115654] ath10k_pci 0000:01:00.0: fwcfg key: skid_limit  val: 360
[   21.121465] ath10k_pci 0000:01:00.0: fwcfg key: max_amsdus  val: 3
[   21.259884] ath10k_pci 0000:01:00.0: qca9984/qca9994 hw1.0 target 0x01000000 chip_id 0x00000000 sub 168c:cafe
[   21.259914] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   21.271100] ath10k_pci 0000:01:00.0: firmware ver 10.4b-ct-9984-fH-013-e0e3a0aae api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,htt-mgt-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 2772a362
[   23.597782] ath10k_pci 0000:01:00.0: board_file api 2 bmi_id 0:1 crc32 85498734
[   29.423684] ath10k_pci 0000:01:00.0: DANGER! You're overriding EEPROM-defined regulatory domain
[   29.423741] ath10k_pci 0000:01:00.0: from: 0x0 to 0x348 (svc-ready-work)
[   29.431331] ath10k_pci 0000:01:00.0: Your card was not certified to operate in the domain you chose.
[   29.438274] ath10k_pci 0000:01:00.0: This might result in a violation of your local regulatory rules.
[   29.447374] ath10k_pci 0000:01:00.0: Do not ever do this unless you really know what you are doing!
[   29.459005] ath10k_pci 0000:01:00.0: 10.4 wmi init: vdevs: 4  peers: 100  tid: 256
[   29.465360] ath10k_pci 0000:01:00.0: using 7 firmware rate-ctrl objects
[   29.472985] ath10k_pci 0000:01:00.0: msdu-desc: 2200  skid: 360
[   29.555306] ath10k_pci 0000:01:00.0: wmi print 'P 100/100 V 4 K 300 PH 308 T 374  msdu-desc: 2200  sw-crypt: 0 ct-sta: 0'
[   29.556306] ath10k_pci 0000:01:00.0: wmi print 'free: 29100 iram: 14292 sram: 6772'
[   29.816106] ath10k_pci 0000:01:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal pre-cal-file max-sta 100 raw 0 hwcrypto 1
[   29.885788] ath: EEPROM regdomain: 0x8348
[   29.885799] ath: EEPROM indicates we should expect a country code
[   29.885818] ath: doing EEPROM country->regdmn map search
[   29.885833] ath: country maps to regdmn code: 0x3a
[   29.885846] ath: Country alpha2 being used: US
[   29.885855] ath: Regpair used: 0x3a
[   29.891841] ath10k_pci 0001:01:00.0: assign IRQ: got 37
[   29.891863] ath10k 4.19 driver, optimized for CT firmware, probing pci device: 0x46.
[   29.892477] ath10k_pci 0001:01:00.0: enabling device (0140 -> 0142)
[   29.898837] ath10k_pci 0001:01:00.0: enabling bus mastering
[   29.899458] ath10k_pci 0001:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[   30.653348] firmware ath10k!fwcfg-pci-0001:01:00.0.txt: firmware_loading_store: map pages failed
[   30.682700] ath10k_pci 0001:01:00.0: qca9984/qca9994 hw1.0 target 0x01000000 chip_id 0x00000000 sub 168c:cafe
[   30.682733] ath10k_pci 0001:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   30.693940] ath10k_pci 0001:01:00.0: firmware ver 10.4b-ct-9984-fH-013-e0e3a0aae api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,htt-mgt-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 2772a362
[   33.014008] ath10k_pci 0001:01:00.0: board_file api 2 bmi_id 0:2 crc32 85498734
[   38.843784] ath10k_pci 0001:01:00.0: 10.4 wmi init: vdevs: 16  peers: 48  tid: 96
[   38.843818] ath10k_pci 0001:01:00.0: msdu-desc: 2500  skid: 32
[   38.928418] ath10k_pci 0001:01:00.0: wmi print 'P 48/48 V 16 K 144 PH 176 T 186  msdu-desc: 2500  sw-crypt: 0 ct-sta: 0'
[   38.929300] ath10k_pci 0001:01:00.0: wmi print 'free: 81800 iram: 13300 sram: 14440'
[   39.243199] ath10k_pci 0001:01:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal pre-cal-file max-sta 32 raw 0 hwcrypto 1

Then later:

[   50.198507] ath10k_pci 0000:01:00.0: 10.4 wmi init: vdevs: 4  peers: 100  tid: 256
[   50.198533] ath10k_pci 0000:01:00.0: using 7 firmware rate-ctrl objects
[   50.205074] ath10k_pci 0000:01:00.0: msdu-desc: 2200  skid: 360
[   50.287447] ath10k_pci 0000:01:00.0: wmi print 'P 100/100 V 4 K 300 PH 308 T 374  msdu-desc: 2200  sw-crypt: 0 ct-sta: 0'
[   50.288450] ath10k_pci 0000:01:00.0: wmi print 'free: 29100 iram: 14292 sram: 6772'
[   50.643246] ath10k_pci 0000:01:00.0: Firmware lacks feature flag indicating a retry limit of > 2 is OK, requested limit: 4

yes. thats exactly where the files are

unfortunately that didn't work either :confused:

Oh, well… Try reducing the number of peers, then.

I've an Archer C2600, which I just upgraded to 19.07.2. I was running in the same problem (because lots of home automation switches, dimmers, etc.) with the 11bgn wlan, so I've created the file fwcfg-pci-0001:01:00.0.txt, but only with this:
peers = 64
active_peers = 64
stations = 63

It seems to be working, but is that right, I mean is not necessary/convenient to change other parameters and leave the others as default (I guess it keeps defaults for the remaining parameters!) or I should change anything else?

(I want to avoid creating performance issues that I can't see!)