Askey RAC2V1K / RT4230W REV6 Support

Makes sense. I didn't know if it was worth destroying the 1S version vs the 1K version if everything else in it is the same.

Could you please share a link for " RT4230W-REV6-20220601-MasterNSS-sysupgrade.bin"
The CPU usage of "RT4230W-REV6-20220926-MasterNSS-ath10k-uImage.bin" is really horrible.
Thanks a lot!

CPU usage should only be high during very high wifi usage, everything else should be offloaded (low to no cpu usage). If you tried that June 1st version - that version had the ath10k-ct drivers. The files with no β€œath10k” in the name have the ct drivers. Try that version and see if it works better for you.

iperf3 result for RT4230W-REV6-20220926-MasterNSS-sysupgrade.bin

iperf3 -c 192.168.1.1 -b 1000m -t 60 -i 1
Connecting to host 192.168.1.1, port 5201
[  4] local 192.168.1.100 port 3560 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec  82.4 MBytes   691 Mbits/sec
[  4]   1.00-2.00   sec  88.8 MBytes   744 Mbits/sec
[  4]   2.00-3.00   sec  89.8 MBytes   752 Mbits/sec
[  4]   3.00-4.00   sec  90.0 MBytes   755 Mbits/sec
[  4]   4.00-5.00   sec  90.4 MBytes   758 Mbits/sec
[  4]   5.00-6.00   sec  90.1 MBytes   756 Mbits/sec
[  4]   6.00-7.00   sec  92.5 MBytes   777 Mbits/sec
[  4]   7.00-8.00   sec  90.6 MBytes   760 Mbits/sec
[  4]   8.00-9.00   sec  86.4 MBytes   724 Mbits/sec
[  4]   9.00-10.00  sec  91.0 MBytes   764 Mbits/sec
[  4]  10.00-11.00  sec  90.9 MBytes   762 Mbits/sec
[  4]  11.00-12.00  sec  90.0 MBytes   755 Mbits/sec
[  4]  12.00-13.00  sec  92.6 MBytes   776 Mbits/sec
[  4]  13.00-14.00  sec  87.6 MBytes   736 Mbits/sec
[  4]  14.00-15.01  sec  91.6 MBytes   763 Mbits/sec
[  4]  15.01-16.00  sec  92.1 MBytes   778 Mbits/sec
[  4]  16.00-17.00  sec  83.5 MBytes   697 Mbits/sec
[  4]  17.00-18.00  sec  90.1 MBytes   759 Mbits/sec
[  4]  18.00-19.00  sec  90.2 MBytes   757 Mbits/sec
[  4]  19.00-20.00  sec  88.9 MBytes   746 Mbits/sec
[  4]  20.00-20.98  sec  90.1 MBytes   775 Mbits/sec

htop result for RT4230W-REV6-20220926-MasterNSS-sysupgrade.bin

Your router is 192.168.1.1 so it is using all that cpu generating traffic for iperf. An all in one router should never be the client or the server for iperf for gig speeds. In the real world the router is not generating traffic, it is routing traffic.

Instead to test offloading the router should be in between the iperf server and iperf client. If you have two wired computers - place one on LAN side and the other on the WAN side. Run iperf and you should see ~930-940mbps between the two computers and near zero CPU usage for the router. :sunglasses:

You're right! No wonder CPU usage are so high. Thanks for reminding me that :+1:

1 Like

I recently had occasion to put a RAC2V1K / RT4230W Rev 6 I've kept as a spare into service as a replacement dumb AP for a Linksys EA8500. Happy to share I was pleasantly surprised it performs just as good as the EA8500 did, despite having small internal antennas. This is with 22.03.2 - not using an NSS build.

At longish range (from first floor 2x2 client to second floor RAC2V1K) I'm getting right at ~300 Mbps WiFi throughput. Nice.

1 Like

@eginnc -i agree. i'm using 3 of them for access points with excellent performance and range.

1 Like

