freifunk-gluon / gluon

a modular framework for creating OpenWrt-based firmwares for wireless mesh nodes
https://gluon.readthedocs.io
Other
543 stars 324 forks source link

5GHz doesn't work on Archer C7 with 2018.1.1 #1561

Closed oliver closed 5 years ago

oliver commented 5 years ago

I have flashed gluon-ffhb-2018.1.1+bremen1-tp-link-archer-c7-v2.bin (from Freifunk Bremen community) onto an Archer C7 v2. The device appears to basically work, except for 5GHz wifi. There is an ibss1 network but no ibss0.

On a similar device the gluon-ffhb-2017.1.8+bremen1-tp-link-archer-c7-v2.bin firmware works fine, including 5GHz mesh and client network.

oliver commented 5 years ago

Here is the dmesg output for the 2018.1.1 device: dmesg-2018.1.1.ac7.txt

mweinelt commented 5 years ago

Please post the output of uci show wireless.

ath10k_pci 0000:01:00.0: no channel configured; ignoring frame(s)!

This indicates there is something wrong with the channel configuration.

rotanid commented 5 years ago

for us 5 GHz is working on Archer C7 v2 with Gluon v2018.1.x, but we're not using ibss but 802.11s, so maybe its related to this difference

oliver commented 5 years ago

Sorry for the delay, had to set up a different device with the new firmware (same model though). It's this one:

Here's the output of uci show wireless:

wireless.radio0=wifi-device
wireless.radio0.type='mac80211'
wireless.radio0.hwmode='11a'
wireless.radio0.path='pci0000:01/0000:01:00.0'
wireless.radio0.channel='44'
wireless.radio0.htmode='VHT20'
wireless.radio0.country='DE'
wireless.radio1=wifi-device
wireless.radio1.type='mac80211'
wireless.radio1.hwmode='11g'
wireless.radio1.path='platform/qca955x_wmac'
wireless.radio1.htmode='HT20'
wireless.radio1.channel='6'
wireless.radio1.country='DE'
wireless.radio1.supported_rates='6000' '9000' '12000' '18000' '24000' '36000' '48000' '54000'
wireless.radio1.basic_rate='6000' '9000' '18000' '36000' '54000'
wireless.ibss_radio0=wifi-iface
wireless.ibss_radio0.ifname='ibss0'
wireless.ibss_radio0.network='ibss_radio0'
wireless.ibss_radio0.device='radio0'
wireless.ibss_radio0.bssid='32:06:1C:1F:B9:E8'
wireless.ibss_radio0.disabled='0'
wireless.ibss_radio0.mcast_rate='6000'
wireless.ibss_radio0.mode='adhoc'
wireless.ibss_radio0.macaddr='0e:9e:42:44:91:aa'
wireless.ibss_radio0.ssid='mesh.ffhb.de'
wireless.ibss_radio1=wifi-iface
wireless.ibss_radio1.ifname='ibss1'
wireless.ibss_radio1.network='ibss_radio1'
wireless.ibss_radio1.device='radio1'
wireless.ibss_radio1.bssid='32:06:1C:1F:B9:E8'
wireless.ibss_radio1.disabled='0'
wireless.ibss_radio1.mcast_rate='6000'
wireless.ibss_radio1.mode='adhoc'
wireless.ibss_radio1.macaddr='0e:9e:42:44:91:ae'
wireless.ibss_radio1.ssid='mesh.ffhb.de'
wireless.client_radio0=wifi-iface
wireless.client_radio0.ifname='client0'
wireless.client_radio0.network='client'
wireless.client_radio0.disabled='0'
wireless.client_radio0.device='radio0'
wireless.client_radio0.mode='ap'
wireless.client_radio0.macaddr='f4:f2:6d:70:b2:75'
wireless.client_radio0.ssid='bremen.freifunk.net'
wireless.client_radio1=wifi-iface
wireless.client_radio1.ifname='client1'
wireless.client_radio1.network='client'
wireless.client_radio1.disabled='0'
wireless.client_radio1.device='radio1'
wireless.client_radio1.mode='ap'
wireless.client_radio1.macaddr='f4:f2:6d:70:b2:76'
wireless.client_radio1.ssid='bremen.freifunk.net'

Here's dmesg output from this device: dmesg-2018.1.1.og-ac7-testing-2.txt

mweinelt commented 5 years ago

And maybe iw dev?

oliver commented 5 years ago
root@og-ac7-testing-2:~# iw dev
phy#1
    Interface client1
        ifindex 15
        wdev 0x100000003
        addr f4:f2:6d:70:b2:76
        ssid bremen.freifunk.net
        type AP
        channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz
        txpower 20.00 dBm
    Interface ibss1
        ifindex 12
        wdev 0x100000002
        addr 0e:9e:42:44:91:ae
        ssid mesh.ffhb.de
        type IBSS
        channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz
        txpower 20.00 dBm
mweinelt commented 5 years ago

Something is wrong with the firmware load.

