2016-09-16 10:52:08

by Matteo Grandi

[permalink] [raw]
Subject: ath10k mesh mode issue

Hello all,

I'm using Gateworks Ventana 5410 boards
(http://www.gateworks.com/product/item/ventana-gw5410-network-processor)
running Ubuntu Trusty-Ventana kernel v3.14 with a Compex WLE600V5-27
miniPCIe Qualcomm Atheros QCA9882 wifi dongle installed
https://www.landashop.com/compex-wle-600v5.html?___store=english&___from_store=default

The aim is to use some of these boards to build a mesh network and
perform some HT test (it's a part of my MSc thesis).
I'm trying to configure the devices in mesh mode, but I've encountered
some problems, this is the dmesg output:

root@Yazi:~# iw dev wlan1 interface add mp1 type mp
root@Yazi:~# iw dev mp1 set freq 5240
root@Yazi:~# dmesg | grep ath
[ 7.134520] ath10k_pci 0000:07:00.0: pci irq legacy interrupts 0
irq_mode 0 reset_mode 0
[ 7.349228] ath10k_pci 0000:07:00.0: Direct firmware load failed
with error -2
[ 7.349245] ath10k_pci 0000:07:00.0: Falling back to user helper
[ 7.417170] ath10k_pci 0000:07:00.0: Direct firmware load failed
with error -2
[ 7.417189] ath10k_pci 0000:07:00.0: Falling back to user helper
[ 8.589474] ath10k_pci 0000:07:00.0: qca988x hw2.0 (0x4100016c,
0x043222ff sub 0000:0000) fw 10.2.4.70.54 fwapi 5 bdapi 1 htt-ver 2.1
wmi-op 5 htt-op 2 cal otp max-sta 128 raw 0 hwcrypto 1 features
no-p2p,raw-mode
[ 8.589491] ath10k_pci 0000:07:00.0: debug 1 debugfs 1 tracing 0
dfs 0 testmode 1
[ 8.691670] ath: EEPROM regdomain: 0x0
[ 8.691680] ath: EEPROM indicates default country code should be used
[ 8.691686] ath: doing EEPROM country->regdmn map search
[ 8.691695] ath: country maps to regdmn code: 0x3a
[ 8.691702] ath: Country alpha2 being used: US
[ 8.691706] ath: Regpair used: 0x3a
root@Yazi:~# ifconfig mp1 up
SIOCSIFFLAGS: Invalid argument
root@Yazi:~# dmesg | grep ath
[ 7.134520] ath10k_pci 0000:07:00.0: pci irq legacy interrupts 0
irq_mode 0 reset_mode 0
[ 7.349228] ath10k_pci 0000:07:00.0: Direct firmware load failed
with error -2
[ 7.349245] ath10k_pci 0000:07:00.0: Falling back to user helper
[ 7.417170] ath10k_pci 0000:07:00.0: Direct firmware load failed
with error -2
[ 7.417189] ath10k_pci 0000:07:00.0: Falling back to user helper
[ 8.589474] ath10k_pci 0000:07:00.0: qca988x hw2.0 (0x4100016c,
0x043222ff sub 0000:0000) fw 10.2.4.70.54 fwapi 5 bdapi 1 htt-ver 2.1
wmi-op 5 htt-op 2 cal otp max-sta 128 raw 0 hwcrypto 1 features
no-p2p,raw-mode
[ 8.589491] ath10k_pci 0000:07:00.0: debug 1 debugfs 1 tracing 0
dfs 0 testmode 1
[ 8.691670] ath: EEPROM regdomain: 0x0
[ 8.691680] ath: EEPROM indicates default country code should be used
[ 8.691686] ath: doing EEPROM country->regdmn map search
[ 8.691695] ath: country maps to regdmn code: 0x3a
[ 8.691702] ath: Country alpha2 being used: US
[ 8.691706] ath: Regpair used: 0x3a
[ 176.983250] ath10k_pci 0000:07:00.0: must load driver with
rawmode=1 to add mesh interfaces

It seems that the rowmode is NOT enable, but 8 lines above it's seems
to be ok...

Let me give you some useful details:
- the lspci output:
root@Yazi:~# lspci
00:00.0 PCI bridge: Synopsys, Inc. Device abcd (rev 01)
01:00.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI
Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
01:00.1 System peripheral: PLX Technology, Inc. PEX 8609 8-lane,
8-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
02:01.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI
Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
02:04.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI
Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
02:05.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI
Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
02:06.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI
Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
02:07.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI
Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
02:08.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI
Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
02:09.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI
Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
07:00.0 Network controller: Qualcomm Atheros QCA986x/988x 802.11ac
Wireless Network Adapter
08:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8057
PCI-E Gigabit Ethernet Controller

-the lsmod output:
root@Yazi:~# lsmod
Module Size Used by
arc4 1687 2
ath10k_pci 34340 0
ath10k_core 289147 1 ath10k_pci
sky2 53987 0
mac80211 458056 1 ath10k_core
ath 21573 1 ath10k_core
cfg80211 218260 3 ath,mac80211,ath10k_core
compat 24039 4 cfg80211,mac80211,ath10k_pci,ath10k_core

- the firmware currently in use is the firmware-5.bin_10.2.4.70.54
(renamed firmware-5.bin and with executable permission) located in
/lib/firmware/ath10k/QCA988X/hw2.0. I retrived it on
https://github.com/kvalo/ath10k-firmware
- The backports-4.2.6-1 was crosscompiled with the kernel following
the official wiki guide provided by Gateworks
- I've also tried to load the ath10k modules adding the parameter
rowmode=1 but I had an error "rawmode unknown parameter"
- in another try I used the firmware "firmware-5.bin_10.2.4.70.6-2"
after retriving this
https://github.com/o11s/open80211s/wiki/ath10k-(802.11ac)-for-Mesh-Support
but nothing is changed...

I'm not an expert so I'm sorry if I miss some basics...
Hope in your help!

All the best


2016-09-23 12:28:03

by Michal Kazior

[permalink] [raw]
Subject: Re: ath10k mesh mode issue

On 21 September 2016 at 18:27, Matteo Grandi <[email protected]> wrote:
> Hi Michal,
> thanks for the reply:
> I've already loaded the ath10k_core with the rowmode parameters, this
> is the modinfo result:
> root@Tam:~# modinfo ath10k_core
> filename:
> /lib/modules/3.14.48-g408ccb9/kernel/drivers/net/wireless/ath/ath10k/ath1=
0k_core.ko
> license: Dual BSD/GPL
> description: Core module for QCA988X PCIe devices.
> author: Qualcomm Atheros
> srcversion: 407804E6D5A63597F137E9B
> depends: mac80211,cfg80211,compat,ath
> vermagic: 3.14.48-g408ccb9 SMP mod_unload modversions ARMv7 p2v8
> parm: debug_mask:Debugging mask (uint)
> parm: uart_print:Uart target debugging (bool)
> parm: skip_otp:Skip otp failure for calibration in testmode (bo=
ol)
> parm: cryptmode:Crypto mode: 0-hardware, 1-software (uint)
> parm: rawmode:Use raw 802.11 frame datapath (bool)
[...]
> I've loaded adding the line ath10k_core rawmode=3D1 to the file etc/modul=
es

Hmm... are you sure the module is actually loaded with the parameter?

You can check it with:

grep . /sys/module/ath10k*/parameters/*


Micha=C5=82

2016-09-21 16:27:40

by Matteo Grandi

[permalink] [raw]
Subject: Re: ath10k mesh mode issue

Hi Michal,
thanks for the reply:
I've already loaded the ath10k_core with the rowmode parameters, this
is the modinfo result:
root@Tam:~# modinfo ath10k_core
filename:
/lib/modules/3.14.48-g408ccb9/kernel/drivers/net/wireless/ath/ath10k/ath10k=
_core.ko
license: Dual BSD/GPL
description: Core module for QCA988X PCIe devices.
author: Qualcomm Atheros
srcversion: 407804E6D5A63597F137E9B
depends: mac80211,cfg80211,compat,ath
vermagic: 3.14.48-g408ccb9 SMP mod_unload modversions ARMv7 p2v8
parm: debug_mask:Debugging mask (uint)
parm: uart_print:Uart target debugging (bool)
parm: skip_otp:Skip otp failure for calibration in testmode (bool=
)
parm: cryptmode:Crypto mode: 0-hardware, 1-software (uint)
parm: rawmode:Use raw 802.11 frame datapath (bool)

root@Tam:~# modinfo ath10k_pci
filename:
/lib/modules/3.14.48-g408ccb9/kernel/drivers/net/wireless/ath/ath10k/ath10k=
_pci.ko
firmware: ath10k/QCA9377/hw1.0/board.bin
firmware: ath10k/QCA9377/hw1.0/firmware-5.bin
firmware: ath10k/QCA6174/hw3.0/board-2.bin
firmware: ath10k/QCA6174/hw3.0/board.bin
firmware: ath10k/QCA6174/hw3.0/firmware-5.bin
firmware: ath10k/QCA6174/hw3.0/firmware-4.bin
firmware: ath10k/QCA6174/hw2.1/board-2.bin
firmware: ath10k/QCA6174/hw2.1/board.bin
firmware: ath10k/QCA6174/hw2.1/firmware-5.bin
firmware: ath10k/QCA6174/hw2.1/firmware-4.bin
firmware: ath10k/QCA988X/hw2.0/board-2.bin
firmware: ath10k/QCA988X/hw2.0/board.bin
firmware: ath10k/QCA988X/hw2.0/firmware-5.bin
firmware: ath10k/QCA988X/hw2.0/firmware-4.bin
firmware: ath10k/QCA988X/hw2.0/firmware-3.bin
firmware: ath10k/QCA988X/hw2.0/firmware-2.bin
firmware: ath10k/QCA988X/hw2.0/firmware.bin
license: Dual BSD/GPL
description: Driver support for Atheros QCA988X PCIe devices
author: Qualcomm Atheros
version: backported from Linux (v4.4.2-0-g1cb8570) using
backports v4.4.2-1-0-gbec4037
srcversion: EBB3D4E36DE49B7EC8057D0
alias: pci:v0000168Cd00000042sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000040sv*sd*bc*sc*i*
alias: pci:v0000168Cd0000003Esv*sd*bc*sc*i*
alias: pci:v0000168Cd00000041sv*sd*bc*sc*i*
alias: pci:v0000168Cd0000003Csv*sd*bc*sc*i*
depends: ath10k_core,compat
vermagic: 3.14.48-g408ccb9 SMP mod_unload modversions ARMv7 p2v8
parm: irq_mode:0: auto, 1: legacy, 2: msi (default: 0) (uint)
parm: reset_mode:0: auto, 1: warm only (default: 0) (uint)


I've loaded adding the line ath10k_core rawmode=3D1 to the file etc/modules

The problem persists... maybe it's a firmware issue or even a fault of
the wifi card?

Really many thanks

Matteo


>
> 2016-09-19 13:22 GMT+02:00 Michal Kazior <[email protected]>:
>>
>> On 16 September 2016 at 12:56, Matteo Grandi <[email protected]> wrot=
e:
>> > Hello all,
>> [...]
>> > [ 8.589474] ath10k_pci 0000:07:00.0: qca988x hw2.0 (0x4100016c,
>> > 0x043222ff sub 0000:0000) fw 10.2.4.70.54 fwapi 5 bdapi 1 htt-ver 2.1
>> > wmi-op 5 htt-op 2 cal otp max-sta 128 raw 0 hwcrypto 1 features
>> > no-p2p,raw-mode
>>
>> The "raw-mode" here only hints the firmware is capable of raw mode
>> operation which needs to be explicitly enabled.
>>
>>
>> > [ 8.589491] ath10k_pci 0000:07:00.0: debug 1 debugfs 1 tracing 0
>> > dfs 0 testmode 1
>> > [ 8.691670] ath: EEPROM regdomain: 0x0
>> > [ 8.691680] ath: EEPROM indicates default country code should be us=
ed
>> > [ 8.691686] ath: doing EEPROM country->regdmn map search
>> > [ 8.691695] ath: country maps to regdmn code: 0x3a
>> > [ 8.691702] ath: Country alpha2 being used: US
>> > [ 8.691706] ath: Regpair used: 0x3a
>> > [ 176.983250] ath10k_pci 0000:07:00.0: must load driver with
>> > rawmode=3D1 to add mesh interfaces
>> [...]
>> > - I've also tried to load the ath10k modules adding the parameter
>> > rowmode=3D1 but I had an error "rawmode unknown parameter"
>>
>> Only ath10k_core needs to be loaded with rawmode=3D1.
>>
>> You can check available module parameters with:
>> modinfo ath10k_core
>> modinfo ath10k_pci
>>
>>
>> Micha=C5=82
>
>