OpenWrt support on rt2600ac (synology) 2021

cheers... you can test with the initramfs > 'kernel' for now...

i'll sort it out... (edit: done)

nope... looks like there is an issue loading the (wifi) firmware...

(i'll need to double check I haven't missed something)

dmesg-without-boardandfirmware_ath10k-ct_as-y
--
[   11.756587] tun: Universal TUN/TAP device driver, 1.6
[   11.763487] **********************************************************
[   11.764786] * Driver    :NSS GMAC Driver - RTL v(3.72a)
[   11.771263] * Version   :1.0
[   11.776317] * Copyright :Copyright (c) 2013-2018 The Linux Foundation. All rights reserved.
[   11.779507] **********************************************************
[   11.852139] nss_driver - fw of size 536324  bytes copied to load addr: 40000000, nss_id : 0
[   11.852719] nss_driver - Turbo Support 1
[   11.859362] Supported Frequencies - 
[   11.859365] 733Mhz 
[   11.863450] 733Mhz 
[   11.867015] 733Mhz 
[   11.868832] 
[   11.873241] 62196b20: meminfo init succeed
[   11.886733] nss_driver - fw of size 218224  bytes copied to load addr: 40800000, nss_id : 1
[   11.886967] 4b7f8d5f: meminfo init succeed
[   11.894003] debugfs: File 'n2h' in directory 'stats' already present!
[   11.898053] debugfs: File 'qrfs' in directory 'stats' already present!
[   11.904640] debugfs: File 'c2c_tx' in directory 'stats' already present!
[   11.905718] node size 1 # items 2
[   11.911033] debugfs: File 'c2c_rx' in directory 'stats' already present!
[   11.917838] memory: 0 0 (avl 541552640) items 2 active_cores 2
[   11.921121] debugfs: File 'unaligned' in directory 'stats' already present!
[   11.923972] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[   11.927838] 62196b20: nss core 0 booted successfully
[   11.938023] Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
[   11.940601] node size 1 # items 2
[   11.957773] memory: 0 0 (avl 541552640) items 2 active_cores 2
[   11.961059] 4b7f8d5f: nss core 1 booted successfully
[   11.978148] cryptodev: driver 1.11 loaded.
[   11.980604] PPP generic driver version 2.4.2
[   11.981636] NET: Registered protocol family 24
[   11.988802] GACT probability on
[   11.991897] Mirror/redirect action on
[   11.997128] u32 classifier
--
[   12.008729] fuse: init (API version 7.31)
[   12.012066] Loading modules backported from Linux version v5.10.42-0-g65859eca4dff
[   12.012092] Backport generated by backports.git v5.10.42-1-0-gbee5c545
[   12.068662] xt_time: kernel timezone is -0000
[   12.101317] wireguard: WireGuard 1.0.0 loaded. See www.wireguard.com for information.
[   12.101348] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
[   12.122382] ath10k 5.10 driver, optimized for CT firmware, probing pci device: 0x46.
[   12.127165] ath10k_pci 0000:01:00.0: enabling device (0140 -> 0142)
[   12.129900] ath10k_pci 0000:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[   66.048425] ath10k_pci 0000:01:00.0: Failed to find firmware-N.bin (N between 2 and 6) from ath10k/QCA9984/hw1.0:
 -12
[   66.048457] ath10k_pci 0000:01:00.0: could not fetch firmware files (-12)
[   66.058121] ath10k_pci 0000:01:00.0: could not probe fw (-12)
[   66.065096] ath10k 5.10 driver, optimized for CT firmware, probing pci device: 0x46.
[   66.071161] ath10k_pci 0001:01:00.0: enabling device (0140 -> 0142)
[   66.079098] ath10k_pci 0001:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[   66.994782] ath10k_pci 0001:01:00.0: Failed to find firmware-N.bin (N between 2 and 6) from ath10k/QCA9984/hw1.0:
 -12
