spdMerlin spdMerlin - v4.x - speedtest and bandwidth monitoring

itibi

Regular Contributor
Hi! @JackYaz,

Here is my contribution for adding support of RT-AC3200 (arch=armv7l) on your excellent spdmerlin addon
for asuswrt-merlin 384.13_10

within spdmerlin-4.4.3.zip

within spdmerlin.sh
--- spdmerlin.sh.ori
+++ spdmerlin.sh
@@ -49,7 +49,9 @@
[ -z "$(nvram get odmpid)" ] && ROUTER_MODEL=$(nvram get productid) || ROUTER_MODEL=$(nvram get odmpid)
[ -f /opt/bin/sqlite3 ] && SQLITE3_PATH=/opt/bin/sqlite3 || SQLITE3_PATH=/usr/sbin/sqlite3

-[ "$(uname -m)" = "aarch64" ] && ARCH="aarch64" || ARCH="arm"
+ARCH="armrh"
+[ "$(uname -m)" = "aarch64" ] && ARCH="aarch64"
+[ "$(uname -m)" = "armv7l" ] && ARCH="armel"

### End of script variables ###

### Start of output format variables ###

I didn't know the correct way to add this code proposal to your GitHub repository
 
Last edited:

Jack Yaz

Part of the Furniture
Great!!! Thanks!!! BTW I did my best coding after 1 AM.... Of course did mostly scripting but not in Unix Shells, I am a mainframe person. REXX was my language of choice.
fixed in v4.4.4 which i just pushed
 

Jack Yaz

Part of the Furniture
v4.4.4 is now available
Changelog:

  • FIXED: Incorrect syntax used in some SQLite calls, which would prevent new installations from succeeding - thanks @Lord Lovaduck
 

Jack Yaz

Part of the Furniture
In the cli? Yes confirmed.
can you send me a copy of your config please? it should be in either /jffs/addons/spdmerlin.d or /opt/share/spdmerlin.d
 

pinkgrae

Regular Contributor
Here you go:
Code:
PREFERREDSERVER_WAN=0|None configured
USEPREFERRED_WAN=false
AUTOMATED=true
OUTPUTTIMEMODE=unix
STORAGELOCATION=usb
PREFERREDSERVER_VPNC1=0|None configured
USEPREFERRED_VPNC1=false
PREFERREDSERVER_VPNC2=0|None configured
USEPREFERRED_VPNC2=false
PREFERREDSERVER_VPNC3=0|None configured
USEPREFERRED_VPNC3=false
PREFERREDSERVER_VPNC4=0|None configured
USEPREFERRED_VPNC4=false
PREFERREDSERVER_VPNC5=0|None configured
USEPREFERRED_VPNC5=false
AUTOBW_ENABLED=false
AUTOBW_SF_DOWN=95
AUTOBW_SF_UP=95
AUTOBW_ULIMIT_DOWN=0
AUTOBW_LLIMIT_DOWN=0
AUTOBW_ULIMIT_UP=0
AUTOBW_LLIMIT_UP=0
STORERESULTURL=true
EXCLUDEFROMQOS=true
AUTOBW_THRESHOLD_UP=10
AUTOBW_THRESHOLD_DOWN=10
SCHDAYS=*
SCHHOURS=*
SCHMINS=11,41
AUTOBW_AVERAGE_CALC=10
DAYSTOKEEP=60
LASTXRESULTS=25
SPEEDTESTBINARY=builtin
 

pinkgrae

Regular Contributor
OK, hold horses, skynet has now stopped displaying statistics in the webgui as well. Obviously something more sinister is going on - let me play around for a bit.
 

pinkgrae

Regular Contributor
can you send me a copy of your config please? it should be in either /jffs/addons/spdmerlin.d or /opt/share/spdmerlin.d
Got it - seems like a dodgy usb stick causing some issues, or maybe a lesson not to forget to reboot after updating firmware (which I forgot with 386.4). Anyway, I set all addons to run from / report to jffs, replaced the usb stick, rebooted the router a couple of times and behold - clickable URLs in the spdmerlin webgui and .csv files!

