YunCore SR3200: Problems with both radios

YunCore SR3200 (ar71xx) has problems with both radios (2.4 & 5.8 GHz). They do not operate on high bitrates. It configured as 00-World (any change doesn't help) with Tx-Power: 30 dBm (any change doesn't help) but still works in range of 0-14Mbit/s.

config wifi-device 'radio0'
    option type 'mac80211'
    option hwmode '11a'
    option path 'pci0000:00/0000:00:00.0'
    option distance '18'
    option country '00'
    option channel '140'
    option txpower '30'
    option noscan '1'
    option bursting '1'
    option ff '1'
    option compression '1'
    option xr '1'
    option ar '1'
    option htmode 'HT40+'

config wifi-iface 'default_radio0'
    option device 'radio0'
    option mode 'ap'
    option ssid '###'
    option network 'lan'
    option encryption 'psk2'
    option key '###'
    option wmm '0'

config wifi-device 'radio1'
    option type 'mac80211'
    option hwmode '11ng'
    option path 'platform/qca956x_wmac'
    option distance '18'
    option channel '9'
    option txpower '30'
    option country '00'
    option noscan '1'
    option bursting '1'
    option ff '1'
    option compression '1'
    option xr '1'
    option ar '1'
    option htmode 'HT40+'

config wifi-iface 'default_radio1'
    option device 'radio1'
    option mode 'ap'
    option ssid '###'
    option network 'lan'
    option encryption 'psk2'
    option key '###'
    option wmm '0'

You disabled WMM which effectively disables 11n HT operation. Remove option wmm 0 from both SSIDs and remove the bursting, ff, xr and ar options as well as these only apply to ancient madwifi drivers.

1 Like

Done.

Speed remains on 20.1Mbps which is arount 15-16Mbps according to Speedtest.net.

Attached TP-Link TL-WR1043N/ND v1, OWRT 15.05.1, to the same network (on totally different channel) with same settings but the maximum output 100mW only (in compare to 200mW of YunCore) works great on maximum of 54Mbps.

I also tried to switch channels with no luck, result remains the same.

Moreover, YunCore with the official OWRT prowided by manufacturer also works great with highest speed.

There should be somethig wrong with drivers or so.

Please, attach full bootlog from your device.

This smells like calibration issue.

This distance is extremely low. Consider increasing it to something like '100.'

Also, I advise changing your:

  • country setting, and
  • removing the the additional options you've added - as @jow previously mentioned above

This is unclear, what does your router say the speed is?

  • Is there a reason you made these configuration to your radio?
  • If you use a WiFi analyzer app, are there other devices on your channel(s)?
  • How much bandwidth does your ISP give you?

As I use Wi-Fi at my flat, 18 meters should me more than enough.

This is necessary because of Tx-Power limitation by country.
As I use it inside building it helps to deliver signal for the whole area.

As already mentioned, done with no improvement.

Literally 20.1Mbps and sometimes it goes to even lower numbers. Never to higher rates.

Please be specific, which ones?

Are there from neighbours but with very low strength. I know how to select the proper channel.
Moreover, as I said, another device (TP-Link, see above) with half of power (100 mW instead of 200 mW) delivers much better performance on the same channel when I switch channels between devices. Yeah, both are not on the same channel, nor adjoin.
And… strength of signal is very high.

100 Mbit full-duplex over fiber. YunCore delivers that full speed on eth ports with no problems. The problem is definitely in radios on on the way.

I'm not so sure...counting reflections and "long path propagation." Well, I'm with @robimarko...

Are you running any type of traffic shaping, though???

I would first check if OpenWRT partition layout matches the stock one.
It could be that calibration partition is not in the same place or is called different

No, I'm not so stupid to report slow speed on throttled device.