[   66.994814] ath10k_pci 0001:01:00.0: could not fetch firmware files (-12)
[   67.004433] ath10k_pci 0001:01:00.0: could not probe fw (-12)
[   67.011716] kmodloader: done loading kernel modules from /etc/modules.d/*
[   95.081721] ECM init
[   95.081762] ECM database jhash random seed: 0xa4f1975b
[   95.084002] ECM init complete
[   96.896651] ipq8064-mdio 37000000.mdio eth1: 1000 Mbps Full Duplex
[   98.012662] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

ok board+firmware were not selected... (selected them again)

but I need to read-up on that thread to see if i'm supposed to extract some NSS specific blobs from oem sdk or device...

might be ok... no idea...

[  141.269112] wlan0: Created a NSS virtual interface
[  134.791685] wlan1: Created a NSS virtual interface

root@synology-001132 /41# iwinfo wlan0 assoclist | grep TX
	TX: 130.0 MBit/s, VHT-MCS 1, 80MHz, VHT-NSS 2        15 Pkts.
	TX: 150.0 MBit/s, MCS 7, 40MHz                 42467 Pkts.
	TX: 585.1 MBit/s, VHT-MCS 6, 80MHz, VHT-NSS 2        95 Pkts.
	TX: 866.7 MBit/s, VHT-MCS 9, 80MHz, VHT-NSS 2       163 Pkts.
	TX: 433.3 MBit/s, VHT-MCS 9, 80MHz, VHT-NSS 1       870 Pkts.

#or-not

root@synology-001132 /41# cat /sys/kernel/debug/qca-nss-drv/stats/wifi | grep _PACKETS
RX_PACKETS = 0
TX_PACKETS = 0
RX_PACKETS = 0
TX_PACKETS = 0
RX_PACKETS = 0
TX_PACKETS = 0

Seems good now (it boots).

weird looking Luci :stuck_out_tongue: I'll test the wireless again

Edit: same performance using iperf, 5ghz 95mbit/s while 2.4ghz reaches 190 mbit/s using OOB config

1 Like

I've done test from windows laptop using the NSS image:

  • 239 mbit/s wired
  • 237 mbit/s 2.4ghz
  • 105 mbit/s 5ghz

iPhone 11 confirms these results

I would have expected at least the same ,normally even better, performance from the 5ghz band, why is it half?

1 Like

read the second post in that nss thread...

enable (and start) irqbalance and test again... probably wont fix everything but you want irqbalance running on these

i'm not really that knowledgable when it comes to wifi...

my expectation is that it meets my internet bandwidth (or whatever I might realistically stream to the phone) which is 50Mb/s so I don't do much tweaking or testing beyond some basic 'make XYZ legacy devices play ball by downtuning stuff'

Hmm, isn't irqbalance already on by default?

I did set the governer to performance and tried:

uci set irqbalance.irqbalance.enabled=1; uci set network.globals.packet_steering=1; uci commit

But doesn't make any noticeable difference. 5Ghz signal still looks to significantly underperform. Could be iperf also ofc... but just weird. could be a hardware or driver thing.

1 Like

not that I think it's the issue here... but worth the note...

i've been sloppy in the past reconnecting the antennae 's to the right sockets...

Euh, good point though. They're all identical, could I have swapped the 2.4ghz with the 5ghz antenna's perhaps? How to know the difference? :smiley:

They are all correctly in tho :stuck_out_tongue:

Edit: it was my mistake, in short it was a mixup of ap names and a 'channel width' difference between the two. When setting them to the same channel width I have the same speed. Ofc the 5ghz at 80 width does significantly better than the 2.4ghz 40 width.

And I seem to really like the NSS build so far. If it proves stable it would be awesome to use it on this device as well (as long as it comes with an update once and a while)

Edit2 : unrelated question to this image, what is the easiest way to import my dhcp static leases from a file? I really have a lot in my network due to IOT devices and would hate to re-enter them each time I switch build or setup :slight_smile: + i'm a configuration through code kinda guy

Edit3: nvm, I found it in /etc/config/dhcp I can concat to that file

1 Like

Issue1:
While setting VLAN's I've discovered that the LAN ports are reversed with whats on the switch.

device => OpenWRT
LAN 1 => LAN 4
LAN 2 => LAN 3
LAN 3 => LAN 2
LAN 4 => LAN 1

Issue 2:

[ 1387.235934] ipq8064-mdio 37000000.mdio eth0: 1000 Mbps Full Duplex
[ 1387.239928] device eth0 entered promiscuous mode
[ 1402.486364] device eth0 left promiscuous mode
[ 1402.815636] ipq8064-mdio 37000000.mdio eth0: 1000 Mbps Full Duplex
[ 1402.820920] device eth0 entered promiscuous mode

My log is full with this every 10-15s seconds.... What's happening?

1 Like

issue 1 is my bad... i've been working with the pi alot lately and lan is eth0...

I changed the setup yesterday from eth1>eth0 because I was alarmed when I saw it...
(edit: nope that was just the led(net activity)... will test this some more)
(edit: ooo i remember that easy fix... musnt have pulled that one across from the last buildroot patchset)

issue 2 could be related to packages i've added or nss something...

suggest testing on non-nss build to see if it's present there...
(note: i haven't seen this ~could be something local to you~ but i'm not using the wan port)
(and i'll double check the dts + test my wan port)

I use PPoE on the WAN port, could be indeed my mistake. I'll check it out.

Could you make package tcpdump part of the image?

1 Like

At 80mhz width I’d expect upper 400mbps to mid 500mbps on the rt2600 with NSS. Wired speed should be 930-940mbps.

Hope you can get the rt2600 fully in to openwrt.

1 Like

Thanks for the feedback @ACwifidude.

I tried iperf3 again today and I installed iperf3 server directly onto the AP this time.

Windows PC (1m from AP):
wireless 5G: 350 Mbits/s
wireless 2.4G: 105 Mbits/s
wired: 814 Mbits/s

iPhone (1m from AP):
wireless 5G: 497 Mbits/s
wireless 2.4G: 82 Mbits/s

Seems good enough for me or I should aim higher in your opinion? If so, what config to check? :wink:

Wireless speed looks good. Is the AP running the iperf server or is the iperf server a separate computer connected to the AP?

You’ll get better results (more realistic) if a separate computer is connected - and the AP is just sending traffic (not creating traffic and sending traffic) like it should be.

Speedtest should give you 930-940 mbps if you have a gig line.

1 Like

There's certainly interest :slight_smile: but you nuked pretty much all your posted sources/builds/configs, so it's incredibly hard to even track the progress, let alone contribute. But if you had a fork of https://github.com/openwrt/openwrt with your changes in a separate branch, people could contribute. I for one would love to see a working build (even without SD card or LED support, for me, as long as I can use it in a dumb AP mode, it fits my needs), and would gladly contribute my admittedly limited knowledge.

The fact that this router is quite expensive with a very limited software solution is not exactly enticing for people, though. It's powerful (so powerful that even on lowest power, my MacBook would rather use its signal from across the apartment than to connect to my Belkin RT3200 which is practically right next to the laptop...), solid performance, but the software is a big limiting factor.

Generally I'd recommend that if you work on something, don't delete it - especially from GitHub. Make a repo, put all the data there, archive it, and you got all your work safe and sound.

due to the risk to devices / skill level involved...

the repo is available on request only for now

pm me if you are known in these parts and wish too make a contribution

2 Likes

Hey @anon50098793. I have been building images for some other devices in the last weeks/month to practice, and I felt ready for the bigger challenge, meaning building images for devices not listed in the target config. Starting with your instructions.

Loaded patches using quilt, and they all show green except the last one which is yellow, dunno why.
user@6a81f9260e6c:~/openwrt/openwrt$ quilt series
patches/1.1-synochecksum-c
patches/1.1-synochecksum-firmwareutils
patches/2.0-ipq806xubootenvtools
patches/2.1-rt2600ac-device-core-imageMakefile
patches/2.1-rt2600ac-device-core-imageSuppfiles
patches/2.1-rt2600ac-device-core-upgrade
patches/2.1.1-rt2600ac-device-02_network
patches/2.1.2-rt2600ac-device-01_leds
patches/2.1.2-rt2600ac-device-11_ath10k_caldata
patches/2.1.3-rt2600ac-device-core-dts_5.4
patches/2.1.3-rt2600ac-device-core-dts-0069
patches/2.3-umodinmkmods-nonoverride-image.mk
patches/2.3-umodinmkmods-nonoverride-kernel-defaultsOTHERTHANumodin
patches/2.3-umodinmkmods-nonoverride-rootfs.mk
patches/2.3.1-umodinmkmods-rootMakefile
patches/2.5.1-umodin.sh
patches/2.6.1-usbputter.sh
patches/2.7.1-rootdir-dts-version
patches/2.9.1-helper_br

I then used your 'config.seed.nonnss_202107142013_r17101-f4e3ff5b07' as .config, defconfig and menuconfig as check and seems fine, although I don't see the patchfiles there, but never done this so could be normal.

So I ended up with:
user@6a81f9260e6c:~/openwrt/openwrt$ ls -al bin/targets/ipq806x/generic/openwrt-ipq806x-generic-askey_rt4230w-rev6*
-rw-r--r-- 1 user user 43530510 Sep  5 08:04 bin/targets/ipq806x/generic/openwrt-ipq806x-generic-askey_rt4230w-rev6-ext4-sysupgrade.bin.gz
-rw-r--r-- 1 user user 30146803 Sep  5 08:03 bin/targets/ipq806x/generic/openwrt-ipq806x-generic-askey_rt4230w-rev6-initramfs-uImage
-rw-r--r-- 1 user user 40345875 Sep  5 08:04 bin/targets/ipq806x/generic/openwrt-ipq806x-generic-askey_rt4230w-rev6-rootfs.tar.gz
-rw-r--r-- 1 user user 33966888 Sep  5 08:04 bin/targets/ipq806x/generic/openwrt-ipq806x-generic-askey_rt4230w-rev6-squashfs-sysupgrade.bin
-rw-r--r-- 1 user user    11877 Sep  5 08:04 bin/targets/ipq806x/generic/openwrt-ipq806x-generic-askey_rt4230w-rev6.manifest

I'll need the openwrt-ipq806x-generic-askey_rt4230w-rev6-rootfs.tar.gz I assume on the second partition of the USB drive. But I wanted to check first if I'd done everything correct.

askey is not the right board...

details

yeah... if all the patches applied correctly there are 3 key manual steps that have to be done for the current usb hacks;

  1. Run make menuconfig select your ipq > rt2600ac
    and images > ext4/rootfs or whatever it's called

chmod +x ./scripts/umodin.sh
chmod +x target/linux/ipq806x/image/synology_gen_pat.sh

not sure about last one being yellow... could be because it's on the top... either way that one is not important...


o' I had to change the rootfs size in menuconfig too because we added so many packages... this is that absolute minimum seed

cat ../cache/rt2600ac-2021/config.seed.nonnss_202107142013_r17101-f4e3ff5b07 | grep -E '(TARGET_ROOTFS|CONFIG_TARGET_ipq806x)'

CONFIG_TARGET_ipq806x=y
CONFIG_TARGET_ipq806x_generic=y
CONFIG_TARGET_ipq806x_generic_DEVICE_synology_rt2600ac=y
CONFIG_TARGET_ROOTFS_EXT4FS=y
CONFIG_TARGET_ROOTFS_PARTSIZE=312
CONFIG_TARGET_ROOTFS_TARGZ=y

but you should have got these already when you did

cat config.seed.nonnss_202107142013_r17101-f4e3ff5b07 > .config
make defconfig

so probably your patches did not apply properly... they are made for 17101 or something and it's likely stuff has changed since then...

as discussed via pm... i've been holding off due to the of_macaddr stuff and forthcoming 5.10/dsa bumps to pass by... to do a rebase and when I do I can upload an already patched buildroot tree for you so it's frozen and you don't have to patch it...

or you can try to rewind to r17101 in which case they should apply properly... fixing them on your own is too much pain...


I added my r17101 boarddir to the repo and you can try replacing the dir;

rm -rf target/linux/ipq806x

with

mv ipq806x_r17101 target/linux/ipq806x

it's mega hacky but may just get you up and running...

(you will probably need a make clean or something to rescan the Makefiles then a redo the config.seed make defconfig step)

1 Like

I'll try your new advise later on, for now I simply wanted to check if the patches were taken into account or not. What's the easiest way to check? unpack the tar.gz and check some files?

as mentioned the tar.gz says askey... it is not correct...


the easist way is to read what it says after you type;

quilt push

when you applied the patches...


but for now you could check;

cat target/linux/ipq806x/image/Makefile | grep '= synology_rt2600'
1 Like