Apologies for wasting your time Jack...
 

Jack Yaz

Part of the Furniture
Got it - seems like a dodgy usb stick causing some issues, or maybe a lesson not to forget to reboot after updating firmware (which I forgot with 386.4). Anyway, I set all addons to run from / report to jffs, replaced the usb stick, rebooted the router a couple of times and behold - clickable URLs in the spdmerlin webgui and .csv files!

Apologies for wasting your time Jack...
i'm glad you found the cause, i was scratching my head a bit!
 

Lord Lovaduck

Regular Contributor
Ah f**k that's a rookie error on my part. When I cleaned up swallowing of any errors i deleted a vital part of some of the commands. I'll ship a fix first thing in the morning. 1am here, not a good time to start coding!
Hello again! Well, found 4.4.4, installed it. We've made progress. The first error about permissions has cleared both in Merlin 386.4 and in John's fork 374.43.
SpdMerlin works fine in Merlin, initial and scheduled speedtests run, and the web page is properly set.
With John's fork is more complicated. There I installed SpdMerlin from scratch (with that I mean, the USB drive was freshly formatted, JFFS formatted as well, used AMTM script to create 2GB swap and to install Entware).
Initial installation goes past the permissions error. Then I get the missing PrintF messages again, and the initial speedtest fails. I tried both builtin and external... Here's the script output:

Code:
New version of spdstats_www.asp downloaded

Mounting WebUI tab for spdMerlin

Mounted spdMerlin WebUI page as user1.asp

New version of shared-jy.tar.gz downloaded

Upgrading database...

Error: near line 4: no such function: printf
(Repeats 180 times total)
Error: near line 4: no such function: printf
Database ready, continuing...

Starting speedtest using auto-selected server for WAN interface

Error running speedtest for WAN

Retrieving data for WebUI charts

Error: near line 4: no such function: printf
(Repeats 180 times total)
Error: near line 4: no such function: printf

A couple observations. I did various tests:
Force reinstall, no change.
Swapped built-in with external speed test, no change.
The SpdMerlin webui page kinda works, at least it did when I performed an initial dirty install where I had Conmon and SCMerlin. Then it didn't properly install again.
The PrintF error didn't appear when reinstalling. I always get Error running speedtest for WAN

Why the difference with John's fork, it's unclear to me I guess some functions or commands are not there or are slightly different. It's a pain to support different levels of code, I know.

Thanks for the help Jack. It's around midnight or one AM for you I guess.... So you have a good night!
 
Last edited:

Jack Yaz

Part of the Furniture
Hello again! Well, found 4.4.4, installed it. We've made progress. The first error about permissions has cleared both in Merlin 386.4 and in John's fork 374.43.
SpdMerlin works fine in Merlin, initial and scheduled speedtests run, and the web page is properly set.
With John's fork is more complicated. There I installed SpdMerlin from scratch (with that I mean, the USB drive was freshly formatted, JFFS formatted as well, used AMTM script to create 2GB swap and to install Entware).
Initial installation goes past the permissions error. Then I get the missing PrintF messages again, and the initial speedtest fails. I tried both builtin and external... Here's the script output:

Code:
New version of spdstats_www.asp downloaded

Mounting WebUI tab for spdMerlin

Mounted spdMerlin WebUI page as user1.asp

New version of shared-jy.tar.gz downloaded

Upgrading database...

Error: near line 4: no such function: printf
(Repeats 180 times total)
Error: near line 4: no such function: printf
Database ready, continuing...

Starting speedtest using auto-selected server for WAN interface

Error running speedtest for WAN

Retrieving data for WebUI charts

Error: near line 4: no such function: printf
(Repeats 180 times total)
Error: near line 4: no such function: printf