Has anyone else tried running the new 5.15 master build on this router? I have tried a few times now but it just causes the router to get stuck in a boot loop. Here is the log.

U-Boot 1.0.6 [spf.5.0.2_csu1.1] (Sep 26 2019 - 02:44:05)

smem ram ptable found: ver: 0 len: 5
DRAM:  1003 MiB
setting 0x177e as machine type from smem
NAND:  SF: Unsupported manufacturer 00
ipq_spi: SPI Flash not found (bus/cs/speed/mode) = (0/0/48000000/0)
256 MiB
MMC:
PCI0 Link Intialized
PCI1 Link Intialized
In:    serial
Out:   serial
Err:   serial
MMC Device 0 not found
cdp: get part failed for 0:HLOS
Net:   MAC0 addr:80:78:71:e1:5f:db
athrs17_reg_init: complete
athrs17_vlan_config ...done
S17c init  done
MAC1 addr:80:78:71:e1:5f:dc
eth0, eth1
Hit space key to stop autoboot:  0
Creating 1 MTD partitions on "nand0":
0x000002400000-0x000010000000 : "mtd=0"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size:   131072 bytes (128 KiB)
UBI: logical eraseblock size:    126976 bytes
UBI: smallest flash I/O unit:    2048
UBI: VID header offset:          2048 (aligned 2048)
UBI: data offset:                4096
UBI: attached mtd1 to ubi0
UBI: MTD device name:            "mtd=0"
UBI: MTD device size:            220 MiB
UBI: number of good PEBs:        1756
UBI: number of bad PEBs:         4
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     3
UBI: available PEBs:             19
UBI: total number of reserved PEBs: 1737
UBI: number of PEBs reserved for bad PEB handling: 17
UBI: max/mean erase counter: 13/7
Read 7208960 bytes from volume kernel to 44000000
   Loading Kernel Image ... OK
OK

device nand0 <nand0>, # parts = 1
 #: name                size            offset          mask_flags
 0: firmware            0x0dc00000      0x02400000      0

active partition: nand0,0 - (firmware) 0x0dc00000 @ 0x02400000

