OpenWrt 18.06.2 caused havoc with 5GHz on my Archer C7 v2

I recently upgraded my router TP-Link Archer C7 v2 to Openwrt 18.06.2. Wifi on 5ghz started to have weird issues, like not coming up at all most of the time no matter which channel, mode (legacy, n or ac) or bandwidth (20,40 or 80 Mhz) I chose. Wifi on 5ghz was enabled but would always say "wireless not associated". It came up once or twice, I had a suspicion it has something to do with that radar-evasive behaviour over certain channels, but I tried channels that should be secure from this (like 36 - I am in Europe). Reverting back to LEDE 17.01 fixed the issue. Any ideas what might have been behind it?

2 Likes

Hard to say without seeing your /etc/config/wireless and /etc/config/network (as there are few reported issues with the Archer C7v2 and it is a "mature" port).

Not sure I have anything that unusual:

cat /etc/config/wireless
config wifi-device 'radio0'
        option type 'mac80211'
        option hwmode '11a'
        option path 'pci0000:01/0000:01:00.0'
        option distance '9'
        option legacy_rates '1'
        option country 'CZ'
        option channel '48'
        option htmode 'VHT80'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option mode 'ap'
        option ssid 'supi_hnizdo_5ghz'
        option encryption 'psk2'
        option key 'password'
        option network 'lan'

config wifi-device 'radio1'
        option type 'mac80211'
        option hwmode '11g'
        option path 'platform/qca955x_wmac'
        option country 'CZ'
        option distance '9'
        option legacy_rates '1'
        option channel '13'
        option htmode 'HT40'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid 'supi_hnizdo_2_4ghz'
        option encryption 'psk2'
        option key 'password'

cat /etc/config/network 

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd9f:a7c0:a091::/48'

config interface 'lan'
        option type 'bridge'
        option ifname 'eth1.1'
        option proto 'static'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ipaddr '192.168.2.1'

config interface 'wan'
        option ifname 'eth0.2'
        option proto 'dhcp'

config interface 'wan6'
        option ifname 'eth0.2'
        option proto 'dhcpv6'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '2 3 4 5 0t'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '1 6t'

But I was quite surprised by it for sure. I used sysupgrade, so all the settings stayed the same (I reinstalled some package) - the only difference really was 17.01 and 18.06.

Unless you've got some ancient (10+ years old, typically), disabling legacy rates will often improve performance.

I'm not sure about the distance parameter; I've never used it myself.

Adding option require_mode 'n' (or better) to your 5 GHz radio may help as well. I can't force 802.11ac, as older iPhones don't support it.

The problem is not with bandwidth, the problem is that the wireless network does not come up at all. (though I tried disabling it while fiddling with it).

Any idea how I might troubleshoot the issue? When I run wifi status the 5ghz device is saying it is down, wifi up does not change that at all.

Also, what is the alternative to wifi detect > /etc/config/wireless? It no longer works though I still find references to it.

wifi config
your /etc/conifig/wireless may be messed up.

1 Like

Reading the log file will be useful here.

Distance wants a number of meters, the default is 2000. Setting distance is needed only for multi-km links. It increases some timeout times to allow for radio propagation delay.

Channel 42 should be the proper setting to run VHT80 on the lower group of non-DFS channels. If you use 20 MHz bandwidth, channel choice is less restricted. So start there to get something on the air.

I agree with @anomeome, delete your /etc/config/wireless and let the wifi firstboot script rebuild it, then set up the most minimal configuration starting from there. Either run wifi config or reboot with no /etc/config/wireless.

Hm, weird. I reflashed 18.06 instead of 17.01 and 5Ghz seems to be stable again - even before I started to fiddle with the config. I swear it had not worked properly for a few hours before. I guess the first sysupgrade must have gone wrong somehow, but I have no idea how. Anywaa, thank you for your suggestions!

By the way, if that distance setting is only for long distance links, maybe the information in Luci should read something like "Distance to farthest network member in meters. Set only if it is more than 2 Km." Or something like that.

The distance parameter shouldn't be set unless you really know why you need it (and yes, for anything less than thousands of metres it's actively harmful).

@felagund did you ever figure out what was causing this. I seem to be having the same issue also on 18.06.2 where my 5ghz will say wireless not associated every time I reboot my router and sometimes just completely randomly. Everytime it happens I have to disable and renable then restart the wireless interface :confused:

@cal3b No, no idea what it was. Reinstall solved it an d I have never had an issue since.

I also opened a bug to clarify the distance parameter: https://github.com/openwrt/luci/issues/2784

1 Like