[   10.977818] ath10k driver, optimized for CT firmware, probing pci device: 0x3c.
[   10.986486] PCI: Enabling device 0000:01:00.0 (0000 -> 0002)
[   10.992429] ath10k_pci 0000:01:00.0: pci irq legacy oper_irq_mode 1 irq_mode 0 reset_mode 0
[   11.214967] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/pre-cal-pci-0000:01:00.0.bin failed with error -2
[   11.225851] ath10k_pci 0000:01:00.0: Falling back to user helper
[   11.360684] firmware ath10k!pre-cal-pci-0000:01:00.0.bin: firmware_loading_store: map pages failed
[   11.371219] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/fwcfg-pci-0000:01:00.0.txt failed with error -2
[   11.381924] ath10k_pci 0000:01:00.0: Falling back to user helper
[   11.544417] firmware ath10k!fwcfg-pci-0000:01:00.0.txt: firmware_loading_store: map pages failed
[   11.757678] ath10k_pci 0000:01:00.0: qca988x hw2.0 target 0x4100016c chip_id 0x043202ff sub 0000:0000
[   11.767084] ath10k_pci 0000:01:00.0: kconfig debug 1 debugfs 1 tracing 0 dfs 1 testmode 0
[   11.780112] ath10k_pci 0000:01:00.0: firmware ver 10.2.4-1.0-00016 api 5 features no-p2p,raw-mode,mfp crc32 0c5668f8
[   11.790911] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/QCA988X/hw2.0/board-2.bin failed with error -2
[   11.801512] ath10k_pci 0000:01:00.0: Falling back to user helper
[   11.900849] firmware ath10k!QCA988X!hw2.0!board-2.bin: firmware_loading_store: map pages failed
[   11.910088] ath10k_pci 0000:01:00.0: board_file api 1 bmi_id N/A crc32 bebc7c08
[   13.008685] ath10k_pci 0000:01:00.0: wmi print 'P 145 V 16 T 443'
[   13.014927] ath10k_pci 0000:01:00.0: wmi print '_wlan_rtt_enable'
[   13.023000] ath10k_pci 0000:01:00.0: htt-ver 2.1 wmi-op 5 htt-op 2 cal file max-sta 128 raw 0 hwcrypto 1
[   13.032669] ath10k_pci 0000:01:00.0: no channel configured; ignoring frame(s)!
[   13.040018] ath10k_pci 0000:01:00.0: no channel configured; ignoring frame(s)!
[   13.047462] ath10k_pci 0000:01:00.0: no channel configured; ignoring frame(s)!
oliver commented 5 years ago

Output of iw list: iw-list.txt

oliver commented 5 years ago

@mweinelt: I think with 2017.1.8 there are similar firmware load errors, but 5 GHz works there. Here's some dmesg output from an AC7v2 with 2017.1.8:

[   11.087224] ath10k_pci 0000:01:00.0: could not fetch firmware file 'ath10k/QCA988X/hw2.0/firmware-5.bin': -11
[   11.097379] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/QCA988X/hw2.0/firmware-4.bin failed with error -2
[   11.108237] ath10k_pci 0000:01:00.0: Falling back to user helper
[   11.263193] firmware ath10k!QCA988X!hw2.0!firmware-4.bin: firmware_loading_store: map pages failed
[   11.272480] ath10k_pci 0000:01:00.0: could not fetch firmware file 'ath10k/QCA988X/hw2.0/firmware-4.bin': -11
[   11.282640] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/QCA988X/hw2.0/firmware-3.bin failed with error -2
[   11.293505] ath10k_pci 0000:01:00.0: Falling back to user helper
[   11.447880] firmware ath10k!QCA988X!hw2.0!firmware-3.bin: firmware_loading_store: map pages failed
[   11.457142] ath10k_pci 0000:01:00.0: could not fetch firmware file 'ath10k/QCA988X/hw2.0/firmware-3.bin': -11
[   11.656609] ath10k_pci 0000:01:00.0: qca988x hw2.0 target 0x4100016c chip_id 0x043202ff sub 0000:0000
[   11.666018] ath10k_pci 0000:01:00.0: kconfig debug 1 debugfs 1 tracing 0 dfs 1 testmode 0
[   11.678317] ath10k_pci 0000:01:00.0: firmware ver 10.1.467-ct-_fW-019-60dd7c5 api 2 features wmi-10.x,has-wmi-mgmt-tx,txstatus-noack,wmi-10.x-CT,ra
temask-CT crc32 f59d154a
[   11.693943] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/QCA988X/hw2.0/board-2.bin failed with error -2
[   11.704546] ath10k_pci 0000:01:00.0: Falling back to user helper
[   11.800537] firmware ath10k!QCA988X!hw2.0!board-2.bin: firmware_loading_store: map pages failed
[   11.809825] ath10k_pci 0000:01:00.0: board_file api 1 bmi_id N/A crc32 bebc7c08
[   12.720566] ath10k_pci 0000:01:00.0: 10.1 wmi init: vdevs: 16  peers: 127  tid: 256
[   12.737963] ath10k_pci 0000:01:00.0: wmi print 'P 128 V 8 T 410'
[   12.744120] ath10k_pci 0000:01:00.0: wmi print 'msdu-desc: 1424  sw-crypt: 0'
[   12.751369] ath10k_pci 0000:01:00.0: wmi print 'alloc rem: 25908 iram: 25808'
[   12.805422] ath10k_pci 0000:01:00.0: htt-ver 2.1 wmi-op 2 htt-op 2 cal file max-sta 128 raw 0 hwcrypto 1
[   12.921710] ath: EEPROM regdomain: 0x0
[   12.921724] ath: EEPROM indicates default country code should be used
[   12.921732] ath: doing EEPROM country->regdmn map search
[   12.921748] ath: country maps to regdmn code: 0x3a
[   12.921757] ath: Country alpha2 being used: US
[   12.921765] ath: Regpair used: 0x3a
[   12.958794] batman_adv: B.A.T.M.A.N. advanced 2013.4.0 (compatibility version 14) loaded
[   13.055471] u32 classifier
[   13.058218]     input device check on
[   13.061982]     Actions configured
[   13.067524] Mirror/redirect action on
[   13.174410] Bridge firewalling registered
[   13.195464] Ebtables v2.0 registered
[   13.201665] ip_tables: (C) 2000-2006 Netfilter Core Team
oliver commented 5 years ago

