Rpi4 < $(community_build)

fyi... you'll likely find this is from nlbwmon/collectd_sqm kicking up and gathering stats for brief spikes every 30seconds or so...

script2 partly addresses this (or provides tools to) or power users may wish to disable those either during testing or on an ongoing basis...

to be honest tho' i'm pretty damn happy with my 50/15... ( I have no idea what you guys would ever do with that kind of bandwidth... apart from maybe site-to-site large backups... sell it to the neighbours? )

yes... I am a little jealous... just a little :wink:

WG is capping everything around 500-700~ so I am running it client side.

Should I just test all the steps instead?

1 Like

totally up to you... you'll see slightly better cpu allocation... I mean... i've 'tested' already...

further testing is primarily to identify flaws or for advanced users to play around with the internal values... and offer improvements / optimisations...

mainly boils down to whether or not you feel you may need extra tweaks (early)

After some testing with with the second part, speeds dropped down to around 500 again. Don't know if theres anything else I have done for it to be like this or anything, but I will try on a fresh image tomorrow.

1 Like

Possibly just a small glitch in the 'enable' logic...

That post was updated as those scripts were changed from 'hardcoded-on' to 'check-for-enable' parameters... ( which will be inserted on upgrade and can be disabled );

PERFTWEAKS="default" #for /bin/rpi-perftweaks.sh
PACKETSTEERING=1     #for 20-smp

if you do not have the above in /root/wrt.ini they will not run... ( that is the intention anyway )...

to debug or verify...

##################### reboot then
dmesg | grep perftweak
##################### and/or
cat /root/wrt.ini | grep -E '(PERFTWEAK|^PF|PACKET)'

edit: /etc/perftweaks.txt

I have now also added preliminary support for /etc/perftweaks.txt... it hopefully should allow those with basic nano/vim skills to test out basic modifications to rpi-perftweaks.sh without having to dig into the messy code... i.e.;

### [root@dca632 /usbstick 45°]# cat /etc/perftweaks.txt | grep -Ev '(^$|^#)'

renice fish 25
irqaffinity 26 2
taskset vsftpd 1

at present it only supports the features above (no scaling)

500/50 mbit for me and sister. I have a big unraid server at home. Countless backups, dockers and vms are running. I use about 10tb of traffic per month.

I will upgrade my isp once more upload is available :stuck_out_tongue:

2 Likes

Can someone here try a double WAN setup in our rpi4 OpenWrt? I'm planning to set up a dual isp connection in one router if it's possible :grinning:

This is not build-specific question, please open a new topic.

2 Likes

Without going into too much detail, yes dual WAN works.
I have been using this build for about 2.5 months and only recently setup dual WAN (about 3 weeks).
Load balancing and fail over works, all good so far.
By the way, just want to say thank you to @anon50098793 for the amazing work on this build, thank you.

4 Likes

nice.. thanks for the answer I will try :heart_eyes:

GET SOME AP INFO (2.9.17-71+)

As it's been recommended to use an external ap... whipped up an extremely-dodgy/semi-functional method to show some stuff on the bootstrap login footer...

/bin/wirelessinfo.sh.sample
#!/bin/sh
#EDIT: probably needs this in /root/wrt.ini LUCIQRCODES=1 #should already be there?

################################### setup for bootstrap only 'login' page get AP clients(and add dhcp4)
#scp /bin/www_cgi-bin_getinfo.sh root@<AP-IP>:/www/cgi-bin/getinfo.sh
#change AP_ip variable below and save
#cp /bin/wirelessinfo.sh.sample /bin/wirelessinfo.sh
######################################################################################################
######################################################################################################
###NOTE: you can also put the ssid:passwd into /etc/luciqrcodes.txt; i.e.: WIFINAME PASSWORD
###      to show the off router qrcode

AP_ip="10.2.3.17"
curl http://${AP_ip}/cgi-bin/getinfo.sh?apinfo=brief | while read THIS; do
	if grep -q "$THIS" /tmp/dhcp.leases; then
		echo "$(grep "$THIS" /tmp/dhcp.leases)"
	else
		echo "$THIS"
	fi
done

you can just create /bin/wirelessinfo.sh with whatever you want to run or if the AP is openwrt... there is a restfull-ish sample included in...

enough for my needs... but would be great to see someone pimp it out...

1 Like