Only registered to let you know that I have the very same problem. 18.06.4 on the C7 v2. Drives me really nuts and I'm at the point of going back to stock.
EDIT: And so I did revert to stock (using https://www.friedzombie.com/tplink-stripped-firmware/). Never thought I would get to this point, after having openwrt for 10+ years on 10+ devices :frowning:

As there have been many changes in wireless since 18.06 was branched, I would suggest trying a snapshot of current OpenWrt, or perhaps a build from 19.07.

Seems to be fine for me on my Archer C7 v2 when using 19.07

1 Like

I seem to have fried my wifi after trying to install 19.07.
Rolling back to 18.X doesnt help, no wifi...

I followed mikebreeuwer lead and reverted to stock, but I cant see the wifi on that either... any ideas.

check rfkill switch position. post logs. maybe it is something like this? Is it possible to brick the wireless card (QCA988X) irreversibly?

Hi,

With rfkill switch you mean the switch on the back right? I've tried that.
The wifi stopped working after upgrading to 19.07.1. I have since tried to revert to stock firmware and then back to (now) 18.06.1.

If I run "iw list" there is no response.
wifi config creates an empty list.

And in the dmesg I can see

[   11.481372] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/pre-cal-pci-0000:01:00.0.bin failed with error -2

Here is the full dmesg:

root@OpenWrt:~# dmesg
[    0.000000] Linux version 4.9.120 (buildbot@builds-03.infra.lede-project.org) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r7102-3f3a2c9) ) #0 Thu Aug 16 07:51:15 2018
[    0.000000] MyLoader: sysp=8654a083, boardp=17dd77c9, parts=bb7f8550
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019750 (MIPS 74Kc)
[    0.000000] SoC: Qualcomm Atheros QCA9558 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] 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] 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 80442044, node_mem_map 81000020
[    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] 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=ARCHER-C7-V2  console=ttyS0,115200 rootfstype=squashfs 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: 124996K/131072K available (3363K kernel code, 172K rwdata, 444K rodata, 300K init, 219K bss, 6076K 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:720.000MHz, DDR:600.000MHz, AHB:200.000MHz, Ref:40.000MHz
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 5309056796 ns
[    0.000007] sched_clock: 32 bits at 360MHz, resolution 2ns, wraps every 5965232126ns
[    0.008298] Calibrating delay loop... 358.80 BogoMIPS (lpj=1794048)
[    0.071187] pid_max: default: 32768 minimum: 301
[    0.076189] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.083231] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.092861] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.103359] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.110827] NET: Registered protocol family 16
[    0.116745] MIPS: machine is TP-LINK Archer C7
[    0.124555] ar724x-pci ar724x-pci.0: PCIe link is down
[    0.130054] registering PCI controller with io_map_base unset
[    0.136269] registering PCI controller with io_map_base unset
[    0.622966] Can't analyze schedule() prologue at 803a5594
[    0.637615] PCI host bridge to bus 0000:00
[    0.641987] pci_bus 0000:00: root bus resource [mem 0x10000000-0x11ffffff]
[    0.649332] pci_bus 0000:00: root bus resource [io  0x0000]
[    0.655260] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[    0.662485] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.670920] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[    0.671029] PCI host bridge to bus 0000:01
[    0.675413] pci_bus 0000:01: root bus resource [mem 0x12000000-0x13ffffff]
[    0.682719] pci_bus 0000:01: root bus resource [io  0x0001]
[    0.688651] pci_bus 0000:01: root bus resource [??? 0x00000000 flags 0x0]
[    0.695865] pci_bus 0000:01: No busn resource found for root bus, will use [bus 01-ff]
[    0.704320] pci 0000:01:00.0: [168c:003c] type 00 class 0x028000
[    0.704359] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
[    0.704411] pci 0000:01:00.0: reg 0x30: [mem 0x00000000-0x0000ffff pref]
[    0.704478] pci 0000:01:00.0: supports D1 D2
[    0.704644] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    0.704665] pci 0000:01:00.0: BAR 0: assigned [mem 0x12000000-0x121fffff 64bit]
[    0.712457] pci 0000:01:00.0: BAR 6: assigned [mem 0x12200000-0x1220ffff pref]
[    0.720165] pci 0000:01:00.0: using irq 41 for pin 1
[    0.728060] clocksource: Switched to clocksource MIPS
[    0.734334] NET: Registered protocol family 2
[    0.739736] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.747162] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.753966] TCP: Hash tables configured (established 1024 bind 1024)
[    0.760808] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.767033] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.773937] NET: Registered protocol family 1
[    0.778636] PCI: CLS 0 bytes, default 32
[    0.780835] Crashlog allocated RAM at address 0x3f00000
[    0.787218] workingset: timestamp_bits=30 max_order=15 bucket_order=0
[    0.800011] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.806212] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.824133] io scheduler noop registered
[    0.828340] io scheduler deadline registered (default)
[    0.834146] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.843090] console [ttyS0] disabled
[    0.866966] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 2500000) is a 16550A
[    0.876151] console [ttyS0] enabled
[    0.883567] bootconsole [early0] disabled
[    0.896859] m25p80 spi0.0: found w25q128, expected m25p80
[    0.913324] m25p80 spi0.0: w25q128 (16384 Kbytes)
[    0.918584] 5 tp-link partitions found on MTD device spi0.0
[    0.924232] Creating 5 MTD partitions on "spi0.0":
[    0.929119] 0x000000000000-0x000000020000 : "u-boot"
[    0.935626] 0x000000020000-0x00000016df58 : "kernel"
[    0.942298] 0x00000016df58-0x000000ff0000 : "rootfs"
[    0.948635] mtd: device 2 (rootfs) set to be root filesystem
[    0.954439] 1 squashfs-split partitions found on MTD device rootfs
[    0.960748] 0x000000400000-0x000000ff0000 : "rootfs_data"
[    0.967904] 0x000000ff0000-0x000001000000 : "art"
[    0.974352] 0x000000020000-0x000000ff0000 : "firmware"
[    0.982010] libphy: Fixed MDIO Bus: probed
[    0.999052] switch0: Atheros AR8327 rev. 4 switch registered on ag71xx-mdio.0
[    1.686806] libphy: ag71xx_mdio: probed
[    2.319568] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:00 [uid=004dd034, driver=Atheros AR8216/AR8236/AR8316]
[    2.330929] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:RGMII
[    2.608056] random: fast init done
[    2.959691] eth1: Atheros AG71xx at 0xba000000, irq 5, mode:SGMII
[    2.967476] NET: Registered protocol family 10
[    2.975376] NET: Registered protocol family 17
[    2.979969] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    2.993200] 8021q: 802.1Q VLAN Support v1.8
[    2.998920] hctosys: unable to open rtc device (rtc0)
[    3.010693] VFS: Mounted root (squashfs filesystem) readonly on device 31:2.
[    3.018968] Freeing unused kernel memory: 300K
[    3.023472] This architecture does not have kernel memory protection.
[    3.716708] init: Console is alive
[    3.720384] init: - watchdog -
[    4.776766] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    4.834745] usbcore: registered new interface driver usbfs
[    4.840435] usbcore: registered new interface driver hub
[    4.845891] usbcore: registered new device driver usb
[    4.855229] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.863135] ehci-platform: EHCI generic platform driver
[    4.868554] ehci-platform ehci-platform.0: EHCI Host Controller
[    4.874587] ehci-platform ehci-platform.0: new USB bus registered, assigned bus number 1
[    4.884879] ehci-platform ehci-platform.0: TX-TX IDP fix enabled
[    4.891001] ehci-platform ehci-platform.0: irq 48, io mem 0x1b000000
[    4.918092] ehci-platform ehci-platform.0: USB 2.0 started, EHCI 1.00
[    4.925328] hub 1-0:1.0: USB hub found
[    4.929474] hub 1-0:1.0: 1 port detected
[    4.933769] ehci-platform ehci-platform.1: EHCI Host Controller
[    4.939834] ehci-platform ehci-platform.1: new USB bus registered, assigned bus number 2
[    4.950124] ehci-platform ehci-platform.1: TX-TX IDP fix enabled
[    4.956231] ehci-platform ehci-platform.1: irq 49, io mem 0x1b400000
[    4.988081] ehci-platform ehci-platform.1: USB 2.0 started, EHCI 1.00
[    4.995348] hub 2-0:1.0: USB hub found
[    4.999453] hub 2-0:1.0: 1 port detected
[    5.004099] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    5.021804] init: - preinit -
[    6.273153] eth1: link up (1000Mbps/Full duplex)
[    6.296579] random: procd: uninitialized urandom read (4 bytes read)
[    9.591285] jffs2: notice: (445) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[    9.608547] mount_root: switching to jffs2 overlay
[    9.639709] urandom-seed: Seeding with /etc/urandom.seed
[    9.749271] eth1: link down
[    9.761829] procd: - early -
[    9.764825] procd: - watchdog -
[   10.369793] procd: - watchdog -
[   10.373197] procd: - ubus -
[   10.484292] random: ubusd: uninitialized urandom read (4 bytes read)
[   10.492663] random: ubusd: uninitialized urandom read (4 bytes read)
[   10.499923] random: ubusd: uninitialized urandom read (4 bytes read)
[   10.507140] procd: - init -
[   10.871497] kmodloader: loading kernel modules from /etc/modules.d/*
[   10.902929] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   10.918265] Loading modules backported from Linux version wt-2017-11-01-0-gfe248fc2c180
[   10.926382] Backport generated by backports.git v4.14-rc2-1-31-g86cf0e5d
[   10.935665] ip_tables: (C) 2000-2006 Netfilter Core Team
[   10.947881] nf_conntrack version 0.5.0 (2048 buckets, 8192 max)
[   10.996955] xt_time: kernel timezone is -0000
[   11.165767] PPP generic driver version 2.4.2
[   11.172068] NET: Registered protocol family 24
[   11.194998] PCI: Enabling device 0000:01:00.0 (0000 -> 0002)
[   11.200959] ath10k_pci 0000:01:00.0: pci irq legacy oper_irq_mode 1 irq_mode 0 reset_mode 0
[   11.481372] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/pre-cal-pci-0000:01:00.0.bin failed with error -2
[   11.492256] ath10k_pci 0000:01:00.0: Falling back to user helper
[   11.669008] firmware ath10k!pre-cal-pci-0000:01:00.0.bin: firmware_loading_store: map pages failed
[   11.678367] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/cal-pci-0000:01:00.0.bin failed with error -2
[   11.688891] ath10k_pci 0000:01:00.0: Falling back to user helper
[   11.841703] firmware ath10k!cal-pci-0000:01:00.0.bin: firmware_loading_store: map pages failed
[   11.850745] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/QCA988X/hw2.0/firmware-6.bin failed with error -2
[   11.861626] ath10k_pci 0000:01:00.0: Falling back to user helper
[   12.016794] firmware ath10k!QCA988X!hw2.0!firmware-6.bin: firmware_loading_store: map pages failed
[   12.030671] ath10k_pci 0000:01:00.0: qca988x hw2.0 target 0x4100016c chip_id 0x043202ff sub 0000:0000
[   12.040068] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[   12.053093] ath10k_pci 0000:01:00.0: firmware ver 10.2.4-1.0-00033 api 5 features no-p2p,raw-mode,mfp,allows-mesh-bcast crc32 c41417d0
[   12.156243] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/QCA988X/hw2.0/board-2.bin failed with error -2
[   12.166872] ath10k_pci 0000:01:00.0: Falling back to user helper
[   12.247097] firmware ath10k!QCA988X!hw2.0!board-2.bin: firmware_loading_store: map pages failed
[   12.277446] ath10k_pci 0000:01:00.0: board_file api 1 bmi_id N/A crc32 bebc7c08
[   12.416937] ath10k_pci 0000:01:00.0: otp calibration failed: 2
[   12.422872] ath10k_pci 0000:01:00.0: failed to run otp: -22
[   12.428530] ath10k_pci 0000:01:00.0: could not init core (-22)
[   12.434532] ath10k_pci 0000:01:00.0: could not probe fw (-22)
[   12.471699] ath: phy1: Unable to initialize hardware; initialization status: -5
[   12.479137] ath9k qca955x_wmac: failed to initialize device
[   12.484816] ath9k: probe of qca955x_wmac failed with error -5
[   12.491940] kmodloader: done loading kernel modules from /etc/modules.d/*
[   14.091767] urandom_read: 5 callbacks suppressed
[   14.091773] random: jshn: uninitialized urandom read (4 bytes read)
[   22.542096] eth1: link up (1000Mbps/Full duplex)
[   22.546855] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[   22.590463] br-lan: port 1(eth1.1) entered blocking state
[   22.595943] br-lan: port 1(eth1.1) entered disabled state
[   22.601781] device eth1.1 entered promiscuous mode
[   22.606650] device eth1 entered promiscuous mode
[   22.699915] br-lan: port 1(eth1.1) entered blocking state
[   22.705399] br-lan: port 1(eth1.1) entered forwarding state
[   22.711217] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   22.772266] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   22.803860] IPv6: ADDRCONF(NETDEV_UP): eth0.2: link is not ready
[   23.582330] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[   23.589116] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   23.819530] eth0: link up (1000Mbps/Full duplex)
[   23.824349] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   23.847980] IPv6: ADDRCONF(NETDEV_CHANGE): eth0.2: link becomes ready
[  126.058091] random: crng init done

can you log on to web interface in stock firmware and check that dual-band tab if it's options are greyed out?

Hi, all the options are available in Dual-Band Selection