For comparison, here's the full output of dmesg, iw dev and iw list of an AC7v2 with 2017.1.8+bremen1 (this device: https://map.bremen.freifunk.net/#!/en/map/60e3274fdac3):

neocturne commented 5 years ago

The firmware load warnings look completely normal. I'll have a closer look at the logs tomorrow.

oliver commented 5 years ago

Copying the ath10k firmware from 2017.1.8 appears to fix this: the node now meshes on 5GHz and also has a 5GHz client, according to Meshviewer.

This is the firmware I've used: firmware-2.bin.gz (sha256sum: 4112d78161a2c20e7a9490ea8d04e9f919508bafb097d88761dcce026c26f93f). I have copied this file from the AC7 with 2017.1.8 mentioned above ("5ghztestnode") from /lib/firmware/ath10k/QCA988X/hw2.0/firmware-2.bin.

On the 2018.1.1 device I have copied the firmware-2.bin to /lib/firmware/ath10k/QCA988X/hw2.0/firmware-2.bin and also renamed the existing /lib/firmware/ath10k/QCA988X/hw2.0/firmware-5.bin file (to firmware-5.bin.disabled) so that it is not detected by the driver.

mweinelt commented 5 years ago

So did Candelatech drop/break QCA9880 support?

oliver commented 5 years ago

I think the firmware in 2018.1.1 is not from Candelatech but is the original Qualcomm FW.

mweinelt commented 5 years ago

See the conditional packaging here: https://github.com/freifunk-gluon/gluon/blob/v2018.1.x/targets/ar71xx-generic#L5-L8

oliver commented 5 years ago

Used ath10k firmwares:

The ath10k driver appears to be same version in both Gluon releases, judging from these dmesg lines:

Loading modules backported from Linux version wt-2017-01-31-0-ge882dff19e7f
Backport generated by backports.git backports-20160324-13-g24da7d3c
ath10k driver, optimized for CT firmware, probing pci device: 0x3c.
mweinelt commented 5 years ago

For IBSS support you'd need the -ct firmware. Post opkg list-installed | grep ath10k. If it doesn't have the -ct packages you can probably use opkg update and opkg install kmod-ath10k-ct ath10k-firmware-qca988x-ct.

mweinelt commented 5 years ago

https://github.com/FreifunkBremen/gluon-site-ffhb/blob/master/site.mk#L38 This should read GLUON_WLAN_MESH ?= ibss. This is an issue in your site.

This change happened in 919dda90b30293a6c7c3da8369dcd81064d5282f and the fact that it needed a migration is not well documented.

@jplitza @corny @SimJoSt @genofire

oliver commented 5 years ago

@mweinelt: nice detective work! Your suggested commands fixed it:

opkg update
opkg remove ath10k-firmware-qca988x
opkg install ath10k-firmware-qca988x-ct
oliver commented 5 years ago

@mweinelt: we use IBSS in Bremen, so we would probably use GLUON_WLAN_MESH ?= ibss? Or did I misunderstand the GLUON_WLAN_MESH option?

mweinelt commented 5 years ago

Exactly, but please remember to migrate to 11s, for example after v2018.2 is released, which probably contains #1555.

oliver commented 5 years ago

@mweinelt: thanks for your help!

genofire commented 5 years ago

@mweinelt wait #1555 is only for domain change - so i could change configuration in site.conf but GLUON_WLAN_MESH is in site.mk and is used during build - how should this be possible?

mweinelt commented 5 years ago

Ah funny, there was a time when enabling both IBSS and 11s at the same time was possible in the same firmware. Not everything will work, like 5 GHz on QCA988x radios, but I think with GLUON_WLAN_MESH=11s one domain with IBSS and the other with 802.11s could still be possible.

@blocktrron Do you agree?

blocktrron commented 5 years ago

This is the case for ar71xx indeed as ath9k supports both protos simultaneously.

This is not the case for ipq40xx as it uses ath10k on both frequency bands.