defaults:
mtdids  : none
mtdparts: none
Setting up atags for msm partition: firmware
Using machid 0x177e from environment

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.15.77 (user@mint-7010) (arm-openwrt-linux-muslgnueabi-gcc (OpenWrt GCC 11.3.0 r21215+43-10ba380ec3) 11.3.0, GNU ld (GNU Binutils) 2.37) #0 SMP Fri Nov 11 01:39:14 2022
[    0.000000] CPU: ARMv7 Processor [512f04d0] revision 0 (ARMv7), cr=10c5787d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] OF: fdt: Machine model: Askey RT4230W REV6
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000042000000-0x0000000071ffffff]
[    0.000000]   HighMem  [mem 0x0000000072000000-0x000000007fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000042000000-0x000000007fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000042000000-0x000000007fffffff]
[    0.000000] percpu: Embedded 12 pages/cpu s16460 r8192 d24500 u49152
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 252224
[    0.000000] Kernel command line: rootfstype=squashfs noinitrd
[    0.000000] Bootloader command line (ignored):
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 994472K/1015808K available (7246K kernel code, 616K rwdata, 1760K rodata, 1024K init, 239K bss, 21336K reserved, 0K cma-reserved, 229376K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] clocksource: dg_timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 305801671480 ns
[    0.000001] sched_clock: 32 bits at 6MHz, resolution 160ns, wraps every 343597383600ns
[    0.000025] Switching to timer-based delay loop, resolution 160ns
[    0.000399] Calibrating delay loop (skipped), value calculated using timer frequency.. 12.50 BogoMIPS (lpj=62500)
[    0.000436] pid_max: default: 32768 minimum: 301
[    0.000723] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.000756] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.001887] CPU: Testing write buffer coherency: ok
[    0.002233] qcom_scm: convention: smc legacy
[    0.003553] Setting up static identity map for 0x42300000 - 0x42300060
[    0.003759] rcu: Hierarchical SRCU implementation.
[    0.004092] dyndbg: Ignore empty _ddebug table in a CONFIG_DYNAMIC_DEBUG_CORE build
[    0.004361] smp: Bringing up secondary CPUs ...
[    0.006386] smp: Brought up 1 node, 2 CPUs
[    0.006413] SMP: Total of 2 processors activated (25.00 BogoMIPS).
[    0.006433] CPU: All CPU(s) started in SVC mode.
[    0.018031] VFP support v0.3: implementor 51 architecture 64 part 4d variant 2 rev 0
[    0.018195] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.018234] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.018397] pinctrl core: initialized pinctrl subsystem
[    0.020271] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.020746] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.022101] thermal_sys: Registered thermal governor 'step_wise'
[    0.024077] cpuidle: using governor ladder
[    0.024161] cpuidle: using governor menu
[    0.043542] qcom_rpm 108000.rpm: RPM firmware 3.0.16777377
[    0.079104] s1a: Bringing 0uV into 1050000-1050000uV
[    0.079338] s1a: supplied by regulator-dummy
[    0.079504] s1b: Bringing 0uV into 1050000-1050000uV
[    0.079724] s1b: supplied by regulator-dummy
[    0.079869] s2a: Bringing 0uV into 775000-775000uV
[    0.080067] s2a: supplied by regulator-dummy
[    0.080223] s2b: Bringing 0uV into 775000-775000uV
[    0.080429] s2b: supplied by regulator-dummy
[    0.081036] usbcore: registered new interface driver usbfs
[    0.081110] usbcore: registered new interface driver hub
[    0.081180] usbcore: registered new device driver usb
[    0.081236] pps_core: LinuxPPS API ver. 1 registered
[    0.081252] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.081285] PTP clock support registered
[    0.083461] clocksource: Switched to clocksource dg_timer
[    0.084437] NET: Registered PF_INET protocol family
[    0.084667] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.085750] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.085793] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.085823] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.085884] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.085987] TCP: Hash tables configured (established 8192 bind 8192)
[    0.086083] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.086126] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.086398] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.086451] PCI: CLS 0 bytes, default 64
[    0.087397] workingset: timestamp_bits=14 max_order=18 bucket_order=4
[    0.093014] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.093131] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.194844] bounce: pool size: 64 pages
[    0.197614] qcom-pcie 1b500000.pci: supply vdda not found, using dummy regulator
[    0.197826] qcom-pcie 1b500000.pci: supply vdda_phy not found, using dummy regulator
[    0.197947] qcom-pcie 1b500000.pci: supply vdda_refclk not found, using dummy regulator
[    0.198215] qcom-pcie 1b500000.pci: host bridge /soc/pci@1b500000 ranges:
[    0.198305] qcom-pcie 1b500000.pci:       IO 0x000fe00000..0x000fe0ffff -> 0x000fe00000
[    0.198349] qcom-pcie 1b500000.pci:      MEM 0x0008000000..0x000fdfffff -> 0x0008000000
[    0.316492] qcom-pcie 1b500000.pci: iATU unroll: disabled
[    0.316515] qcom-pcie 1b500000.pci: Detected iATU regions: 8 outbound, 8 inbound
[    0.419271] qcom-pcie 1b500000.pci: Link up
[    0.419433] qcom-pcie 1b500000.pci: PCI host bridge to bus 0000:00
[    0.419457] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.419484] pci_bus 0000:00: root bus resource [io  0x0000-0xffff] (bus address [0xfe00000-0xfe0ffff])
[    0.419505] pci_bus 0000:00: root bus resource [mem 0x08000000-0x0fdfffff]
[    0.419584] pci 0000:00:00.0: [17cb:0101] type 01 class 0x060400
[    0.419718] pci 0000:00:00.0: supports D1
[    0.419739] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    0.423294] PCI: bus0: Fast back to back transfers disabled
[    0.423792] pci 0000:01:00.0: [168c:0046] type 00 class 0x028000
[    0.423978] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
[    0.424782] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    0.428489] PCI: bus1: Fast back to back transfers disabled
[    0.428585] pci 0000:00:00.0: BAR 8: assigned [mem 0x08000000-0x081fffff]
[    0.428614] pci 0000:01:00.0: BAR 0: assigned [mem 0x08000000-0x081fffff 64bit]
[    0.428715] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    0.428743] pci 0000:00:00.0:   bridge window [mem 0x08000000-0x081fffff]
[    0.429676] pcieport 0000:00:00.0: AER: enabled with IRQ 47
[    0.430654] qcom-pcie 1b700000.pci: supply vdda not found, using dummy regulator
[    0.430875] qcom-pcie 1b700000.pci: supply vdda_phy not found, using dummy regulator
[    0.430986] qcom-pcie 1b700000.pci: supply vdda_refclk not found, using dummy regulator
[    0.431256] qcom-pcie 1b700000.pci: host bridge /soc/pci@1b700000 ranges:
[    0.431346] qcom-pcie 1b700000.pci:       IO 0x0031e00000..0x0031e0ffff -> 0x0031e00000
[    0.431387] qcom-pcie 1b700000.pci:      MEM 0x002e000000..0x0031dfffff -> 0x002e000000
[    0.558290] qcom-pcie 1b700000.pci: iATU unroll: disabled
[    0.558314] qcom-pcie 1b700000.pci: Detected iATU regions: 8 outbound, 8 inbound
[    0.661006] qcom-pcie 1b700000.pci: Link up
[    0.661148] qcom-pcie 1b700000.pci: PCI host bridge to bus 0001:00
[    0.661173] pci_bus 0001:00: root bus resource [bus 00-ff]
[    0.661198] pci_bus 0001:00: root bus resource [io  0x10000-0x1ffff] (bus address [0x31e00000-0x31e0ffff])
[    0.661220] pci_bus 0001:00: root bus resource [mem 0x2e000000-0x31dfffff]
[    0.661294] pci 0001:00:00.0: [17cb:0101] type 01 class 0x060400
[    0.661423] pci 0001:00:00.0: supports D1
[    0.661442] pci 0001:00:00.0: PME# supported from D0 D1 D3hot
[    0.665046] PCI: bus0: Fast back to back transfers disabled
[    0.665432] pci 0001:01:00.0: [168c:0046] type 00 class 0x028000
[    0.665629] pci 0001:01:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
[    0.666504] pci 0001:01:00.0: PME# supported from D0 D3hot D3cold
[    0.666789] pci 0001:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x1 link at 0001:00:00.0 (capable of 4.000 Gb/s with 5.0 GT/s PCIe x1 link)
[    0.670288] PCI: bus1: Fast back to back transfers disabled
[    0.670375] pci 0001:00:00.0: BAR 8: assigned [mem 0x2e000000-0x2e1fffff]
[    0.670406] pci 0001:01:00.0: BAR 0: assigned [mem 0x2e000000-0x2e1fffff 64bit]
[    0.670511] pci 0001:00:00.0: PCI bridge to [bus 01-ff]
[    0.670538] pci 0001:00:00.0:   bridge window [mem 0x2e000000-0x2e1fffff]
[    0.671395] pcieport 0001:00:00.0: AER: enabled with IRQ 49
[    0.675267] krait-cc soc:clock-controller: CPU0 @ 800000 KHz
[    0.675293] krait-cc soc:clock-controller: CPU1 @ PXO rate. Forcing new rate.
[    0.675442] krait-cc soc:clock-controller: CPU1 @ 384000 KHz
[    0.675463] krait-cc soc:clock-controller: L2 @ PXO rate. Forcing new rate.
[    0.675664] krait-cc soc:clock-controller: L2 @ 384000 KHz
[    0.679648] gsbi 16300000.gsbi: GSBI port protocol: 6 crci: 0
[    0.681171] gsbi 1a200000.gsbi: GSBI port protocol: 3 crci: 0
[    0.682819] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    0.683555] msm_serial 16340000.serial: msm_serial: detected port #0
[    0.683609] msm_serial 16340000.serial: uartclk = 7372800
[    0.683674] 16340000.serial: ttyMSM0 at MMIO 0x16340000 (irq = 50, base_baud = 460800) is a MSM
[    0.683716] msm_serial: console setup on port #0
[    1.615303] printk: console [ttyMSM0] enabled
[    1.620418] msm_serial: driver initialized
[    1.629100] loop: module loaded
[    1.630480] nand: device found, Manufacturer ID: 0xc2, Chip ID: 0xaa
[    1.631383] nand: Macronix MX30UF2G18AC
[    1.638062] nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    1.641549] Block protection check failed
[    1.649416] 21 fixed-partitions partitions found on MTD device qcom_nand.0
[    1.653304] OF: Bad cell count for /soc/nand-controller@1ac00000/nand@0/partitions
[    1.660161] OF: Bad cell count for /soc/nand-controller@1ac00000/nand@0/partitions
[    1.668314] Creating 21 MTD partitions on "qcom_nand.0":
[    1.675211] 0x000000000000-0x000000040000 : "0:SBL1"
[    1.681433] 0x000000040000-0x000000180000 : "0:MIBIB"
[    1.687831] 0x000000180000-0x0000002c0000 : "0:SBL2"
[    1.692717] 0x0000002c0000-0x000000540000 : "0:SBL3"
[    1.699532] 0x000000540000-0x000000660000 : "0:DDRCONFIG"
[    1.702489] 0x000000660000-0x000000780000 : "0:SSD"
[    1.707853] 0x000000780000-0x000000a00000 : "0:TZ"
[    1.714409] 0x000000a00000-0x000000c80000 : "0:RPM"
[    1.719377] 0x000000c80000-0x000001180000 : "0:APPSBL"
[    1.727598] 0x000001180000-0x000001200000 : "0:APPSBLENV"
[    1.728759] 0x000001200000-0x000001340000 : "0:ART"
[    1.734371] 0x000001340000-0x0000013a0000 : "0:BOOTCONFIG"
[    1.737624] 0x0000013a0000-0x0000014e0000 : "0:SBL2_1"
[    1.744524] 0x0000014e0000-0x000001760000 : "0:SBL3_1"
[    1.751268] 0x000001760000-0x000001880000 : "0:DDRCONFIG_1"
[    1.754539] 0x000001880000-0x0000019a0000 : "0:SSD_1"
[    1.759948] 0x0000019a0000-0x000001c20000 : "0:TZ_1"
[    1.767130] 0x000001c20000-0x000001ea0000 : "0:RPM_1"
[    1.772150] 0x000001ea0000-0x000001f00000 : "0:BOOTCONFIG1"
[    1.774214] 0x000001f00000-0x000002400000 : "0:APPSBL_1"
[    1.786300] 0x000002400000-0x00001c400000 : "ubi"
[    1.786332] mtd: partition "ubi" extends beyond the end of device "qcom_nand.0" -- size truncated to 0xdc00000
[    2.093864] random: crng init done
[    2.108916] spi_qup 1a280000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64
[    2.109897] spi-nor spi0.0: mr25h256 (32 Kbytes)
[    2.133952] switch0: Atheros AR8337 rev. 2 switch registered on 37000000.mdio-mii
[    2.950179] ar8327: qca,phy-rgmii-en is not specified
[    2.951064] i2c_dev: i2c /dev entries driver
[    2.957900] sdhci: Secure Digital Host Controller Interface driver
[    2.958552] sdhci: Copyright(c) Pierre Ossman
[    2.964616] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.977409] NET: Registered PF_INET6 protocol family
[    2.979177] Segment Routing with IPv6
[    2.981487] In-situ OAM (IOAM) with IPv6
[    2.985237] NET: Registered PF_PACKET protocol family
[    2.989142] Bridge firewalling registered
[    2.994353] 8021q: 802.1Q VLAN Support v1.8
[    2.998032] Registering SWP/SWPB emulation handler
[    3.043863] thermal thermal_zone0: failed to read out thermal zone (-110)
[    β–’[    3.059604] /dev/root: Can't open blockdev
[    3.059630] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[    3.062588] Please append a correct "root=" boot option; here are the available partitions:
[    3.070219] 1f00             256 mtdblock0
[    3.070227]  (driver?)
[    3.082464] 1f01            1280 mtdblock1
[    3.082473]  (driver?)
[    3.088974] 1f02            1280 mtdblock2
[    3.088982]  (driver?)
[    3.095533] 1f03            2560 mtdblock3
[    3.095541]  (driver?)
[    3.101995] 1f04            1152 mtdblock4
[    3.102002]  (driver?)
[    3.108504] 1f05            1152 mtdblock5
[    3.108512]  (driver?)
[    3.115089] 1f06            2560 mtdblock6
[    3.115096]  (driver?)
[    3.121527] 1f07            2560 mtdblock7
[    3.121534]  (driver?)
[    3.128038] 1f08            5120 mtdblock8
[    3.128047]  (driver?)
[    3.134615] 1f09             512 mtdblock9
[    3.134622]  (driver?)
[    3.141057] 1f0a            1280 mtdblock10
[    3.141064]  (driver?)
[    3.147984] 1f0b             384 mtdblock11
[    3.147993]  (driver?)
[    3.154576] 1f0c            1280 mtdblock12
[    3.154584]  (driver?)
[    3.161110] 1f0d            2560 mtdblock13
[    3.161117]  (driver?)
[    3.167760] 1f0e            1152 mtdblock14
[    3.167766]  (driver?)
[    3.174351] 1f0f            1152 mtdblock15
[    3.174358]  (driver?)
[    3.180901] 1f10            2560 mtdblock16
[    3.180908]  (driver?)
[    3.187570] 1f11            2560 mtdblock17
[    3.187579]  (driver?)
[    3.194157] 1f12             384 mtdblock18
[    3.194165]  (driver?)
[    3.200694] 1f13            5120 mtdblock19
[    3.200703]  (driver?)
[    3.207340] 1f14          225280 mtdblock20
[    3.207348]  (driver?)
[    3.213932] 1f15              32 mtdblock21
[    3.213940]  (driver?)
[    3.220485] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    3.222665] CPU0: stopping
[    3.230904] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.15.77 #0
[    3.233596] Hardware name: Generic DT based system
[    3.239767] [<c030e5b4>] (unwind_backtrace) from [<c030a130>] (show_stack+0x14/0x20)
[    3.244366] [<c030a130>] (show_stack) from [<c064abdc>] (dump_stack_lvl+0x40/0x4c)
[    3.252266] [<c064abdc>] (dump_stack_lvl) from [<c030cfdc>] (do_handle_IPI+0x144/0x184)
[    3.259643] [<c030cfdc>] (do_handle_IPI) from [<c030d038>] (ipi_handler+0x1c/0x2c)
[    3.267540] [<c030d038>] (ipi_handler) from [<c0379e9c>] (handle_percpu_devid_irq+0x84/0x16c)
[    3.275183] [<c0379e9c>] (handle_percpu_devid_irq) from [<c0373760>] (handle_domain_irq+0x68/0x94)
[    3.283776] [<c0373760>] (handle_domain_irq) from [<c0664ccc>] (gic_handle_irq+0x8c/0xb4)
[    3.292631] [<c0664ccc>] (gic_handle_irq) from [<c0300b7c>] (__irq_svc+0x5c/0x78)
[    3.300873] Exception stack(0xc0d01ed0 to 0xc0d01f18)
[    3.308340] 1ec0:                                     00000000 00000000 2eaca000 ef710480
[    3.313381] 1ee0: 00000000 bf8ff060 c1d00040 00000000 ef70f6f0 00000000 00000000 00000000
[    3.321538] 1f00: 0005fe60 c0d01f20 c07ea528 c07ea548 60000013 ffffffff
[    3.329693] [<c0300b7c>] (__irq_svc) from [<c07ea548>] (cpuidle_enter_state+0x180/0x37c)
[    3.336120] [<c07ea548>] (cpuidle_enter_state) from [<c07ea794>] (cpuidle_enter+0x3c/0x5c)
[    3.344452] [<c07ea794>] (cpuidle_enter) from [<c0351360>] (do_idle+0x204/0x2a4)
[    3.352524] [<c0351360>] (do_idle) from [<c0351724>] (cpu_startup_entry+0x1c/0x20)
[    3.360074] [<c0351724>] (cpu_startup_entry) from [<c0c0118c>] (start_kernel+0x6ac/0x6c0)
[    3.367455] [<c0c0118c>] (start_kernel) from [<00000000>] (0x0)
[    3.375704] Rebooting in 1 seconds..