A couple observations. I did various tests:
Force reinstall, no change.
Swapped built-in with external speed test, no change.
The SpdMerlin webui page kinda works, at least it did when I performed an initial dirty install where I had Conmon and SCMerlin. Then it didn't properly install again.
The PrintF error didn't appear when reinstalling. I always get Error running speedtest for WAN

Why the difference with John's fork, it's unclear to me I guess some functions or commands are not there or are slightly different. It's a pain to support different levels of code, I know.

Thanks for the help Jack. It's around midnight or one AM for you I guess.... So you have a good night!
i suppose i should flash my 68U with john's fork - which version are you on?
 

Lord Lovaduck

Regular Contributor
i suppose i should flash my 68U with john's fork - which version are you on?
Thanks Jack! Latest I believe. 374.43
Router says 374.43_52E7j9527
If you install it, you might want to check ConMon's webui page as well, it goes into a never ending "processing" screen...
Take care!
P.S. I can certainly reinstall it with debugging options set to get a trace, if that would help.
 
Last edited:

businessmonkey09

New Around Here
I can not seem to get the test to run with speedtest-cli. I have reset the add-on and restarted the router multiple times and still nothing. Am I missing a step?
 

itibi

Regular Contributor
@businessmonkey09: What is your router model ?
What is your asuswrt-merlin version ?
 
Last edited:

itibi

Regular Contributor
I don't know which architecture RT-AC88U is using!
Can you try the 'uname -m' command ? Mine said armv7l for RT-AC3200

Maybe, armel is compatible with your modem.
 
Last edited:

itibi

Regular Contributor
Your next 'spdmerlin update' command will revert this workaround patch

[ -z "$(nvram get odmpid)" ] && ROUTER_MODEL=$(nvram get productid) || ROUTER_MODEL=$(nvram get odmpid)
echo $ROUTER_MODEL
uname -m
cd /tmp
for ARCH in armel armhf aarch64 i386 x86_64
do
echo Testing $ARCH
wget -q https://install.speedtest.net/app/cli/ookla-speedtest-1.1.1-linux-$ARCH.tgz
tar -xzf ookla-speedtest-1.1.1-linux-$ARCH.tgz
if /tmp/speedtest; then
echo
echo Your modem is using $ARCH version of speedtest-cli
echo Patch is applied NOW. will be active UNTIL NEXT spdmerlin update
cp -v /tmp/speedtest /jffs/addons/spdmerlin.d/ookla
exit
fi
done
echo sorry, NO compatible speedtest-cli for your architecture
 
Last edited:

iTyPsIDg

Regular Contributor
@Jack Yaz - Do you think you could add an option for spdMerlin to test all active connections? The use case is that I'm now using VPNMON, and it is going to select a VPN client randomly. spdMerlin won't let me select inactive connections so won't test all of my active connections if the VPN client changes.
 

Viktor Jaep

Very Senior Member
@Jack Yaz - Do you think you could add an option for spdMerlin to test all active connections? The use case is that I'm now using VPNMON, and it is going to select a VPN client randomly. spdMerlin won't let me select inactive connections so won't test all of my active connections if the VPN client changes.
That's a great suggestion, @iTyPsIDg ... I ran into that same issue, and decided to just be satisfied with testing the main WAN connection on a regular interval. But it would sure be nice ... I'm wondering if there's another integration opportunity here to update spdMerlin with the latest VPN slot. I'll look into it! :)
 

zer0bitz

Occasional Visitor
Hello! I setup spdMerlin yesterday and now I want to change some settings but as I try to do anything I get these error messages. What should I do? I have a Kingston 32 gig USB-stick mounted to USB 3.0 port and its running swap file which is 10 gigabytes. I have 18 gigs of free space left, but its still saying I dont have space on device.

sed: can't create temp file '/jffs/addons/spdmerlin.d/configyXCk2P': No space left on device
sed: can't create temp file '/jffs/addons/spdmerlin.d/configXYXw9N': No space left on device
sed: can't create temp file '/jffs/addons/spdmerlin.d/configQgbo2Q': No space left on device
 

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top