2 questions

  1. Can we use multiple ethernet dongles on a hub and not have to manually intervene to mount the correct physical port?

  2. has anyone gotten APC USB monitor working? The USB Serial interface is not where it's expected to be and when I found it, doesn't seem to work. I've followed the USB debug instructions in other forums and I am wondering if it is a PI issue.

  1. read post 642

  2. not enough info... maybe try on an official build or remove/add modeswitch / kmods ( kernel modules ) ... exotic hardware typically involves low(er) level interactions...

@anon50098793 I find packet steering to actually result in slightly lower performance on FiOS 1G/1G. It shouldn't help, as with an USB-based WAN there's only one queue, so there isn't really anything to steer. irqbalance (or manual redistribution of interrupts), however, is absolutely critical.

2 Likes

thankyou... comments have been noted. ( usb bit is especially interesting... )

ini-recipe
PERFTWEAKS=1
IRQMANAGEMENT="irqbalance"
#PACKETSTEERING= #OFF

edit: just benched your settings and indeed they are working well... seems I must have forgot to run the '-R' iperf3 benchs on the initial dummy values...

i've updated the defaults... and will probably switch to what you have in a month or so if nothing else comes to light...

(anyone with wan over 390Mb/s should use the above recipe or curl the updates 20-smp and rpi-perftweaks.sh from github )

or you can set;

PERFTWEAKS=1
PFAFFINITY="32:1 33:2 26:f"

which was the key change...

cheers!

:mechanical_arm:

1 Like

A couple followup points:

  • Packet steering might make sense in one particular case - using only the onboard gigabit port and VLANning it into WAN and LAN. Having 5 transmit queues available to the Broadcom driver would likely make steering make sense there (but I have not tested such a configuration). Note to testers: You won't see any payoff with iperf. Queue hashing is done by IP/port modulo queue slot, so unless you have at least 5 separate network streams going, you won't see any potential benefit...this is a real-world test scenario, not lab-based.

  • I genuinely believe the business of Realtek (RTL8152/UE300) vs. Asix (AX88179) is apocryphal with no real benefit of one over the other. I never did any heavy testing, but all of my early testing/dev work was on Asix (Amazon's variant, specifically), and I never noted any unusual performance characteristics or issues. My production setup is on UE300, but I may go back and run a week or two on Asix just to get a better real-world feel for this.

  • I was stunned at how easily GPIO-throttled cooling works. See this post for details:

4 Likes

@anon50098793 I read post 642. In the utilities folder there are 2 nicmove scripts, 000-nicmove and 000-nicmove-w-macaddr.

Which one should I use? Do I have to do anything more than adding macmatch and downloading to /etc/hotplug.d/net/?

On the performance side, had no issues getting 350mb through the base setup with a USB dongle to WAN and ETH0 to the test machine.

1 Like

you could try either... the key is that you'll need to move BOTH interfaces to something free...

this may be tricky... as applying these settings may lock you out... best to copy/backup the /etc/config/network original... ( preferrably on a pc that can mount ext4 )

then switch the ifnames for wan and lan to whatever the new names are... ( eth0 > nic0, eth1 > nic1 )... then reboot and cross your fingers...

any other references in your config will need to be altered too... ( /etc/config/luci_statistics?, /etc/config/sqm? etc. etc.)

nope... that's pretty much correct...

just macmatch and ifname (new ifname)@/etc/config/network>interface/s

ACME POSSIBLE INADVERTENT and NONFUNCTIONAL(when disabled) CRONTAB ENTRY

verbage

Just noticed a fairly benign bug... albeit 'of-note' re: acme... in that it seems to have inserted itself within my crontab even though it has never been enabled ( does not actually do anything... but i'd prefer to it didn't add itself to cron if it's not enabled )

Steps to mitigate this (workaround) have been implemented for releases over 2.9.17-109+ ...

Users of acme (service) may wish to ensure that 'acme' is in the list of your ENABLEDSERVICES at/root/wrt.ini before the next upgrade (then double check your cron if needed after upgrade &&|| dmesg | grep acme)

Users who don't use acme can comment out the offending line (if present) in /etc/crontabs/root or luci > scheduled-tasks;

#0 0 * * * /etc/init.d/acme start

then restart the cron service... (or just ignore it as it seems to do nothing and will be taken care of in the next update)