[    0.000000] Linux version 4.4.92 (buildbot@builds-02.infra.lede-project.org) (gcc version 5.4.0 (LEDE GCC 5.4.0 r3101-bce140e) ) #0 Tue Oct 17 14:59:45 2017
[    0.000000] MyLoader: sysp=95fcfcd3, boardp=9fe0f7fd, parts=7f33ddd3
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019750 (MIPS 74Kc)
[    0.000000] SoC: Qualcomm Atheros QCA956X ver 1 rev 0
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 08000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] No valid device tree found, continuing without
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] On node 0 totalpages: 32768
[    0.000000] free_area_init_node: node 0, pgdat 803d04d0, node_mem_map 81000000
[    0.000000]   Normal zone: 256 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 32768 pages, LIFO batch:7
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line:  board=SR3200 mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env),16000k(firmware),64k(art)ro console=ttyS0,115200 rootfstype=squashfs,jffs2 noinitrd
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] Memory: 125328K/131072K available (3076K kernel code, 160K rwdata, 412K rodata, 312K init, 205K bss, 5744K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:51
[    0.000000] Clocks: CPU:775.000MHz, DDR:650.000MHz, AHB:258.333MHz, Ref:25.000MHz
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 4932285024 ns
[    0.000006] sched_clock: 32 bits at 387MHz, resolution 2ns, wraps every 5541893118ns
[    0.008207] Calibrating delay loop... 385.84 BogoMIPS (lpj=1929216)
[    0.071017] pid_max: default: 32768 minimum: 301
[    0.075981] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.082958] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.092339] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.102743] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.110076] NET: Registered protocol family 16
[    0.115886] MIPS: machine is YunCore SR3200
[    0.339434] registering PCI controller with io_map_base unset
[    0.345820] Can't analyze schedule() prologue at 800670fc
[    0.359407] PCI host bridge to bus 0000:00
[    0.363731] pci_bus 0000:00: root bus resource [mem 0x12000000-0x13ffffff]
[    0.371013] pci_bus 0000:00: root bus resource [io  0x0001]
[    0.376883] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[    0.384043] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.392421] pci 0000:00:00.0: [168c:003c] type 00 class 0x028000
[    0.392448] pci 0000:00:00.0: invalid calibration data
[    0.397898] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
[    0.397950] pci 0000:00:00.0: reg 0x30: [mem 0x00000000-0x0000ffff pref]
[    0.398008] pci 0000:00:00.0: supports D1
[    0.398020] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    0.398198] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[    0.398226] pci 0000:00:00.0: BAR 0: assigned [mem 0x12000000-0x121fffff 64bit]
[    0.405937] pci 0000:00:00.0: BAR 6: assigned [mem 0x12200000-0x1220ffff pref]
[    0.413579] pci 0000:00:00.0: using irq 40 for pin 1
[    0.419392] clocksource: Switched to clocksource MIPS
[    0.425654] NET: Registered protocol family 2
[    0.430999] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.438353] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.445098] TCP: Hash tables configured (established 1024 bind 1024)
[    0.451880] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.458041] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.464882] NET: Registered protocol family 1
[    0.469532] PCI: CLS 0 bytes, default 32
[    0.473113] Crashlog allocated RAM at address 0x3f00000
[    0.490471] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.496614] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.508955] io scheduler noop registered
[    0.513129] io scheduler deadline registered (default)
[    0.518715] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.527634] console [ttyS0] disabled
[    0.551487] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 1562500) is a 16550A
[    0.560578] console [ttyS0] enabled
[    0.568120] bootconsole [early0] disabled
[    0.580835] m25p80 spi0.0: found w25q128, expected m25p80
[    0.586423] m25p80 spi0.0: w25q128 (16384 Kbytes)
[    0.591340] 4 cmdlinepart partitions found on MTD device spi0.0
[    0.597446] Creating 4 MTD partitions on "spi0.0":
[    0.602419] 0x000000000000-0x000000040000 : "u-boot"
[    0.609333] 0x000000040000-0x000000050000 : "u-boot-env"
[    0.616156] 0x000000050000-0x000000ff0000 : "firmware"
[    0.648499] 2 uimage-fw partitions found on MTD device firmware
[    0.654644] 0x000000050000-0x000000190000 : "kernel"
[    0.660872] 0x000000190000-0x000000ff0000 : "rootfs"
[    0.667274] mtd: device 4 (rootfs) set to be root filesystem
[    0.673201] 1 squashfs-split partitions found on MTD device rootfs
[    0.679595] 0x000000410000-0x000000ff0000 : "rootfs_data"
[    0.686525] 0x000000ff0000-0x000001000000 : "art"
[    0.704967] switch0: Atheros AR8337 rev. 2 switch registered on ag71xx-mdio.0
[    1.366103] libphy: ag71xx_mdio: probed
[    1.961011] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:00 [uid=004dd036, driver=Atheros AR8216/AR8236/AR8316]
[    1.972509] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:SGMII
[    1.980299] NET: Registered protocol family 10
[    1.987651] NET: Registered protocol family 17
[    1.992348] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[    2.005469] 8021q: 802.1Q VLAN Support v1.8
[    2.015795] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
[    2.024822] Freeing unused kernel memory: 312K
[    2.848482] init: Console is alive
[    2.852228] init: - watchdog -
[    3.778553] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    3.807314] usbcore: registered new interface driver usbfs
[    3.813107] usbcore: registered new interface driver hub
[    3.818665] usbcore: registered new device driver usb
[    3.828069] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    3.836016] ehci-platform: EHCI generic platform driver
[    3.841547] ehci-platform ehci-platform.0: EHCI Host Controller
[    3.847699] ehci-platform ehci-platform.0: new USB bus registered, assigned bus number 1
[    3.858147] ehci-platform ehci-platform.0: irq 48, io mem 0x1b000000
[    3.879427] ehci-platform ehci-platform.0: USB 2.0 started, EHCI 1.00
[    3.886816] hub 1-0:1.0: USB hub found
[    3.891002] hub 1-0:1.0: 1 port detected
[    3.895357] ehci-platform ehci-platform.1: EHCI Host Controller
[    3.901548] ehci-platform ehci-platform.1: new USB bus registered, assigned bus number 2
[    3.912001] ehci-platform ehci-platform.1: irq 49, io mem 0x1b400000
[    3.929412] ehci-platform ehci-platform.1: USB 2.0 started, EHCI 1.00
[    3.936753] hub 2-0:1.0: USB hub found
[    3.940972] hub 2-0:1.0: 1 port detected
[    3.945684] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    3.963542] init: - preinit -
[    4.778803] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    4.803606] random: procd: uninitialized urandom read (4 bytes read, 7 bits of entropy available)
[    6.140996] eth0: link up (1000Mbps/Full duplex)
[    6.145969] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    8.160057] jffs2: notice: (395) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[    8.179904] mount_root: switching to jffs2 overlay
[    8.197130] urandom-seed: Seeding with /etc/urandom.seed
[    8.313713] eth0: link down
[    8.333222] procd: - early -
[    8.336277] procd: - watchdog -
[    8.941929] procd: - watchdog -
[    8.945396] procd: - ubus -
[    9.045464] random: ubusd: uninitialized urandom read (4 bytes read, 16 bits of entropy available)
[    9.057028] random: ubusd: uninitialized urandom read (4 bytes read, 16 bits of entropy available)
[    9.066734] random: ubusd: uninitialized urandom read (4 bytes read, 16 bits of entropy available)
[    9.076075] random: ubusd: uninitialized urandom read (4 bytes read, 16 bits of entropy available)
[    9.085685] random: ubusd: uninitialized urandom read (4 bytes read, 16 bits of entropy available)
[    9.095024] random: ubusd: uninitialized urandom read (4 bytes read, 16 bits of entropy available)
[    9.104831] random: ubusd: uninitialized urandom read (4 bytes read, 16 bits of entropy available)
[    9.114282] random: ubusd: uninitialized urandom read (4 bytes read, 16 bits of entropy available)
[    9.123922] procd: - init -
[    9.675141] kmodloader: loading kernel modules from /etc/modules.d/*
[    9.687931] l2tp_core: L2TP core driver, V2.0
[    9.693864] l2tp_netlink: L2TP netlink interface
[    9.713925] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    9.727987] Loading modules backported from Linux version wt-2017-01-31-0-ge882dff19e7f
[    9.736304] Backport generated by backports.git backports-20160324-13-g24da7d3c
[    9.921042] PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
[    9.927052] ath10k_pci 0000:00:00.0: pci irq legacy oper_irq_mode 1 irq_mode 0 reset_mode 0
[   10.144363] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/pre-cal-pci-0000:00:00.0.bin failed with error -2
[   10.155457] ath10k_pci 0000:00:00.0: Falling back to user helper
[   10.338989] firmware ath10k!pre-cal-pci-0000:00:00.0.bin: firmware_loading_store: map pages failed
[   10.541468] ath10k_pci 0000:00:00.0: qca988x hw2.0 target 0x4100016c chip_id 0x043222ff sub 0000:0000
[   10.551037] ath10k_pci 0000:00:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[   10.564038] ath10k_pci 0000:00:00.0: firmware ver 10.2.4-1.0-00016 api 5 features no-p2p,raw-mode,mfp crc32 0c5668f8
[   10.575026] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/QCA988X/hw2.0/board-2.bin failed with error -2
[   10.585821] ath10k_pci 0000:00:00.0: Falling back to user helper
[   10.665054] firmware ath10k!QCA988X!hw2.0!board-2.bin: firmware_loading_store: map pages failed
[   10.686295] ath10k_pci 0000:00:00.0: board_file api 1 bmi_id N/A crc32 bebc7c08
[   11.890267] ath10k_pci 0000:00:00.0: htt-ver 2.1 wmi-op 5 htt-op 2 cal file max-sta 128 raw 0 hwcrypto 1
[   12.002831] ath: EEPROM regdomain: 0x0
[   12.002847] ath: EEPROM indicates default country code should be used
[   12.002854] ath: doing EEPROM country->regdmn map search
[   12.002870] ath: country maps to regdmn code: 0x3a
[   12.002878] ath: Country alpha2 being used: US
[   12.002885] ath: Regpair used: 0x3a
[   12.137875] ip_tables: (C) 2000-2006 Netfilter Core Team
[   12.150182] nf_conntrack version 0.5.0 (1963 buckets, 7852 max)
[   12.191259] xt_time: kernel timezone is -0000
[   12.257363] PPP generic driver version 2.4.2
[   12.263838] NET: Registered protocol family 24
[   12.283697] ath: EEPROM regdomain: 0x0
[   12.283713] ath: EEPROM indicates default country code should be used
[   12.283720] ath: doing EEPROM country->regdmn map search
[   12.283737] ath: country maps to regdmn code: 0x3a
[   12.283745] ath: Country alpha2 being used: US
[   12.283752] ath: Regpair used: 0x3a
[   12.293467] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[   12.298299] ieee80211 phy1: Atheros AR9561 Rev:0 mem=0xb8100000, irq=47
[   12.325071] l2tp_ppp: PPPoL2TP kernel driver, V2.0
[   12.409032] kmodloader: done loading kernel modules from /etc/modules.d/*
[   13.243626] random: jshn: uninitialized urandom read (4 bytes read, 23 bits of entropy available)
[   19.977774] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   19.993334] device eth0.1 entered promiscuous mode
[   19.998286] device eth0 entered promiscuous mode
[   20.025934] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   20.067666] IPv6: ADDRCONF(NETDEV_UP): eth0.2: link is not ready
[   20.287596] eth0: link up (1000Mbps/Full duplex)
[   20.320065] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   20.367403] br-lan: port 1(eth0.1) entered forwarding state
[   20.373242] br-lan: port 1(eth0.1) entered forwarding state
[   20.379072] IPv6: ADDRCONF(NETDEV_CHANGE): eth0.2: link becomes ready
[   20.483508] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   21.246217] ath10k_pci 0000:00:00.0: DFS region 0x0 not supported, will trigger radar for every pulse
[   22.369449] br-lan: port 1(eth0.1) entered forwarding state
[   24.876265] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   24.892953] device wlan0 entered promiscuous mode
[   25.342533] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   25.349658] br-lan: port 2(wlan0) entered forwarding state
[   25.355355] br-lan: port 2(wlan0) entered forwarding state
[   27.349533] br-lan: port 2(wlan0) entered forwarding state
[   46.009259] random: nonblocking pool is initialized

I'm aware of:
[ 10.144363] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/pre-cal-pci-0000:00:00.0.bin failed with error -2

and
[ 10.575026] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/QCA988X/hw2.0/board-2.bin failed with error -2

How to do this check?

That's expected, if you look few lines below, firmware was loaded:

[   10.686295] ath10k_pci 0000:00:00.0: board_file api 1 bmi_id N/A crc32 bebc7c08
[   11.890267] ath10k_pci 0000:00:00.0: htt-ver 2.1 wmi-op 5 htt-op 2 cal file max-sta 128 raw 0 hwcrypto 1

Are you able to build a custom image yourself? If yes, please try patch included in this post: XD3200 (QCA9563) slow ath9k/2.4GHz - LNA/PA? - #12 by datacop. I no longer have access to these YunCore devices.

Unfortunately I'm not. There is no enough space on the device to setup environment for creating builds.
But if you can create build for this target I will test it.

Please, file a bug: https://bugs.lede-project.org