Script: GL.iNet Utils for GL.iNet routers

Building on the successful OpenSpeedTest script, I present a new utilities script for GL.iNet routers.

Features

  • :desktop_computer: Deep Hardware Insights – Total visibility into your CPU, RAM, and storage. Includes paged navigation for network interfaces and wireless radio details (Link speeds, MIMO, Channel bandwidth).

  • :shield: VPN Crypto Audit – Instantly verify if your hardware acceleration (AES-CE, NEON) is active at the kernel level for optimized OpenVPN and WireGuard performance.

  • :hammer_and_wrench: AdGuardHome Control Center – A central hub to toggle the service, manage/enable UI updates, and bulk manage a pre-set list of blocklists and allowlists. Manage persisting AdGuardHome updates through firmware updates.

  • :sos_button: Fail-Safe Recovery – "Industrial" self-healing logic. If your AGH binary or init scripts are corrupted, the script pulls pristine copies directly from the device's /rom to restore functionality.

  • :package: Surgical Backups for AdGuardHome – Precision-tracked AdGuardHome backups. Create, manage, and restore configurations, binaries, and init scripts with automated timestamping and integrity checks.

  • :floppy_disk: Zram Swap Management – Essential for lower-RAM travel routers like the Beryl 7. Easily install and tune compressed RAM swap to prevent out-of-memory crashes.

  • :bar_chart: Performance Benchmarks – Real-world testing including stressing CPU cycles, OpenSSL throughput, raw Disk and Memory I/O speeds, and DNS throughput compared to a Beryl 7 baseline.

  • :clipboard: Secure UCI Viewer – Quick, read-only access to your system config. Audit SSIDs, Wi-Fi keys, VPN tunnels, and GoodCloud settings without digging through the CLI.

  • :rocket: OpenSpeedTest Integration - Automated download and deployment of the OpenSpeedTest server script for optimized local network speed diagnostics.

  • :counterclockwise_arrows_button: Native Self-Updater – Stay current with zero effort. The script checks GitHub on launch and can perform an in-place update.

  • :free_button: GPL-3.0 Licensed – Free, open, and community-driven.

Tested on various GL.iNet models (Beryl, Beryl AX, Beryl 7, Slate 7, Flint 3, Flint 3e, etc.) running recent firmware.


:rocket: Installation

  1. SSH into your GL.iNet router:
ssh root@192.168.8.1

  1. Download the script:
wget -O glinet_utils.sh https://raw.githubusercontent.com/phantasm22/GL-iNet_utils/main/glinet_utils.sh && chmod +x glinet_utils.sh

  1. Run the script:
./glinet_utils.sh


12 Likes

Thank you for your contribution and for sharing!

That is awesome, I think this integrated script is very helpful for troubleshooting some issues.

5 Likes

New features added:

  • Real time monitoring:
    • Uptime
    • Load Average
    • CPU temperature
    • Fan speed
    • Used RAM
    • Free disk space

Located on page 1 of the hardware information page.

3 Likes

Thanks a lot for the script.

On Flint2 4.8.3-op24 I get this error:

┌────────────────────────────────────────────────┐
│ CPU Thermal Stress Test │
└────────────────────────────────────────────────┘

:warning: stress not found, installing...
:cross_mark: Failed to install stress

Press any key to continue...

Changed the script to stress-ng and it works. Maybe you can add a check and install stress-ng if needed :wink:

Thanks for the feedback. On gl firmware releases, there seems to be a bug with dependencies installing stress-ng that can cause the router to crash. I’ve added stress-ng as a backup in case stress package has been removed from the packages list. It’s good to know that stress-ng works on your setup. Please let me know if you find any other bugs.

3 Likes

Working great now :wink:

1 Like

I tweaked the UI for the benchmarks bringing some common UI elements across the benchmarks. Also added a new feature to install the Ookla Speedtest binary. Check it out.

3 Likes

Looking great :wink: Thanks!

Why would you need to stress test the cpu so much?

Mine stays at 50C at idle​:sob:

I have a fan on mine :smiley:

3 Likes

Some additional new features have been added:

  1. Support for LibreSpeed Test server install. This is a lightweight alternative to OpenSpeedTest Server. You can find this in the benchmarks menu.
  2. OpenSpeedTest server has been moved into the benchmarks menu
  3. New menu for system tweaks!
    1. Ultimate fan control that works with the UI. Change the min, max, power-on, and fan warning. Also force the fan on to max or min speed.
    2. Installation of Zram swap has been moved to this menu
    3. Package manager for common packages with persistence settings
    4. SSH Key management - avoid Luci and go lightweight with this key manager
  4. UI tweaks and bug fixes

4 Likes

Brand new system tweak feature!

Ever wanted to have an integrated terminal in your GL admin web-ui? No more loading putty or terminal. Just click the integrated terminal icon and access your router. Works with http and https admin consoles.

6 Likes

Isn’t this a package already in stock openwrt?

Unsure where I am going wrong here with LibreSpeed as service continues to appear to be “NOT INSTALLED” despite choosing to Install and Enable. Tried removing and reinstalling again as well as updating the script to no avail. Any help would be appreciated as I like the idea of trying this.

ttyd is a package that can be installed from the package manager but integrating into the gl-web-ui took some effort. :slight_smile:

3 Likes

Can you give me some more details here? What version firmware are you running (openwrt vs gl native)? Is this on the flint 2?

try running this and send me the output:

opkg update && opkg install librespeed-go && echo "INSTALL OK" || echo "INSTALL FAILED"
pidof librespeed-go && echo "RUNNING" || echo "NOT RUNNING"

1 Like

And it’s beautifully done. Thanks for the good work.

1 Like

Thanks @phantasm22 . Yes, running script on the Flint 2 with native beta firmware: mt6000-4.8.5_beta1-973-0325-1774408233. All other functions of the script appear to be working fine apart from enabling LibreSpeed. Here is the output you have requested:

1 Like

There it is. librespeed-go package is missing from the repo. I’ll add some better error handling to my script but at this point my suggestion would be to either use a different firmware release until it’s added to the package list or manually download librespeed. You could also install openspeedtest from the same menu of my script which is better imho.

@bruce - FYI - Can you add librespeed-go to your package list for this release?

3 Likes