[Solved] Wireless interruption on Zyxel P2812HNU-F1

Hi all,

I've been plagued by intermittent wi-fi interruptions on my Zyxel P2812HNU-F1, running a snapshot of the LEDE-17.01 branch. The router works otherwise correctly, but sometimes the wi-fi simply stops responding and all traffic ceases.

So far, I've managed to recover from this situation simply by rebooting the router, but this morning, the issue started to be persistent, with the wireless network shutting down 5 minutes after restart.

I managed to capture the log traffic by connecting to the router via Ethernet cable, and I'm pasting it below:

[    0.000000] Linux version 4.4.108 (buildbot@openwrt-build) (gcc version 5.4.0 (LEDE GCC 5.4.0 r3794-dca4dfa) ) #0 Fri Jan 5 23:40:00 2018
[    0.000000] SoC: xRX200 rev 1.2
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019556 (MIPS 34Kc)
[    0.000000] MIPS: machine is P2812HNUF1 - ZyXEL P-2812HNU-F1
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 08000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    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 804a3710, node_mem_map 8100a780
[    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 32kB, 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: console=ttyLTQ0,115200
[    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=00008010
[    0.000000] Readback ErrCtl register=00008010
[    0.000000] Memory: 123540K/131072K available (3579K kernel code, 152K rwdata, 1128K rodata, 1204K init, 206K bss, 7532K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:256
[    0.000000] Setting up vectored interrupts
[    0.000000] CPU Clock: 500MHz
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041786 ns
[    0.000010] sched_clock: 32 bits at 250MHz, resolution 4ns, wraps every 8589934590ns
[    0.007857] Calibrating delay loop... 332.54 BogoMIPS (lpj=665088)
[    0.042325] pid_max: default: 32768 minimum: 301
[    0.047167] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.053733] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.067230] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.076881] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.083180] pinctrl core: initialized pinctrl subsystem
[    0.089058] NET: Registered protocol family 16
[    0.098234] pinctrl-xway 1e100b10.pinmux: Init done
[    0.103752] dma-xway 1e104100.dma: Init done - hw rev: 7, ports: 7, channels: 28
[    0.213892] dcdc-xrx200 1f106a00.dcdc: Core Voltage : 1016 mV
[    0.229069] PCI host bridge /fpi@10000000/pci@E105400 ranges:
[    0.234713]  MEM 0x0000000018000000..0x0000000019ffffff
[    0.239967]   IO 0x000000001ae00000..0x000000001affffff
[    0.258562] gpio-stp-xway 1e100bb0.stp: Init done
[    0.263915] usbcore: registered new interface driver usbfs
[    0.269406] usbcore: registered new interface driver hub
[    0.274765] usbcore: registered new device driver usb
[    0.280270] PCI host bridge to bus 0000:00
[    0.284256] pci_bus 0000:00: root bus resource [mem 0x18000000-0x19ffffff]
[    0.291165] pci_bus 0000:00: root bus resource [io  0x1ae00000-0x1affffff]
[    0.298108] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[    0.304963] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.313015] pci 0000:00:0e.0: [1814:3062] type 00 class 0x028000
[    0.313070] pci 0000:00:0e.0: reg 0x10: [mem 0xffff0000-0xffffffff]
[    0.313466] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[    0.313513] pci 0000:00:0e.0: BAR 0: assigned [mem 0x18000000-0x1800ffff]
[    0.321187] clocksource: Switched to clocksource MIPS
[    0.327650] NET: Registered protocol family 2
[    0.332820] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.339713] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.346095] TCP: Hash tables configured (established 1024 bind 1024)
[    0.352604] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.358444] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.365008] NET: Registered protocol family 1
[    0.369361] PCI: CLS 0 bytes, default 32
[    0.375960] gptu: totally 6 16-bit timers/counters
[    0.380794] gptu: misc_register on minor 63
[    0.384897] gptu: succeeded to request irq 126
[    0.389388] gptu: succeeded to request irq 127
[    0.393899] gptu: succeeded to request irq 128
[    0.398413] gptu: succeeded to request irq 129
[    0.402926] gptu: succeeded to request irq 130
[    0.407440] gptu: succeeded to request irq 131
[    0.412318] phy-xrx200 gphy-xrx200: requesting lantiq/vr9_phy11g_a2x.bin
[    0.419641] phy-xrx200 gphy-xrx200: booting GPHY0 firmware at 7D80000
[    0.425974] phy-xrx200 gphy-xrx200: booting GPHY1 firmware at 7D80000
[    0.532627] No VPEs reserved for AP/SP, not initialize VPE loader
[    0.532627] Pass maxvpes=<n> argument as kernel argument
[    0.543998] No TCs reserved for AP/SP, not initializing RTLX.
[    0.543998] Pass maxtcs=<n> argument as kernel argument
[    0.556002] Crashlog allocated RAM at address 0x3f00000
[    0.580994] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.586732] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.600614] io scheduler noop registered
[    0.604441] io scheduler deadline registered (default)
[    0.610301] 1e100c00.serial: ttyLTQ0 at MMIO 0x1e100c00 (irq = 112, base_baud = 0) is a lantiq,asc
[    0.619190] console [ttyLTQ0] enabled
[    0.626517] bootconsole [early0] disabled
[    0.637861] nand: device found, Manufacturer ID: 0xec, Chip ID: 0xf1
[    0.642760] nand: Samsung NAND 128MiB 3,3V 8-bit
[    0.647374] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    0.655021] Scanning device for bad blocks
[    0.666584] Bad eraseblock 89 at 0x000000b20000
[    0.729674] Bad eraseblock 805 at 0x0000064a0000
[    0.751152] 4 ofpart partitions found on MTD device 10000000.nand-parts
[    0.756337] Creating 4 MTD partitions on "10000000.nand-parts":
[    0.762254] 0x000000000000-0x000000040000 : "uboot"
[    0.768923] 0x000000040000-0x000000060000 : "uboot-env"
[    0.774831] 0x000000060000-0x000000260000 : "kernel"
[    0.780426] 0x000000260000-0x000008000000 : "ubi"
[    0.889301] libphy: lantiq,xrx200-mdio: probed
[    0.965923] eth0: attached PHY [Lantiq XWAY PEF7071] (phy_addr=0:00, irq=-1)
[    1.033896] eth0: attached PHY [Lantiq XWAY PEF7071] (phy_addr=0:01, irq=-1)
[    1.101880] eth0: attached PHY [Lantiq XWAY VR9 GPHY 11G v1.4] (phy_addr=0:11, irq=-1)
[    1.169880] eth0: attached PHY [Lantiq XWAY VR9 GPHY 11G v1.4] (phy_addr=0:13, irq=-1)
[    1.237897] eth0: attached PHY [Lantiq XWAY PEF7071] (phy_addr=0:05, irq=-1)
[    1.345243] ltq-cputemp cputemp@0: Current CPU die temperature: 48.5 °C
[    1.350814] wdt 1f8803f0.watchdog: Init done
[    1.358027] NET: Registered protocol family 17
[    1.361107] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[    1.373705] 8021q: 802.1Q VLAN Support v1.8
[    1.386120] UBI: auto-attach mtd3
[    1.387801] ubi0: attaching mtd3
[    1.574058] ubi0: scanning is finished
[    1.588176] ubi0: attached mtd3 (name "ubi", size 125 MiB)
[    1.592261] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes
[    1.599104] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 512
[    1.605805] ubi0: VID header offset: 512 (aligned 512), data offset: 2048
[    1.612594] ubi0: good PEBs: 1003, bad PEBs: 2, corrupted PEBs: 0
[    1.618687] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
[    1.625915] ubi0: max/mean erase counter: 6/3, WL threshold: 4096, image sequence number: 458085870
[    1.634965] ubi0: available PEBs: 0, total reserved PEBs: 1003, PEBs reserved for bad PEB handling: 18
[    1.644330] ubi0: background thread "ubi_bgt0d" started, PID 303
[    1.673317] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 305
[    1.701493] UBIFS (ubi0:0): recovery needed
[    1.805615] UBIFS (ubi0:0): recovery completed
[    1.808698] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[    1.816043] UBIFS (ubi0:0): LEB size: 129024 bytes (126 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[    1.825947] UBIFS (ubi0:0): FS size: 125153280 bytes (119 MiB, 970 LEBs), journal size 9033728 bytes (8 MiB, 71 LEBs)
[    1.836558] UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
[    1.842400] UBIFS (ubi0:0): media format: w4/r0 (latest is w4/r0), UUID 561C7AAE-83B3-40A1-9EB8-B1B9040ACFE4, small LPT model
[    1.854360] VFS: Mounted root (ubifs filesystem) on device 0:11.
[    1.863390] Freeing unused kernel memory: 1204K
[    2.005154] init: Console is alive
[    2.007439] init: - watchdog -
[    2.251212] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    2.459074] SCSI subsystem initialized
[    2.491211] dwc2 1e101000.ifxhcd: requested GPIO 495
[    3.349373] dwc2 1e101000.ifxhcd: DWC OTG Controller
[    3.352966] dwc2 1e101000.ifxhcd: new USB bus registered, assigned bus number 1
[    3.360296] dwc2 1e101000.ifxhcd: irq 62, io mem 0x00000000
[    3.365814] dwc2 1e101000.ifxhcd: Hardware does not support descriptor DMA mode -
[    3.373251] dwc2 1e101000.ifxhcd: falling back to buffer DMA mode.
[    3.380710] hub 1-0:1.0: USB hub found
[    3.383674] hub 1-0:1.0: 1 port detected
[    3.765239] usb 1-1: new high-speed USB device number 2 using dwc2
[    4.245375] dwc2 1e106000.ifxhcd: DWC OTG Controller
[    4.248966] dwc2 1e106000.ifxhcd: new USB bus registered, assigned bus number 2
[    4.256280] dwc2 1e106000.ifxhcd: irq 91, io mem 0x00000000
[    4.261810] dwc2 1e106000.ifxhcd: Hardware does not support descriptor DMA mode -
[    4.269249] dwc2 1e106000.ifxhcd: falling back to buffer DMA mode.
[    4.276707] hub 2-0:1.0: USB hub found
[    4.279663] hub 2-0:1.0: 1 port detected
[    4.296325] usb-storage 1-1:1.0: USB Mass Storage device detected
[    4.301783] scsi host0: usb-storage 1-1:1.0
[    4.305804] usbcore: registered new interface driver usb-storage
[    4.312163] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    4.323802] init: - preinit -
[    4.550786] random: procd: uninitialized urandom read (4 bytes read, 21 bits of entropy available)
[    5.306084] scsi 0:0:0:0: Direct-Access     WD       My Passport 25E1 1015 PQ: 0 ANSI: 6
[    5.317160] sd 0:0:0:0: [sda] Spinning up disk...
[    5.321294] scsi 0:0:0:1: Enclosure         WD       SES Device       1015 PQ: 0 ANSI: 6
[    6.333193] .ready
[    6.334121] sd 0:0:0:0: [sda] 3906963456 512-byte logical blocks: (2.00 TB/1.82 TiB)
[    6.342014] sd 0:0:0:0: [sda] Write Protect is off
[    6.346345] sd 0:0:0:0: [sda] Mode Sense: 47 00 10 08
[    6.346847] sd 0:0:0:0: [sda] No Caching mode page found
[    6.351655] sd 0:0:0:0: [sda] Assuming drive cache: write through
[    6.452015]  sda: sda1 sda2
[    6.457315] sd 0:0:0:0: [sda] Attached SCSI disk
[    7.707087] mount_root: mounting /dev/root
[    7.712358] mount_root: loading kmods from internal overlay
[    7.765861] kmodloader: loading kernel modules from //etc/modules-boot.d/*
[    7.775288] kmodloader: done loading kernel modules from //etc/modules-boot.d/*
[    8.534072] block: attempting to load /etc/config/fstab
[    8.542981] block: extroot: not configured
[    8.549700] urandom-seed: Seeding with /etc/urandom.seed
[    8.597917] procd: - early -
[    8.600591] procd: - watchdog -
[    8.895375] Adding 524284k swap on /dev/sda1.  Priority:-1 extents:1 across:524284k 
[    9.055627] random: nonblocking pool is initialized
[    9.795912] procd: - watchdog -
[    9.798187] procd: - ubus -
[    9.841803] EXT4-fs (sda2): recovery complete
[    9.844725] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: 
[    9.961793] procd: - init -
[   10.393285] kmodloader: loading kernel modules from /etc/modules.d/*
[   10.405430] IFXOS, Version 1.5.19 (c) Copyright 2009, Lantiq Deutschland GmbH
[   10.425930] NET: Registered protocol family 8
[   10.428839] NET: Registered protocol family 20
[   10.560803] Lantiq (VRX) DSL CPE MEI driver, version 1.5.17.6, (c) 2007-2015 Lantiq Beteiligungs-GmbH & Co. KG
[   10.560803] 
[   10.560803] Lantiq CPE API Driver version: DSL CPE API V4.17.18.6
[   10.672134] 
[   10.672134] Predefined debug level: 3
[   10.698566] u32 classifier
[   10.699818]     input device check on
[   10.703513]     Actions configured
[   10.710055] Mirror/redirect action on
[   10.732925] nf_conntrack version 0.5.0 (1949 buckets, 7796 max)
[   10.807028] Loading modules backported from Linux version wt-2017-01-31-0-ge882dff19e7f
[   10.813655] Backport generated by backports.git backports-20160324-13-g24da7d3c
[   10.848051] ip_tables: (C) 2000-2006 Netfilter Core Team
[   10.880695] Infineon Technologies DEU driver version 2.0.0 
[   10.886738] IFX DEU DES initialized (multiblock).
[   10.891056] IFX DEU AES initialized (multiblock).
[   10.895158] IFX DEU ARC4 initialized (multiblock).
[   10.899813] IFX DEU SHA1 initialized.
[   10.903377] IFX DEU MD5 initialized.
[   10.906999] IFX DEU SHA1_HMAC initialized.
[   10.911037] IFX DEU MD5_HMAC initialized.
[   10.974719] xt_time: kernel timezone is -0000
[   11.278331] PCI: Enabling device 0000:00:0e.0 (0000 -> 0002)
[   11.282797] ieee80211 phy0: rt2x00lib_request_eeprom_file: Info - Loading EEPROM data from 'RT3062.eeprom'.
[   11.293939] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 3572, rev 0223 detected
[   11.300329] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 0008 detected
[   11.307879] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[   11.321518] kmodloader: done loading kernel modules from /etc/modules.d/*
[   15.774662] PTM 1.0.27    PTM (E1) firmware version 0.30
[   15.774687] ifxmips_ptm: PTM init succeed
[   18.141143] device eth0.10 entered promiscuous mode
[   18.141244] device eth0 entered promiscuous mode
[   18.146834] br-lan: port 1(eth0.10) entered listening state
[   18.146908] br-lan: port 1(eth0.10) entered listening state
[   20.149313] br-lan: port 1(eth0.10) entered learning state
[   22.153250] br-lan: topology change detected, propagating
[   22.153309] br-lan: port 1(eth0.10) entered forwarding state
[   22.629010] ieee80211 phy0: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2860.bin'
[   22.633577] ieee80211 phy0: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.40
[   22.757116] device wlan0 entered promiscuous mode
[   22.757347] br-lan: port 2(wlan0) entered listening state
[   22.757408] br-lan: port 2(wlan0) entered listening state
[   23.153341] br-lan: port 2(wlan0) entered disabled state
[   24.833591] br-lan: port 2(wlan0) entered listening state
[   24.833695] br-lan: port 2(wlan0) entered listening state
[   26.837260] br-lan: port 2(wlan0) entered learning state
[   28.841248] br-lan: topology change detected, propagating
[   28.841289] br-lan: port 2(wlan0) entered forwarding state
[   53.668774] enter showtime
[   53.674372] enter showtime
[ 2423.215720] device wlan0 left promiscuous mode
[ 2423.215848] br-lan: port 2(wlan0) entered disabled state
[ 2423.228923] rt2x00mmio_regbusy_read() Indirect register access failed: offset=0x00000500, value=0xffffffff
[ 2424.383879] ieee80211 phy0: rt2x00queue_flush_queue: Warning - Queue 0 failed to flush
[ 2424.943860] ieee80211 phy0: rt2x00queue_flush_queue: Warning - Queue 2 failed to flush
[ 2425.611839] ieee80211 phy0: rt2x00queue_flush_queue: Warning - Queue 0 failed to flush
[ 2426.171818] ieee80211 phy0: rt2x00queue_flush_queue: Warning - Queue 2 failed to flush
[ 2434.243535] ieee80211 phy0: rt2800_wait_csr_ready: Error - Unstable hardware
[ 2444.219196] ieee80211 phy0: rt2800_wait_csr_ready: Error - Unstable hardware
[ 2493.789531] ieee80211 phy0: rt2800_wait_csr_ready: Error - Unstable hardware
[ 2503.729200] ieee80211 phy0: rt2800_wait_csr_ready: Error - Unstable hardware
[ 2632.988208] ieee80211 phy0: rt2800_wait_csr_ready: Error - Unstable hardware
[ 2642.927826] ieee80211 phy0: rt2800_wait_csr_ready: Error - Unstable hardware
[ 2764.039486] eth0: port 0 got link
[ 2959.403479] ieee80211 phy0: rt2800_wait_csr_ready: Error - Unstable hardware

From this log snippet, the interesting parts occur near the end. The "Error - Unstable hardware" comes from my attempts to use the wireless kill switch to stop and restart the wireless system. Whenever I try to turn it back on, this is what happens.

Any ideas on what could be going wrong? Is there anything I can do to resolve the error? Or should I just ditch this 10-year old router and buy more recent hardware? :slight_smile:

Run iw list from the SSH command prompt and post the results.

If power management is turned on, you might try turning it off.

Otherwise, replacing the router may be the best solution.

https://lede-project.org/toh/views/toh_available_864_ac-wifi

Are you using Android&Chromecast? I also have a P2812HNU-F1, which is rockstable. The uptime lasts from one OpenWRT or LEDE release to the next.
But at Christmas I had my children around, and the wifi went down 3 or 4 times in 3 days. I didn't look at the kernel logs, then.
Since they went their way on dec 27 everything is stable, again.

Beginning January I read that the Android Chromecast app is effectively DoSsing the wifi network, when the device awakes. So I guessed that was the source of the problem. (If it's true that would be a bug in either LEDE or the wifi firmware. A DoS may make the network unusable, but it shouldn't crash)

@jwoods: I'll try to get an output from the command next time this happens. The problem hasn't occurred today at all, so I'm quite baffled as to what might be causing this. WMM mode is on, and I recall trying to fiddle with this switch earlier, before the recent problems, and it didn't seem to have an effect on the occurrence of the problem.

@Mijzelf: We do have some Android phones in the network, but no Chromecast devices, so I don't think they are the problem. Firewall has SYN-flood protection enabled. When the wi-fi does hiccup, I can still connect to the router using an Ethernet cable. The Ethernet network and the wireless network are bridged together so if firewall was the cause of this issue, I feel the problem should occur similarly in both.

One possible problem might be the binary blob that I've been using with the device. It's called RT3062.eeprom and apparently contains some sort of calibration data or similar, although what exactly it contains is unknown to me. The file first came to my router from the user ScApi's repositories.

I recall trying to build and install a newer OpenWrt/LEDE firmware without retaining this file, and that resulted in the wireless network not starting at all. This file is not present in firmware images built from sources, so apparently I cannot live without it. The file is loaded by the rt2x00lib driver and message of this gets printed to the kernel log.

No need to wait to run iw list

@jwoods: Here are the outputs of 'iw list' and 'iw dev':

root@OpenWrt:~# iw list
Wiphy phy0
        max # scan SSIDs: 4
        max scan IEs length: 2257 bytes
        max # sched scan SSIDs: 0
        max # match sets: 0
        max # scan plans: 1
        max scan plan interval: -1
        max scan plan iterations: 0
        Retry short long limit: 2
        Coverage class: 0 (up to 0m)
        Available Antennas: TX 0 RX 0
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * monitor
                 * mesh point
        Band 1:
                Capabilities: 0x2fe
                        HT20/HT40
                        SM Power Save disabled
                        RX Greenfield
                        RX HT20 SGI
                        RX HT40 SGI
                        TX STBC
                        RX STBC 2-streams
                        Max AMSDU length: 3839 bytes
                        No DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: 2 usec (0x04)
                HT TX/RX MCS rate indexes supported: 0-15, 32
                Frequencies:
                        * 2412 MHz [1] (20.0 dBm)
                        * 2417 MHz [2] (20.0 dBm)
                        * 2422 MHz [3] (20.0 dBm)
                        * 2427 MHz [4] (20.0 dBm)
                        * 2432 MHz [5] (20.0 dBm)
                        * 2437 MHz [6] (20.0 dBm)
                        * 2442 MHz [7] (20.0 dBm)
                        * 2447 MHz [8] (20.0 dBm)
                        * 2452 MHz [9] (20.0 dBm)
                        * 2457 MHz [10] (20.0 dBm)
                        * 2462 MHz [11] (20.0 dBm)
                        * 2467 MHz [12] (20.0 dBm)
                        * 2472 MHz [13] (20.0 dBm)
                        * 2484 MHz [14] (disabled)
        valid interface combinations:
                 * #{ managed, AP, mesh point } <= 8,
                   total <= 8, #channels <= 1
        HT Capability overrides:
                 * MCS: ff ff ff ff ff ff ff ff ff ff
                 * maximum A-MSDU length
                 * supported channel width
                 * short GI for 40 MHz
                 * max A-MPDU length exponent
                 * min MPDU start spacing


root@OpenWrt:~# iw dev
phy#0
        Interface wlan0
                ifindex 23
                wdev 0x4
                addr XX:YY:ZZ:XX:YY:ZZ
                type AP
                txpower 20.00 dBm

This output was taken during problem occurrence.

Power save is showing as disabled, so that is not a factor.

Interesting that iw dev is showing addr XX:YY:ZZ:XX:YY:ZZ for Interface wlan0. It should be the MAC address of the radio (unless you hid it, which is fine). There is also no channel information showing (which should appear after type AP.)

Run dmesg and post the results.

The MAC address is indeed hidden. The lack of channel information may be caused by the fact that the problem was occurring when I took the output.

The 'dmesg' output shown in my first post presents all the error messages related to the situation. The wireless network stops working, and after I press the rfkill switch, I get the errors related to the register access failure, and the queue flushing errors. When I press the rfkill switch to turn it back on, I get the 'Error - Unstable hardware' messages.

I'm now investigating the stack traces related to these errors i.e. from which part of the wireless driver these error messages pop up from.

To eliminate the possibility that the snapshot you are running is involved, I would try reflashing LEDE and reconfigure from scratch.

This might save you some time identifying customizations...

https://wiki.openwrt.org/doc/howto/generic.sysupgrade

A few hours ago the wireless chip finally gave up, and stopped working completely. Even after power cycle, the wireless network refused to come online. No messages in the 'dmesg' indicate what's going wrong. It is as if the device did not even exist.

I recalled that I had an old RT5370 USB wireless adapter lying about, so I updated my sources & built a new firmware with the necessary packages to support this adapter and flashed it. I reconfigured the wireless network to use this new adapter instead of the old one, and much to my surprise, the wireless network came online as if it had never even been off. I'll probably still need to fiddle with the settings in order to enable HT40 mode

It's a hack -- one that I'm particularly proud of, though -- but it works :slight_smile:

EDIT: The wireless chip started appearing again in the 'lspci' output, but I'm keeping the kernel modules disabled so as to prevent this device from being used for now. Once I've managed to replace the router with a newer device, I might return to this matter and debug the wireless in more detail.

Nice save.