By removing this line

qcom,boot-partitions = <0x0 0x1180000 0x1340000 0x2400000>;

from the 5.15 dts file (/openwrt/target/linux/ipq806x/files-5.15/arch/arm/boot/dts) I was able to compile a build that will now boot on the RT4230W.

&nand {
	status = "okay";

	nand@0 {
		reg = <0>;
		compatible = "qcom,nandcs";

		nand-ecc-strength = <4>;
		nand-bus-width = <8>;
		nand-ecc-step-size = <512>;

		qcom,boot-partitions = <0x0 0x1180000 0x1340000 0x2400000>;

		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			partition@0 {
				label = "0:SBL1";
				reg = <0x0000000 0x0040000>;
				read-only;
			};

Thanks to @Ansuel this issues has been addressed. The master snapshot 5.15 builds will now boot successfully on the RT4230W

1 Like

i've been using this device for 2 years now.in AP mode. the rados have been fast and strong.
my wan speed is symettric 300/300 up/down and I could consistently achieve or great (overprovisioning) that on a number of different test clients.
however, since upgrading to snapshots from 22.02, i've noticed consistent slowdown in wifi uploads, so now my best speeds are 300 donw/ 180 up. i've removed all add-ons, down a clean install/reset, and disabled all services.
is this a generic problem wiht linux 5.15 and ipq806x?
if this has already been addressed, or if another thread is better, i apologize and please re-direct.
thanks

1 Like

Hi there,
I attached 4Tb Toshiba Canvio Ready HDD to RAC2V1K USB 3 port.
After that I compare read disk speed copying large files from router samba share to Windows PC nul device. The PC (i5-12400 CPU) is a LAN device attached to router 1Gbps ethernet port, so network is definitely not a bottleneck.

Being attached directly to PC this disk performs at ~130Mb/sec, but performs at only 45Mb/sec on copying data from RAC2V1K/Samba share.

It there any way to speed it up? Or is it a kind of router hardware (SoC, periferals) or software limitation?

p.s.
Using this router as Samba/Transmission/Plex server (Plex is running on dockerd).

root@RAC2V1K:~# top
Mem: 713828K used, 281928K free, 4368K shrd, 64280K buff, 517388K cached
CPU:   1% usr   9% sys   0% nic  55% idle  30% io   0% irq   3% sirq
Load average: 1.30 1.16 1.06 2/110 10094
  PID  PPID USER     STAT   VSZ %VSZ %CPU COMMAND
11581  2487 sambause S    40468   4%   6% /usr/sbin/smbd -F
11583     2 root     DW       0   0%   5% [io_wqe_worker-0]
 6033     2 root     IW       0   0%   1% [kworker/u4:0-fl]

root@RAC2V1K:~# uname -a
Linux RAC2V1K 5.10.161 #0 SMP Tue Jan 3 00:24:21 2023 armv7l GNU/Linux

root@RAC2V1K:~# lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
    |__ Port 1: Dev 2, If 0, Class=, Driver=usb-storage, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M

root@RAC2V1K:~# hdparm -Tt /dev/sda1

/dev/sda1:
 Timing cached reads:   1396 MB in  2.00 seconds = 698.31 MB/sec
 Timing buffered disk reads: 370 MB in  3.01 seconds = 123.03 MB/sec

Try these builds. They have the NSS cores active which speeds everything up. There is one based on the 22.03-snapshot (stable) and a master build as well. I have been using the 22.03 builds with the RT4230W as my main router and it works very well. I have 800/20 and get 600-700 down and easily 20 up on the wifi and all of it via ethernet.

1 Like

If the HDD is not already formatted as ext4, you could give that a try?

It's already ext4. I used WSL in Windows to access it.

I would guess that it is just a limitation of the router. I have a similar setup but using a USB 3.0 hub to attach a 5TB seagate drive divided into 3 partitions (sdb1-3) and a 64GB sdcard (sda1). The hub has a sd slot in it. My results are similar and seem to vary depending on what other activities the router is doing as well. The tests were done one right after another and degrade so I would guess there is a slight memory buffer issue possible too. I do notice that when I transfer a large file the router memory (RAM) fills up but will release after a bit.

root@Spectrum:~#hdparm -Tt /dev/sdb1

/dev/sdb1:
 Timing cached reads:   1340 MB in  2.00 seconds = 670.09 MB/sec
 Timing buffered disk reads: 402 MB in  3.01 seconds = 133.58 MB/sec
root@Spectrum:~#hdparm -Tt /dev/sdb2

/dev/sdb2:
 Timing cached reads:   1196 MB in  2.00 seconds = 598.44 MB/sec
 Timing buffered disk reads: 330 MB in  3.01 seconds = 109.53 MB/sec
root@Spectrum:~#hdparm -Tt /dev/sdb3

/dev/sdb3:
 Timing cached reads:   1188 MB in  2.00 seconds = 593.62 MB/sec
 Timing buffered disk reads: 220 MB in  3.01 seconds =  73.04 MB/sec
root@Spectrum:~#hdparm -Tt /dev/sda1

/dev/sda1:
 Timing cached reads:   1280 MB in  2.00 seconds = 640.74 MB/sec
 Timing buffered disk reads: 222 MB in  3.00 seconds =  73.97 MB/sec
root@Spectrum:~#uname -a
Linux Spectrum 5.10.161 #0 SMP Tue Jan 17 16:08:46 2023 armv7l GNU/Linux

I would think that a true NAS device would perform faster but it is not necessary for my needs. It just serves up media and acts as network backup storage for my desktop. The HDD is formatted ext4 and the sdcard is f2fs.

HdParm results are quite good (>120 MB/sec), so USB3.0 controller doesn't seems to be a bottleneck. It's strange that copying via samba slows it down 3 times.

root@RAC2V1K:/mnt/sda1/tmp# mknod /dev/null c 1 3
root@RAC2V1K:/mnt/sda1/tmp# chmod 666 /dev/null

root@RAC2V1K: echo -n 3 > /proc/sys/vm/drop_caches
root@RAC2V1K:/mnt/sda1/tmp# time dd if=/dev/sda of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
real    0m 7.81s
user    0m 0.02s
sys     0m 2.33s

1024/7.81 means ~140 Mb/sec when data is being read from USB disk internally.

so, logical conclusion - samba is a bottleneck.

Honestly, I haven't paid much attention to it. When I need to transfer large files it can take time but never seems too long. I did a test today watching the CPUs via htop while transferring and they stayed below 40% most of the time. Downloading via WiFi I got close to 60Mb/s and 45Mb/s up. I've never had issues streaming from the drive to a firestick or minidlna files to my stereo.