From bfd4b31fea16a8f95a860b97ad983c3c39290b99 Mon Sep 17 00:00:00 2001 From: Cameron Thompson <50184035+iamromulan@users.noreply.github.com> Date: Sun, 7 Jul 2024 20:15:59 -0400 Subject: [PATCH] Initial Commit Start new branch for development on new 64bit x75 platfom. --- Belowx65Toolkit/LICENSE | 22 ++ Belowx65Toolkit/README.md | 158 +++++++++ .../RMxxx_rgmii_toolkit.sh | 0 .../installentware.sh | 0 .../simpleadmin}/.rev | 0 .../simpleadmin}/console/.profile | 0 .../simpleadmin}/console/menu/LAN_settings.sh | 0 .../console/menu/sfirewall_settings.sh | 0 .../simpleadmin}/console/menu/start_menu.sh | 0 .../console/services/ethernet_watchdog.sh | 0 .../console/services/ping_watchdog.sh | 0 .../services/systemd/ping_watchdog.service | 0 .../simpleadmin}/console/ttyd.bash | 0 .../simpleadmin}/htpasswd | Bin .../simpleadmin}/lighttpd.conf | 0 .../simpleadmin}/script/create_watchcat.sh | 0 .../simpleadmin}/script/remove_watchcat.sh | 0 .../simpleadmin}/script/ttl_script.sh | 0 .../simpleadmin}/simplepasswd | 0 .../simpleadmin}/systemd/lighttpd.service | 0 .../simpleadmin}/systemd/ttyd.service | 0 .../simpleadmin}/www/cgi-bin/get_atcommand | 0 .../simpleadmin}/www/cgi-bin/get_ping | 0 .../simpleadmin}/www/cgi-bin/get_ttl_status | 0 .../simpleadmin}/www/cgi-bin/get_uptime | 0 .../www/cgi-bin/get_watchcat_status | 0 .../simpleadmin}/www/cgi-bin/send_sms | 0 .../simpleadmin}/www/cgi-bin/set_ttl | 0 .../simpleadmin}/www/cgi-bin/set_watchcat | 0 .../simpleadmin}/www/cgi-bin/watchcat_maker | 0 .../simpleadmin}/www/css/bootstrap.min.css | 0 .../simpleadmin}/www/css/styles.css | 0 .../simpleadmin}/www/deviceinfo.html | 0 .../simpleadmin}/www/favicon.ico | Bin .../simpleadmin}/www/index.html | 0 .../simpleadmin}/www/js/alpinejs.min.js | 0 .../www/js/bootstrap.bundle.min.js | 0 .../simpleadmin}/www/js/dark-mode.js | 0 .../simpleadmin}/www/js/generate-freq-box.js | 0 .../simpleadmin}/www/js/parse-settings.js | 0 .../simpleadmin}/www/js/populate-checkbox.js | 0 .../simpleadmin}/www/network.html | 0 .../simpleadmin}/www/scanner.html | 0 .../simpleadmin}/www/settings.html | 0 .../simpleadmin}/www/sms.html | 0 .../simpleadmin}/www/watchcat.html | 0 .../simpleadmin}/www/watchcat_backup.html | 0 .../simplefirewall}/.rev | 0 .../simplefirewall}/simplefirewall.sh | 0 .../systemd/simplefirewall.service | 0 .../systemd/ttl-override.service | 0 .../simplefirewall}/ttl-override | 0 .../simplefirewall}/ttlvalue | 0 .../simpleupdates}/.rev | 0 .../scripts/update_simpleadmin.sh | 0 .../scripts/update_simplefirewall.sh | 0 .../scripts/update_simpleupdates.sh | 0 .../scripts/update_socat-at-bridge.sh | 0 .../simpleupdates}/scripts/update_sshd.sh | 0 .../scripts/update_tailscale.sh | 0 .../simpleupdates}/simpleadmin.conf | 0 .../simpleupdates}/simpleupdate | 0 .../systemd/simpleupdated.service | 0 .../socat-at-bridge}/.rev | 0 .../socat-at-bridge}/atcmd | 0 .../socat-at-bridge}/killsmd7bridge | 0 .../socat-at-bridge}/socat-armel-static | Bin .../socat-killsmd7bridge.service | 0 .../socat-smd11-from-ttyIN.service | 0 .../socat-smd11-to-ttyIN.service | 0 .../systemd_units/socat-smd11.service | 0 .../socat-smd7-from-ttyIN2.service | 0 .../socat-smd7-to-ttyIN2.service | 0 .../systemd_units/socat-smd7.service | 0 {sshd => Belowx65Toolkit/sshd}/.rev | 0 {sshd => Belowx65Toolkit/sshd}/sshd.service | 0 {tailscale => Belowx65Toolkit/tailscale}/.rev | 0 .../systemd/tailscale-webui-trigger.service | 0 .../systemd/tailscale-webui.service | 0 .../tailscale}/systemd/tailscaled.defaults | 0 .../tailscale}/systemd/tailscaled.service | 0 RM55x_rcPCIe_toolkit.sh | 308 ++++++++++++++++++ init.d/mount-fix | 111 +++++++ 83 files changed, 599 insertions(+) create mode 100644 Belowx65Toolkit/LICENSE create mode 100644 Belowx65Toolkit/README.md rename RMxxx_rgmii_toolkit.sh => Belowx65Toolkit/RMxxx_rgmii_toolkit.sh (100%) rename installentware.sh => Belowx65Toolkit/installentware.sh (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/.rev (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/console/.profile (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/console/menu/LAN_settings.sh (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/console/menu/sfirewall_settings.sh (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/console/menu/start_menu.sh (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/console/services/ethernet_watchdog.sh (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/console/services/ping_watchdog.sh (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/console/services/systemd/ping_watchdog.service (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/console/ttyd.bash (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/htpasswd (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/lighttpd.conf (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/script/create_watchcat.sh (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/script/remove_watchcat.sh (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/script/ttl_script.sh (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/simplepasswd (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/systemd/lighttpd.service (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/systemd/ttyd.service (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/cgi-bin/get_atcommand (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/cgi-bin/get_ping (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/cgi-bin/get_ttl_status (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/cgi-bin/get_uptime (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/cgi-bin/get_watchcat_status (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/cgi-bin/send_sms (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/cgi-bin/set_ttl (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/cgi-bin/set_watchcat (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/cgi-bin/watchcat_maker (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/css/bootstrap.min.css (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/css/styles.css (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/deviceinfo.html (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/favicon.ico (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/index.html (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/js/alpinejs.min.js (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/js/bootstrap.bundle.min.js (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/js/dark-mode.js (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/js/generate-freq-box.js (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/js/parse-settings.js (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/js/populate-checkbox.js (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/network.html (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/scanner.html (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/settings.html (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/sms.html (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/watchcat.html (100%) rename {simpleadmin => Belowx65Toolkit/simpleadmin}/www/watchcat_backup.html (100%) rename {simplefirewall => Belowx65Toolkit/simplefirewall}/.rev (100%) rename {simplefirewall => Belowx65Toolkit/simplefirewall}/simplefirewall.sh (100%) rename {simplefirewall => Belowx65Toolkit/simplefirewall}/systemd/simplefirewall.service (100%) rename {simplefirewall => Belowx65Toolkit/simplefirewall}/systemd/ttl-override.service (100%) rename {simplefirewall => Belowx65Toolkit/simplefirewall}/ttl-override (100%) rename {simplefirewall => Belowx65Toolkit/simplefirewall}/ttlvalue (100%) rename {simpleupdates => Belowx65Toolkit/simpleupdates}/.rev (100%) rename {simpleupdates => Belowx65Toolkit/simpleupdates}/scripts/update_simpleadmin.sh (100%) rename {simpleupdates => Belowx65Toolkit/simpleupdates}/scripts/update_simplefirewall.sh (100%) rename {simpleupdates => Belowx65Toolkit/simpleupdates}/scripts/update_simpleupdates.sh (100%) rename {simpleupdates => Belowx65Toolkit/simpleupdates}/scripts/update_socat-at-bridge.sh (100%) rename {simpleupdates => Belowx65Toolkit/simpleupdates}/scripts/update_sshd.sh (100%) rename {simpleupdates => Belowx65Toolkit/simpleupdates}/scripts/update_tailscale.sh (100%) rename {simpleupdates => Belowx65Toolkit/simpleupdates}/simpleadmin.conf (100%) rename {simpleupdates => Belowx65Toolkit/simpleupdates}/simpleupdate (100%) rename {simpleupdates => Belowx65Toolkit/simpleupdates}/systemd/simpleupdated.service (100%) rename {socat-at-bridge => Belowx65Toolkit/socat-at-bridge}/.rev (100%) rename {socat-at-bridge => Belowx65Toolkit/socat-at-bridge}/atcmd (100%) rename {socat-at-bridge => Belowx65Toolkit/socat-at-bridge}/killsmd7bridge (100%) rename {socat-at-bridge => Belowx65Toolkit/socat-at-bridge}/socat-armel-static (100%) rename {socat-at-bridge => Belowx65Toolkit/socat-at-bridge}/systemd_units/socat-killsmd7bridge.service (100%) rename {socat-at-bridge => Belowx65Toolkit/socat-at-bridge}/systemd_units/socat-smd11-from-ttyIN.service (100%) rename {socat-at-bridge => Belowx65Toolkit/socat-at-bridge}/systemd_units/socat-smd11-to-ttyIN.service (100%) rename {socat-at-bridge => Belowx65Toolkit/socat-at-bridge}/systemd_units/socat-smd11.service (100%) rename {socat-at-bridge => Belowx65Toolkit/socat-at-bridge}/systemd_units/socat-smd7-from-ttyIN2.service (100%) rename {socat-at-bridge => Belowx65Toolkit/socat-at-bridge}/systemd_units/socat-smd7-to-ttyIN2.service (100%) rename {socat-at-bridge => Belowx65Toolkit/socat-at-bridge}/systemd_units/socat-smd7.service (100%) rename {sshd => Belowx65Toolkit/sshd}/.rev (100%) rename {sshd => Belowx65Toolkit/sshd}/sshd.service (100%) rename {tailscale => Belowx65Toolkit/tailscale}/.rev (100%) rename {tailscale => Belowx65Toolkit/tailscale}/systemd/tailscale-webui-trigger.service (100%) rename {tailscale => Belowx65Toolkit/tailscale}/systemd/tailscale-webui.service (100%) rename {tailscale => Belowx65Toolkit/tailscale}/systemd/tailscaled.defaults (100%) rename {tailscale => Belowx65Toolkit/tailscale}/systemd/tailscaled.service (100%) create mode 100644 RM55x_rcPCIe_toolkit.sh create mode 100644 init.d/mount-fix diff --git a/Belowx65Toolkit/LICENSE b/Belowx65Toolkit/LICENSE new file mode 100644 index 0000000..e90cf5c --- /dev/null +++ b/Belowx65Toolkit/LICENSE @@ -0,0 +1,22 @@ +MIT License with Additional Stipulations + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +1. A clear and visible attribution to the original author (you) must be provided in an obvious place in any product, documentation, or interface where the software is utilized. This attribution should include your name and a reference to the original source repository. + +2. The Software, or any modified version of it, must not be sold or charged for. However, selling physical products that include the Software is permitted, provided that a clear and visible attribution to the original author (you) is included in an obvious place in the product or accompanying documentation. + +3. Any modifications made to the Software must be made available upon request by any party. This includes providing access to the modified source code, along with any accompanying documentation necessary for understanding the modifications. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Belowx65Toolkit/README.md b/Belowx65Toolkit/README.md new file mode 100644 index 0000000..e930535 --- /dev/null +++ b/Belowx65Toolkit/README.md @@ -0,0 +1,158 @@ +# RGMII Toolkit +Software deployment Toolkit for Quectel RM5xxx series 5G modems utilizing an m.2 to RJ45 adapter (RGMII) + +Current Branch: **Development** + +Please PR to this branch instead of main :) + +Fork development, and PR development to development :) + + +#### [JUMP TO HOW TO USE](#how-to-use) +**Currently:** This will allow you to install or if already installed, update, remove, or modify: + - Simple Admin: A simple web interface for managing your Quectel m.2 modem through it's gateway address + - It will install socat-at-bridge: sets up ttyOUT and ttyOUT2 for AT commands. You'll be able to use the `atcmd` command as well for an interactive at command session from adb, ssh, or ttyd + - It will install simplefirewall: A simple firewall that blocks definable incoming ports and a TTL mangle option/modifier. As of now only the TTL is controllable through Simple Admin. You can edit port block options and TTL from the 3rd option in the toolkit + - Tailscale: A magic VPN for accessing Simple Admin, SSH, and ttyd on the go. The Toolkit installs the Tailscale client directly to the modem and allows you to login and configure other settings. Head over to tailscale.com to sign up for a free account and learn more. + - Schedule a Daily Reboot at a specified time + - A fix for certain modems that don't start in CFUN=1 mode + - Entware/OPKG: A package installer/manager/repo + - Run `opkg help` to see how to use it + - These packages are installable: https://bin.entware.net/armv7sf-k3.2/Packages.html + - TTYd: A shell session right from your browser + - Currently this uses port 443 but SSL/TLS is not in use (http only for now) + - Entware/OPKG is required so it will install it if it isn't installed + - This will replace the stock Quectel login and passwd binaries with ones from entware + + + +**My goal** is for this to also include any new useful scripts or software for this modem and others that support RGMII mode. +## Screenshots + +![Home Page](https://github.com/iamromulan/quectel-rgmii-configuration-notes/blob/main/images/iamromulansimpleindex.png?raw=true) +![AT Commands](https://github.com/iamromulan/quectel-rgmii-configuration-notes/blob/main/images/iamromulanatcommands.png?raw=true) +![TTL](https://github.com/iamromulan/quectel-rgmii-configuration-notes/blob/main/images/iamromulansimpleTTL.png?raw=true) +![Toolkit](https://github.com/iamromulan/quectel-rgmii-configuration-notes/blob/main/images/iamromulantoolkit.png?raw=true) + +# Devleopment Branch: the below commands will download the beta/work in progress toolkit + +## How to Use +**To run the Toolkit:** + - Open ADB & Fastboot++ covered in [Using ADB](https://github.com/iamromulan/quectel-rgmii-configuration-notes?tab=readme-ov-file#unlocking-and-using-adb) or just use adb + - Make sure your modem is connected by USB to your computer + - Run `adb devices` to make sure your modem is detected by adb + - Run `adb shell ping 8.8.8.8` to make sure the shell can access the internet. If you get an error, make sure the modem is connected to a cellular network and make sure `AT+QMAPWAC=1` as covered in the troubleshooting section: [I Can't get internet access from the Ethernet port (Common)](https://github.com/iamromulan/quectel-rgmii-configuration-notes/tree/main?tab=readme-ov-file#i-cant-get-internet-access-from-the-ethernet-port-common) + - If you don't get an error you should be getting replies back endlessly, press `CTRL-C` to stop it. + - Simply Copy/Paste this into your Command Prompt/Shell +```bash +adb shell "cd /tmp && wget -O RMxxx_rgmii_toolkit.sh https://raw.githubusercontent.com/iamromulan/quectel-rgmii-toolkit/development/RMxxx_rgmii_toolkit.sh && chmod +x RMxxx_rgmii_toolkit.sh && ./RMxxx_rgmii_toolkit.sh" && cd / +``` + +**Or, if you want to stay in the modems shell when you are done** + +``` +adb shell +``` +Then run +``` +cd /tmp && wget -O RMxxx_rgmii_toolkit.sh https://raw.githubusercontent.com/iamromulan/quectel-rgmii-toolkit/development/RMxxx_rgmii_toolkit.sh && chmod +x RMxxx_rgmii_toolkit.sh && ./RMxxx_rgmii_toolkit.sh && cd / +``` +**You should see:** +![Toolkit](https://github.com/iamromulan/quectel-rgmii-configuration-notes/blob/main/images/iamromulantoolkit.png?raw=true) + +## Tailscale Installation and Config + +> :warning: Your modem must already be connected to the internet for this to install +### Installation: +Open up the toolkit main menu and **press 4** to enter the Tailscale menu + +![Toolkit](https://github.com/iamromulan/quectel-rgmii-configuration-notes/blob/main/images/tailscalemenu.png?raw=true) + +**Press 1, wait for it to install. This is a very large file for the system so give it some time.** + +**Once done and it says Tailscale installed successfully press 2/enter to configure it.** + +![Toolkit](https://github.com/iamromulan/quectel-rgmii-configuration-notes/blob/main/images/tailscaleconfig.png?raw=true) + +If you want to, enable the Tailscale Web UI on port 8088 for configuration from the browser later by **pressing 1/enter**. + +To do it in the toolkit: +First time connecting you'll be given a link to login with + - Press 3 to just connect only. + - Press 4 to connect and enable SSH access (remote command line) over tailscale. + - Press 5 to reconnect with SSH off while connected with SSH on + - Press 6 to disconnect + - Press 7 to Logout + +That's it! From another device running tailscale you should be able to access your modem through the IP assigned to it by your tailnet. To access SSH from another device on the tailnet, open a terminal/command prompt and type + + tailscale ssh root@(IP or Hostname) +IP or Hostname being the IP or hostname assigned to it in your tailnet + + - Note that your SSH client must be able to give you a link to sign in with upon connecting. That's how the session is authorized. Works fine in Windows CMD or on Android use JuiceSSH. +## Advanced/Beta + +### Entware/OPKG installation + + +It isn't perfect yet so it goes here under Advanced/Beta for now. +Here's what you gotta know about going into it: + + - After installing, the `opkg` command will work + - You can run `opkg list` to see a list of installable packages, or head over to https://bin.entware.net/armv7sf-k3.2/Packages.html + - Everything opkg does is installed to /opt + - `/opt` is actually located at `/usrdata/opt` to save space but is + mounted at `/opt` + - Anything `opkg` installs will not be available in the system path by + default but you can get around this either: + +#### Temporarily: + Run this at the start of each adb shell or SSH shell session + + export PATH=/opt/bin:/opt/sbin:$PATH + +#### Permanently: +Symbolic linking each binary installed by the package to `/bin` and `/sbin` from `/opt/bin` and `/opt/sbin` +For example, if you were to install zerotier: + + opkg install zerotier + ln -sf /opt/bin/zerotier-one /bin + ln -sf /opt/bin/zerotier-cli /bin + ln -sf /opt/bin/zerotier-idtool /bin + +Now you can run those 3 binaries from the shell anytime since they are linked in a place already part of the system path. + +I plan to create a watchdog service for /opt/bin and /opt/sbin that will automaticly link new packages to /bin or /sbin later on in order to combat this. + +### TTYd installation + +It isn't perfect yet so it goes here under Advanced/Beta for now. +Here's what you gotta know about going into it: + + - This listens on port 443 for http requests (no SSL/TLS yet) + - This will automaticly install entware and patch the login and passwd binaries with ones from entware + - It will ask you to set a password for the `root` user account + - TTYd doesn't seem to be too mobile friendly for now but I optimized it the best i could for now so it is at least usable through a smartphone browser. Hopefully the startup script can be improved even more later. + +## Acknowledgements +### GitHub Users/Individuals: +Thank You to: + +[Nate Carlson](https://github.com/natecarlson) for the Original Telnet Deamon/socat bridge usage and the Original RGMII Notes + +[aesthernr](https://github.com/aesthernr) for creating the Original Simple Admin + +[rbflurry](https://github.com/rbflurry/) for inital Simple Admin fixes + +[dr-dolomite](https://github.com/dr-dolomite) for some major stat page improvements and this repos first approved external PR! + +[tarunVreddy](https://github.com/tarunVreddy) for helping with the SA band aggregation parse + +### Existing projects: +Simpleadmin heavily uses the AT Command Parsing Scripts (Basically a copy with new changes and tweaks) of Dairyman's Rooter Source https://github.com/ofmodemsandmen/ROOterSource2203 + +Tailscale was obtained through Tailscale's static build page. Since these modems have a 32-bit ARM processor on-board I used the arm package. https://pkgs.tailscale.com/stable/#static + +Entware/opkg was obtained through [Entware's wiki](https://github.com/Entware/Entware/wiki/Alternative-install-vs-standard) and the installer heavily modified by [iamromulan](https://github.com/iamromulan) for use with Quectel modems + +TTYd was obtained from the [TTYd Project](https://github.com/tsl0922/ttyd) diff --git a/RMxxx_rgmii_toolkit.sh b/Belowx65Toolkit/RMxxx_rgmii_toolkit.sh similarity index 100% rename from RMxxx_rgmii_toolkit.sh rename to Belowx65Toolkit/RMxxx_rgmii_toolkit.sh diff --git a/installentware.sh b/Belowx65Toolkit/installentware.sh similarity index 100% rename from installentware.sh rename to Belowx65Toolkit/installentware.sh diff --git a/simpleadmin/.rev b/Belowx65Toolkit/simpleadmin/.rev similarity index 100% rename from simpleadmin/.rev rename to Belowx65Toolkit/simpleadmin/.rev diff --git a/simpleadmin/console/.profile b/Belowx65Toolkit/simpleadmin/console/.profile similarity index 100% rename from simpleadmin/console/.profile rename to Belowx65Toolkit/simpleadmin/console/.profile diff --git a/simpleadmin/console/menu/LAN_settings.sh b/Belowx65Toolkit/simpleadmin/console/menu/LAN_settings.sh similarity index 100% rename from simpleadmin/console/menu/LAN_settings.sh rename to Belowx65Toolkit/simpleadmin/console/menu/LAN_settings.sh diff --git a/simpleadmin/console/menu/sfirewall_settings.sh b/Belowx65Toolkit/simpleadmin/console/menu/sfirewall_settings.sh similarity index 100% rename from simpleadmin/console/menu/sfirewall_settings.sh rename to Belowx65Toolkit/simpleadmin/console/menu/sfirewall_settings.sh diff --git a/simpleadmin/console/menu/start_menu.sh b/Belowx65Toolkit/simpleadmin/console/menu/start_menu.sh similarity index 100% rename from simpleadmin/console/menu/start_menu.sh rename to Belowx65Toolkit/simpleadmin/console/menu/start_menu.sh diff --git a/simpleadmin/console/services/ethernet_watchdog.sh b/Belowx65Toolkit/simpleadmin/console/services/ethernet_watchdog.sh similarity index 100% rename from simpleadmin/console/services/ethernet_watchdog.sh rename to Belowx65Toolkit/simpleadmin/console/services/ethernet_watchdog.sh diff --git a/simpleadmin/console/services/ping_watchdog.sh b/Belowx65Toolkit/simpleadmin/console/services/ping_watchdog.sh similarity index 100% rename from simpleadmin/console/services/ping_watchdog.sh rename to Belowx65Toolkit/simpleadmin/console/services/ping_watchdog.sh diff --git a/simpleadmin/console/services/systemd/ping_watchdog.service b/Belowx65Toolkit/simpleadmin/console/services/systemd/ping_watchdog.service similarity index 100% rename from simpleadmin/console/services/systemd/ping_watchdog.service rename to Belowx65Toolkit/simpleadmin/console/services/systemd/ping_watchdog.service diff --git a/simpleadmin/console/ttyd.bash b/Belowx65Toolkit/simpleadmin/console/ttyd.bash similarity index 100% rename from simpleadmin/console/ttyd.bash rename to Belowx65Toolkit/simpleadmin/console/ttyd.bash diff --git a/simpleadmin/htpasswd b/Belowx65Toolkit/simpleadmin/htpasswd similarity index 100% rename from simpleadmin/htpasswd rename to Belowx65Toolkit/simpleadmin/htpasswd diff --git a/simpleadmin/lighttpd.conf b/Belowx65Toolkit/simpleadmin/lighttpd.conf similarity index 100% rename from simpleadmin/lighttpd.conf rename to Belowx65Toolkit/simpleadmin/lighttpd.conf diff --git a/simpleadmin/script/create_watchcat.sh b/Belowx65Toolkit/simpleadmin/script/create_watchcat.sh similarity index 100% rename from simpleadmin/script/create_watchcat.sh rename to Belowx65Toolkit/simpleadmin/script/create_watchcat.sh diff --git a/simpleadmin/script/remove_watchcat.sh b/Belowx65Toolkit/simpleadmin/script/remove_watchcat.sh similarity index 100% rename from simpleadmin/script/remove_watchcat.sh rename to Belowx65Toolkit/simpleadmin/script/remove_watchcat.sh diff --git a/simpleadmin/script/ttl_script.sh b/Belowx65Toolkit/simpleadmin/script/ttl_script.sh similarity index 100% rename from simpleadmin/script/ttl_script.sh rename to Belowx65Toolkit/simpleadmin/script/ttl_script.sh diff --git a/simpleadmin/simplepasswd b/Belowx65Toolkit/simpleadmin/simplepasswd similarity index 100% rename from simpleadmin/simplepasswd rename to Belowx65Toolkit/simpleadmin/simplepasswd diff --git a/simpleadmin/systemd/lighttpd.service b/Belowx65Toolkit/simpleadmin/systemd/lighttpd.service similarity index 100% rename from simpleadmin/systemd/lighttpd.service rename to Belowx65Toolkit/simpleadmin/systemd/lighttpd.service diff --git a/simpleadmin/systemd/ttyd.service b/Belowx65Toolkit/simpleadmin/systemd/ttyd.service similarity index 100% rename from simpleadmin/systemd/ttyd.service rename to Belowx65Toolkit/simpleadmin/systemd/ttyd.service diff --git a/simpleadmin/www/cgi-bin/get_atcommand b/Belowx65Toolkit/simpleadmin/www/cgi-bin/get_atcommand similarity index 100% rename from simpleadmin/www/cgi-bin/get_atcommand rename to Belowx65Toolkit/simpleadmin/www/cgi-bin/get_atcommand diff --git a/simpleadmin/www/cgi-bin/get_ping b/Belowx65Toolkit/simpleadmin/www/cgi-bin/get_ping similarity index 100% rename from simpleadmin/www/cgi-bin/get_ping rename to Belowx65Toolkit/simpleadmin/www/cgi-bin/get_ping diff --git a/simpleadmin/www/cgi-bin/get_ttl_status b/Belowx65Toolkit/simpleadmin/www/cgi-bin/get_ttl_status similarity index 100% rename from simpleadmin/www/cgi-bin/get_ttl_status rename to Belowx65Toolkit/simpleadmin/www/cgi-bin/get_ttl_status diff --git a/simpleadmin/www/cgi-bin/get_uptime b/Belowx65Toolkit/simpleadmin/www/cgi-bin/get_uptime similarity index 100% rename from simpleadmin/www/cgi-bin/get_uptime rename to Belowx65Toolkit/simpleadmin/www/cgi-bin/get_uptime diff --git a/simpleadmin/www/cgi-bin/get_watchcat_status b/Belowx65Toolkit/simpleadmin/www/cgi-bin/get_watchcat_status similarity index 100% rename from simpleadmin/www/cgi-bin/get_watchcat_status rename to Belowx65Toolkit/simpleadmin/www/cgi-bin/get_watchcat_status diff --git a/simpleadmin/www/cgi-bin/send_sms b/Belowx65Toolkit/simpleadmin/www/cgi-bin/send_sms similarity index 100% rename from simpleadmin/www/cgi-bin/send_sms rename to Belowx65Toolkit/simpleadmin/www/cgi-bin/send_sms diff --git a/simpleadmin/www/cgi-bin/set_ttl b/Belowx65Toolkit/simpleadmin/www/cgi-bin/set_ttl similarity index 100% rename from simpleadmin/www/cgi-bin/set_ttl rename to Belowx65Toolkit/simpleadmin/www/cgi-bin/set_ttl diff --git a/simpleadmin/www/cgi-bin/set_watchcat b/Belowx65Toolkit/simpleadmin/www/cgi-bin/set_watchcat similarity index 100% rename from simpleadmin/www/cgi-bin/set_watchcat rename to Belowx65Toolkit/simpleadmin/www/cgi-bin/set_watchcat diff --git a/simpleadmin/www/cgi-bin/watchcat_maker b/Belowx65Toolkit/simpleadmin/www/cgi-bin/watchcat_maker similarity index 100% rename from simpleadmin/www/cgi-bin/watchcat_maker rename to Belowx65Toolkit/simpleadmin/www/cgi-bin/watchcat_maker diff --git a/simpleadmin/www/css/bootstrap.min.css b/Belowx65Toolkit/simpleadmin/www/css/bootstrap.min.css similarity index 100% rename from simpleadmin/www/css/bootstrap.min.css rename to Belowx65Toolkit/simpleadmin/www/css/bootstrap.min.css diff --git a/simpleadmin/www/css/styles.css b/Belowx65Toolkit/simpleadmin/www/css/styles.css similarity index 100% rename from simpleadmin/www/css/styles.css rename to Belowx65Toolkit/simpleadmin/www/css/styles.css diff --git a/simpleadmin/www/deviceinfo.html b/Belowx65Toolkit/simpleadmin/www/deviceinfo.html similarity index 100% rename from simpleadmin/www/deviceinfo.html rename to Belowx65Toolkit/simpleadmin/www/deviceinfo.html diff --git a/simpleadmin/www/favicon.ico b/Belowx65Toolkit/simpleadmin/www/favicon.ico similarity index 100% rename from simpleadmin/www/favicon.ico rename to Belowx65Toolkit/simpleadmin/www/favicon.ico diff --git a/simpleadmin/www/index.html b/Belowx65Toolkit/simpleadmin/www/index.html similarity index 100% rename from simpleadmin/www/index.html rename to Belowx65Toolkit/simpleadmin/www/index.html diff --git a/simpleadmin/www/js/alpinejs.min.js b/Belowx65Toolkit/simpleadmin/www/js/alpinejs.min.js similarity index 100% rename from simpleadmin/www/js/alpinejs.min.js rename to Belowx65Toolkit/simpleadmin/www/js/alpinejs.min.js diff --git a/simpleadmin/www/js/bootstrap.bundle.min.js b/Belowx65Toolkit/simpleadmin/www/js/bootstrap.bundle.min.js similarity index 100% rename from simpleadmin/www/js/bootstrap.bundle.min.js rename to Belowx65Toolkit/simpleadmin/www/js/bootstrap.bundle.min.js diff --git a/simpleadmin/www/js/dark-mode.js b/Belowx65Toolkit/simpleadmin/www/js/dark-mode.js similarity index 100% rename from simpleadmin/www/js/dark-mode.js rename to Belowx65Toolkit/simpleadmin/www/js/dark-mode.js diff --git a/simpleadmin/www/js/generate-freq-box.js b/Belowx65Toolkit/simpleadmin/www/js/generate-freq-box.js similarity index 100% rename from simpleadmin/www/js/generate-freq-box.js rename to Belowx65Toolkit/simpleadmin/www/js/generate-freq-box.js diff --git a/simpleadmin/www/js/parse-settings.js b/Belowx65Toolkit/simpleadmin/www/js/parse-settings.js similarity index 100% rename from simpleadmin/www/js/parse-settings.js rename to Belowx65Toolkit/simpleadmin/www/js/parse-settings.js diff --git a/simpleadmin/www/js/populate-checkbox.js b/Belowx65Toolkit/simpleadmin/www/js/populate-checkbox.js similarity index 100% rename from simpleadmin/www/js/populate-checkbox.js rename to Belowx65Toolkit/simpleadmin/www/js/populate-checkbox.js diff --git a/simpleadmin/www/network.html b/Belowx65Toolkit/simpleadmin/www/network.html similarity index 100% rename from simpleadmin/www/network.html rename to Belowx65Toolkit/simpleadmin/www/network.html diff --git a/simpleadmin/www/scanner.html b/Belowx65Toolkit/simpleadmin/www/scanner.html similarity index 100% rename from simpleadmin/www/scanner.html rename to Belowx65Toolkit/simpleadmin/www/scanner.html diff --git a/simpleadmin/www/settings.html b/Belowx65Toolkit/simpleadmin/www/settings.html similarity index 100% rename from simpleadmin/www/settings.html rename to Belowx65Toolkit/simpleadmin/www/settings.html diff --git a/simpleadmin/www/sms.html b/Belowx65Toolkit/simpleadmin/www/sms.html similarity index 100% rename from simpleadmin/www/sms.html rename to Belowx65Toolkit/simpleadmin/www/sms.html diff --git a/simpleadmin/www/watchcat.html b/Belowx65Toolkit/simpleadmin/www/watchcat.html similarity index 100% rename from simpleadmin/www/watchcat.html rename to Belowx65Toolkit/simpleadmin/www/watchcat.html diff --git a/simpleadmin/www/watchcat_backup.html b/Belowx65Toolkit/simpleadmin/www/watchcat_backup.html similarity index 100% rename from simpleadmin/www/watchcat_backup.html rename to Belowx65Toolkit/simpleadmin/www/watchcat_backup.html diff --git a/simplefirewall/.rev b/Belowx65Toolkit/simplefirewall/.rev similarity index 100% rename from simplefirewall/.rev rename to Belowx65Toolkit/simplefirewall/.rev diff --git a/simplefirewall/simplefirewall.sh b/Belowx65Toolkit/simplefirewall/simplefirewall.sh similarity index 100% rename from simplefirewall/simplefirewall.sh rename to Belowx65Toolkit/simplefirewall/simplefirewall.sh diff --git a/simplefirewall/systemd/simplefirewall.service b/Belowx65Toolkit/simplefirewall/systemd/simplefirewall.service similarity index 100% rename from simplefirewall/systemd/simplefirewall.service rename to Belowx65Toolkit/simplefirewall/systemd/simplefirewall.service diff --git a/simplefirewall/systemd/ttl-override.service b/Belowx65Toolkit/simplefirewall/systemd/ttl-override.service similarity index 100% rename from simplefirewall/systemd/ttl-override.service rename to Belowx65Toolkit/simplefirewall/systemd/ttl-override.service diff --git a/simplefirewall/ttl-override b/Belowx65Toolkit/simplefirewall/ttl-override similarity index 100% rename from simplefirewall/ttl-override rename to Belowx65Toolkit/simplefirewall/ttl-override diff --git a/simplefirewall/ttlvalue b/Belowx65Toolkit/simplefirewall/ttlvalue similarity index 100% rename from simplefirewall/ttlvalue rename to Belowx65Toolkit/simplefirewall/ttlvalue diff --git a/simpleupdates/.rev b/Belowx65Toolkit/simpleupdates/.rev similarity index 100% rename from simpleupdates/.rev rename to Belowx65Toolkit/simpleupdates/.rev diff --git a/simpleupdates/scripts/update_simpleadmin.sh b/Belowx65Toolkit/simpleupdates/scripts/update_simpleadmin.sh similarity index 100% rename from simpleupdates/scripts/update_simpleadmin.sh rename to Belowx65Toolkit/simpleupdates/scripts/update_simpleadmin.sh diff --git a/simpleupdates/scripts/update_simplefirewall.sh b/Belowx65Toolkit/simpleupdates/scripts/update_simplefirewall.sh similarity index 100% rename from simpleupdates/scripts/update_simplefirewall.sh rename to Belowx65Toolkit/simpleupdates/scripts/update_simplefirewall.sh diff --git a/simpleupdates/scripts/update_simpleupdates.sh b/Belowx65Toolkit/simpleupdates/scripts/update_simpleupdates.sh similarity index 100% rename from simpleupdates/scripts/update_simpleupdates.sh rename to Belowx65Toolkit/simpleupdates/scripts/update_simpleupdates.sh diff --git a/simpleupdates/scripts/update_socat-at-bridge.sh b/Belowx65Toolkit/simpleupdates/scripts/update_socat-at-bridge.sh similarity index 100% rename from simpleupdates/scripts/update_socat-at-bridge.sh rename to Belowx65Toolkit/simpleupdates/scripts/update_socat-at-bridge.sh diff --git a/simpleupdates/scripts/update_sshd.sh b/Belowx65Toolkit/simpleupdates/scripts/update_sshd.sh similarity index 100% rename from simpleupdates/scripts/update_sshd.sh rename to Belowx65Toolkit/simpleupdates/scripts/update_sshd.sh diff --git a/simpleupdates/scripts/update_tailscale.sh b/Belowx65Toolkit/simpleupdates/scripts/update_tailscale.sh similarity index 100% rename from simpleupdates/scripts/update_tailscale.sh rename to Belowx65Toolkit/simpleupdates/scripts/update_tailscale.sh diff --git a/simpleupdates/simpleadmin.conf b/Belowx65Toolkit/simpleupdates/simpleadmin.conf similarity index 100% rename from simpleupdates/simpleadmin.conf rename to Belowx65Toolkit/simpleupdates/simpleadmin.conf diff --git a/simpleupdates/simpleupdate b/Belowx65Toolkit/simpleupdates/simpleupdate similarity index 100% rename from simpleupdates/simpleupdate rename to Belowx65Toolkit/simpleupdates/simpleupdate diff --git a/simpleupdates/systemd/simpleupdated.service b/Belowx65Toolkit/simpleupdates/systemd/simpleupdated.service similarity index 100% rename from simpleupdates/systemd/simpleupdated.service rename to Belowx65Toolkit/simpleupdates/systemd/simpleupdated.service diff --git a/socat-at-bridge/.rev b/Belowx65Toolkit/socat-at-bridge/.rev similarity index 100% rename from socat-at-bridge/.rev rename to Belowx65Toolkit/socat-at-bridge/.rev diff --git a/socat-at-bridge/atcmd b/Belowx65Toolkit/socat-at-bridge/atcmd similarity index 100% rename from socat-at-bridge/atcmd rename to Belowx65Toolkit/socat-at-bridge/atcmd diff --git a/socat-at-bridge/killsmd7bridge b/Belowx65Toolkit/socat-at-bridge/killsmd7bridge similarity index 100% rename from socat-at-bridge/killsmd7bridge rename to Belowx65Toolkit/socat-at-bridge/killsmd7bridge diff --git a/socat-at-bridge/socat-armel-static b/Belowx65Toolkit/socat-at-bridge/socat-armel-static similarity index 100% rename from socat-at-bridge/socat-armel-static rename to Belowx65Toolkit/socat-at-bridge/socat-armel-static diff --git a/socat-at-bridge/systemd_units/socat-killsmd7bridge.service b/Belowx65Toolkit/socat-at-bridge/systemd_units/socat-killsmd7bridge.service similarity index 100% rename from socat-at-bridge/systemd_units/socat-killsmd7bridge.service rename to Belowx65Toolkit/socat-at-bridge/systemd_units/socat-killsmd7bridge.service diff --git a/socat-at-bridge/systemd_units/socat-smd11-from-ttyIN.service b/Belowx65Toolkit/socat-at-bridge/systemd_units/socat-smd11-from-ttyIN.service similarity index 100% rename from socat-at-bridge/systemd_units/socat-smd11-from-ttyIN.service rename to Belowx65Toolkit/socat-at-bridge/systemd_units/socat-smd11-from-ttyIN.service diff --git a/socat-at-bridge/systemd_units/socat-smd11-to-ttyIN.service b/Belowx65Toolkit/socat-at-bridge/systemd_units/socat-smd11-to-ttyIN.service similarity index 100% rename from socat-at-bridge/systemd_units/socat-smd11-to-ttyIN.service rename to Belowx65Toolkit/socat-at-bridge/systemd_units/socat-smd11-to-ttyIN.service diff --git a/socat-at-bridge/systemd_units/socat-smd11.service b/Belowx65Toolkit/socat-at-bridge/systemd_units/socat-smd11.service similarity index 100% rename from socat-at-bridge/systemd_units/socat-smd11.service rename to Belowx65Toolkit/socat-at-bridge/systemd_units/socat-smd11.service diff --git a/socat-at-bridge/systemd_units/socat-smd7-from-ttyIN2.service b/Belowx65Toolkit/socat-at-bridge/systemd_units/socat-smd7-from-ttyIN2.service similarity index 100% rename from socat-at-bridge/systemd_units/socat-smd7-from-ttyIN2.service rename to Belowx65Toolkit/socat-at-bridge/systemd_units/socat-smd7-from-ttyIN2.service diff --git a/socat-at-bridge/systemd_units/socat-smd7-to-ttyIN2.service b/Belowx65Toolkit/socat-at-bridge/systemd_units/socat-smd7-to-ttyIN2.service similarity index 100% rename from socat-at-bridge/systemd_units/socat-smd7-to-ttyIN2.service rename to Belowx65Toolkit/socat-at-bridge/systemd_units/socat-smd7-to-ttyIN2.service diff --git a/socat-at-bridge/systemd_units/socat-smd7.service b/Belowx65Toolkit/socat-at-bridge/systemd_units/socat-smd7.service similarity index 100% rename from socat-at-bridge/systemd_units/socat-smd7.service rename to Belowx65Toolkit/socat-at-bridge/systemd_units/socat-smd7.service diff --git a/sshd/.rev b/Belowx65Toolkit/sshd/.rev similarity index 100% rename from sshd/.rev rename to Belowx65Toolkit/sshd/.rev diff --git a/sshd/sshd.service b/Belowx65Toolkit/sshd/sshd.service similarity index 100% rename from sshd/sshd.service rename to Belowx65Toolkit/sshd/sshd.service diff --git a/tailscale/.rev b/Belowx65Toolkit/tailscale/.rev similarity index 100% rename from tailscale/.rev rename to Belowx65Toolkit/tailscale/.rev diff --git a/tailscale/systemd/tailscale-webui-trigger.service b/Belowx65Toolkit/tailscale/systemd/tailscale-webui-trigger.service similarity index 100% rename from tailscale/systemd/tailscale-webui-trigger.service rename to Belowx65Toolkit/tailscale/systemd/tailscale-webui-trigger.service diff --git a/tailscale/systemd/tailscale-webui.service b/Belowx65Toolkit/tailscale/systemd/tailscale-webui.service similarity index 100% rename from tailscale/systemd/tailscale-webui.service rename to Belowx65Toolkit/tailscale/systemd/tailscale-webui.service diff --git a/tailscale/systemd/tailscaled.defaults b/Belowx65Toolkit/tailscale/systemd/tailscaled.defaults similarity index 100% rename from tailscale/systemd/tailscaled.defaults rename to Belowx65Toolkit/tailscale/systemd/tailscaled.defaults diff --git a/tailscale/systemd/tailscaled.service b/Belowx65Toolkit/tailscale/systemd/tailscaled.service similarity index 100% rename from tailscale/systemd/tailscaled.service rename to Belowx65Toolkit/tailscale/systemd/tailscaled.service diff --git a/RM55x_rcPCIe_toolkit.sh b/RM55x_rcPCIe_toolkit.sh new file mode 100644 index 0000000..1f25d2d --- /dev/null +++ b/RM55x_rcPCIe_toolkit.sh @@ -0,0 +1,308 @@ +#!/bin/sh + +#WORK IN PROGRESS + +# Define toolkit paths +GITUSER="iamromulan" +GITTREE="development-RM551" +GITMAINTREE="main" +GITDEVTREE="development" +TMP_DIR="/tmp" +USRDATA_DIR="/data" +SOCAT_AT_DIR="/data/socat-at-bridge" +SOCAT_AT_SYSD_DIR="/data/socat-at-bridge/systemd_units" +SIMPLE_ADMIN_DIR="/data/simpleadmin" +SIMPLE_FIREWALL_DIR="/data/simplefirewall" +SIMPLE_FIREWALL_SCRIPT="$SIMPLE_FIREWALL_DIR/simplefirewall.sh" +SIMPLE_FIREWALL_SYSTEMD_DIR="$SIMPLE_FIREWALL_DIR/systemd" + +# AT Command Script Variables and Functions +DEVICE_FILE="/dev/smd7" +TIMEOUT=4 # Set a timeout for the response +# Function to remount file system as read-write +remount_rw() { + mount -o remount,rw / +} + +# Function to remount file system as read-only +remount_ro() { + mount -o remount,ro / +} + +# Basic AT commands without socat bridge for fast responce commands only +start_listening() { + cat "$DEVICE_FILE" > /tmp/device_readout & + CAT_PID=$! +} + +send_at_command() { + echo -e "\e[1;31mThis only works for basic quick responding commands!\e[0m" # Red + echo -e "\e[1;36mType 'install' to simply type atcmd in shell from now on\e[0m" + echo -e "\e[1;36mThe installed version is much better than this portable version\e[0m" + echo -e "\e[1;32mEnter AT command (or type 'exit' to quit): \e[0m" + read at_command + if [ "$at_command" = "exit" ]; then + return 1 + fi + + if [ "$at_command" = "install" ]; then + install_update_at_socat + echo -e "\e[1;32mInstalled. Type atcmd from adb shell or ssh to start an AT Command session\e[0m" + return 1 + fi + echo -e "${at_command}\r" > "$DEVICE_FILE" +} + +wait_for_response() { + local start_time=$(date +%s) + local current_time + local elapsed_time + + echo -e "\e[1;32mCommand sent, waiting for response...\e[0m" + while true; do + if grep -qe "OK" -e "ERROR" /tmp/device_readout; then + echo -e "\e[1;32mResponse received:\e[0m" + cat /tmp/device_readout + return 0 + fi + current_time=$(date +%s) + elapsed_time=$((current_time - start_time)) + if [ "$elapsed_time" -ge "$TIMEOUT" ]; then + echo -e "\e[1;31mError: Response timed out.\e[0m" # Red + echo -e "\e[1;32mIf the responce takes longer than a second or 2 to respond this will not work\e[0m" # Green + echo -e "\e[1;36mType install to install the better version of this that will work.\e[0m" # Cyan + return 1 + fi + sleep 1 + done +} + +cleanup() { + kill "$CAT_PID" + wait "$CAT_PID" 2>/dev/null + rm -f /tmp/device_readout +} + +send_at_commands() { + if [ -c "$DEVICE_FILE" ]; then + while true; do + start_listening + send_at_command + if [ $? -eq 1 ]; then + cleanup + break + fi + wait_for_response + cleanup + done + else + echo -e "\e[1;31mError: Device $DEVICE_FILE does not exist!\e[0m" + fi +} + +basic_55x_setup() { + #To be built out soon + echo -e "\e[1;31mComing soon.\e[0m" +} + +# Function for Tailscale Submenu +tailscale_menu() { + while true; do + echo -e "\e[1;32mTailscale Menu\e[0m" + echo -e "\e[1;32m1) Install/Update Tailscale\e[0m" + echo -e "\e[1;36m2) Configure Tailscale\e[0m" + echo -e "\e[1;31m3) Return to Main Menu\e[0m" + read -p "Enter your choice: " tailscale_choice + + case $tailscale_choice in + 1) install_update_tailscale;; + 2) configure_tailscale;; + 3) break;; + *) echo "Invalid option";; + esac + done +} + +# Function to install, update, or remove Tailscale +install_update_tailscale() { +echo -e "\e[1;31m2) Installing tailscale from opkg\e[0m" + opkg install tailscale + echo -e "\e[1;32m Tailscale has been updated/installed.\e[0m" + echo -e "\e[1;31m Tailscale is not up to date!.\e[0m" + # Add logic here later for an up-to-date installation + echo -e "\e[1;32m Replace the tailscale and tailscaled binaries with the new ones and run tailscale update.\e[0m" +} + +# Function to Configure Tailscale +configure_tailscale() { + while true; do + echo "Configure Tailscale" + echo -e "\e[38;5;40m1) Enable Tailscale Web UI at http://192.168.225.1:8088 (Gateway on port 8088)\e[0m" # Green + echo -e "\e[38;5;196m2) Disable Tailscale Web UI\e[0m" # Red + echo -e "\e[38;5;27m3) Connect to Tailnet\e[0m" # Brown + echo -e "\e[38;5;87m4) Connect to Tailnet with SSH ON\e[0m" # Light cyan + echo -e "\e[38;5;105m5) Reconnect to Tailnet with SSH OFF\e[0m" # Light magenta + echo -e "\e[38;5;172m6) Disconnect from Tailnet (reconnects at reboot)\e[0m" # Light yellow + echo -e "\e[1;31m7) Logout from tailscale account\e[0m" + echo -e "\e[38;5;27m8) Return to Tailscale Menu\e[0m" + read -p "Enter your choice: " config_choice + + case $config_choice in + 1) + echo -e "\e[38;5;196mNot for the 551 yet\e[0m" # Red + ;; + 2) + echo -e "\e[38;5;196mNot for the 551 yet\e[0m" # Red + ;; + 3) tailscale up --accept-dns=false --reset;; + 4) tailscale up --ssh --accept-dns=false --reset;; + 5) tailscale up --accept-dns=false --reset;; + 6) tailscale down;; + 7) tailscale logout;; + 8) break;; + *) echo "Invalid option";; + esac + done +} + + +# Main menu +while true; do +echo " .%+: " +echo " .*@@@-. " +echo " :@@@@- " +echo " @@@@#. " +echo " -@@@@#. " +echo " :. %@@@@: -# " +echo " .+- #@@@@%.+@- " +echo " .#- . +@@@@# #@- " +echo " -@*@*@% @@@@@::@@= " +echo ".+%@@@@@@@@@%=. =@@@@# #@@- .. " +echo " .@@@@@: :@@@@@ =@@@..%= " +echo " -::@-.+. @@@@@.=@@@- =@- " +echo " .@- .@@@@@:.@@@* @@. " +echo " .%- -@@@@@:=@@@@ @@# " +echo " .#- .%@@@@@@#. +@@@@@.#@@@@ @@@." +echo " .*- .@@@@@@@@@@=. @@@@@@ @@@@@ @@@:" +echo " :. .%@@@@@@@@@@@%. .@@@@@+:@@@@@ @@@-" +echo " -@@@@@@@@@@@@@@@..@@@@@@.-@@@@@ .@@@-" +echo " -@@@@@@@@@@%. .@@@@@@. @@@@@+ =@@@=" +echo " =@@@@@@@@* .@@@@@@. @@@@@@..@@@@-" +echo " #@@@@@@@@-*@@@@@%..@@@@@@+ #@@@@-" +echo " @@@@@@:.-@@@@@@. @@@@@@= %@@@@@." +echo " .@@@@. *@@@@@@- .+@@@@@@-.@@@@@@+ " +echo " %@@. =@@@@@*. +@@@@@@%.-@@@@@@% " +echo " .@@ .@@@@@= :@@@@@@@@..@@@@@@@= " +echo " =@.+@@@@@. -@@@@@@@*.:@@@@@@@*. " +echo " %.*@@@@= .@@@@@@@-.:@@@@@@@+. " +echo " ..@@@@= .@@@@@@: #@@@@@@@: " +echo " .@@@@ +@@@@..%@@@@@+. " +echo " .@@@. @@@@.:@@@@+. " +echo " @@@. @@@. @@@* .@. " +echo " :@@@ %@@..@@#. *@ " +echo " -*: .@@* :@@. @@. -..@@ " +echo " =@@@@@@.*@- :@% @* =@:=@# " +echo " .@@@-+@@@@:%@..%- ...@%:@@: " +echo " .@@. @@-%@: .%@@*@@%. " +echo " :@@ :+ *@ *@@#*@@@. " +echo " =@@@.@@@@ " +echo " .*@@@:=@@@@: " +echo " .@@@@:.@@@@@: " +echo " .@@@@#.-@@@@@. " +echo " #@@@@: =@@@@@- " +echo " .@@@@@..@@@@@@* " +echo " -@@@@@. @@@@@@#. " +echo " -@@@@@ @@@@@@% " +echo " @@@@@. #@@@@@@. " +echo " :@@@@# =@@@@@@% " +echo " @@@@@: @@@@@@@: " +echo " *@@@@ @@@@@@@. " +echo " .@@@@ @@@@@@@ " +echo " #@@@. @@@@@@* " +echo " @@@# @@@@@@@ " +echo " .@@+=@@@@@@. " +echo " *@@@@@@ " +echo " :@@@@@= " +echo " .@@@@@@. " +echo " :@@@@@*. " +echo " .=@@@@@- " +echo " :+##+. " + + echo -e "\e[92m" + echo "Welcome to iamromulan's rcPCIe Toolkit script for Quectel RM55x Series modems!" + echo "Visit https://github.com/iamromulan for more!" + echo -e "\e[0m" + echo -e "\e[91mThis is a test version of the toolit for the new RM550/551 modems\e[0m" # Light Red + echo "Select an option:" + echo -e "\e[0m" + echo -e "\e[96m1) Send AT Commands\e[0m" # Cyan + echo -e "\e[92m2) First time setup/run me after a flash!\e[0m" # Green + echo -e "\e[94m3) Set root password\e[0m" # Light Blue + echo -e "\e[94m4) Tailscale Management\e[0m" # Light Blue + echo -e "\e[92m5) Install Speedtest.net CLI app (speedtest command)\e[0m" # Light Green + echo -e "\e[93m6) Exit\e[0m" # Yellow (repeated color for exit option) + read -p "Enter your choice: " choice + + case $choice in + 1) + send_at_commands + ;; + 2) + basic_55x_setup + ;; + 98) + # Blank + ;; + 3) + set_root_passwd + ;; + 97) + # Blank + ;; + 96) + # Blank + ;; + + 4) + tailscale_menu + ;; + 95) + # Blank + ;; + 94) + # Blank + ;; + 93) + # Blank + ;; + + 5) + echo -e "\e[1;32mInstalling Speedtest.net CLI (speedtest command)\e[0m" + # Add Logic to confirm we are overlayed over the larger /data + cd /usr/bin + wget https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-aarch64.tgz + tar -xzf ookla-speedtest-1.2.0-linux-aarch64.tgz + rm ookla-speedtest-1.2.0-linux-aarch64.tgz + rm speedtest.md + cd / + echo -e "\e[1;32mSpeedtest CLI (speedtest command) installed!!\e[0m" + echo -e "\e[1;32mTry running the command 'speedtest'\e[0m" + echo -e "\e[1;32mNote that it will not work unless you login to the root account first\e[0m" + echo -e "\e[1;32mNormaly only an issue in adb, ttyd and ssh you are forced to login\e[0m" + echo -e "\e[1;32mIf in adb just type login and then try to run the speedtest command\e[0m" + ;; + 92) + # Blank + ;; + 91) + # Blank + ;; + 6) + echo -e "\e[1;32mGoodbye!\e[0m" + break + ;; + *) + echo -e "\e[1;31mInvalid option\e[0m" + ;; + esac +done diff --git a/init.d/mount-fix b/init.d/mount-fix new file mode 100644 index 0000000..4c20336 --- /dev/null +++ b/init.d/mount-fix @@ -0,0 +1,111 @@ +#!/bin/sh /etc/rc.common + +START=03 + +start() { + # Log to tmp + rm /tmp/mount-fix.log + /bin/touch /tmp/mount-fix.log + /bin/echo "Begin mount fix process to make a usable userspace" >> /tmp/mount-fix.log + + # Forcefully unmount /etc + /bin/echo "Unmounting the tiny overlay at /etc" >> /tmp/mount-fix.log + /bin/umount -lf /etc >> /tmp/mount-fix.log + + # Remount root filesystem as read-write + /bin/echo "Remounting / as read-write" >> /tmp/mount-fix.log + /bin/mount -o remount,rw / >> /tmp/mount-fix.log + + # Check if /overlay/etc-upper/merged.done exists + /bin/echo "First time this is ran the stuff you have been putting in the old overlay needs merged." >> /tmp/mount-fix.log + /bin/echo "Looking for evidence that this has already happened..." >> /tmp/mount-fix.log + if [ ! -f /overlay/etc-upper/merged.done ]; then + /bin/echo "/overlay/etc-upper/merged.done not found, merging /overlay/etc-upper/* to /etc/" >> /tmp/mount-fix.log + cp -rf /overlay/etc-upper/* /etc/ >> /tmp/mount-fix.log + /bin/touch /overlay/etc-upper/merged.done >> /tmp/mount-fix.log + else + /bin/echo "/overlay/etc-upper/merged.done found, skipping merge" >> /tmp/mount-fix.log + fi + + # Unmount /overlay + /bin/echo "Unmounting the no longer needed /overlay" >> /tmp/mount-fix.log + /bin/umount /overlay >> /tmp/mount-fix.log + + # Check if /etc/opkg.conf has a line containing "option overlay_root /overlay" and remove it if it exists + /bin/echo "Lets be sure your opkg config isn't using the old overlay" >> /tmp/mount-fix.log + if grep -q "option overlay_root /overlay" /etc/opkg.conf; then + /bin/echo "Removing 'option overlay_root /overlay' from /etc/opkg.conf" >> /tmp/mount-fix.log + sed -i '/option overlay_root \/overlay/d' /etc/opkg.conf >> /tmp/mount-fix.log + else + /bin/echo "'option overlay_root /overlay' not found in /etc/opkg.conf, no changes made" >> /tmp/mount-fix.log + fi + + # Ensure necessary directories exist for overlay and pivot_root + /bin/echo "Creating new overlay system" >> /tmp/mount-fix.log + if [ ! -d /data/rootfs ]; then + mkdir -p /data/rootfs + fi + if [ ! -d /data/rootfs-workdir ]; then + mkdir -p /data/rootfs-workdir + fi + if [ ! -d /rootfs ]; then + mkdir -p /rootfs + fi + + # Mount the new overlay filesystem + /bin/mount -t overlay overlay -o lowerdir=/,upperdir=/data/rootfs,workdir=/data/rootfs-workdir /rootfs >> /tmp/mount-fix.log + + # Create the real_rootfs directory in the new root + if [ ! -d /rootfs/real_rootfs ]; then + mkdir -p /rootfs/real_rootfs + fi + + # Pivot root to the new root + /bin/echo "Pivoting Root / to /rootfs; Be back soon!!" >> /tmp/mount-fix.log + /bin/pivot_root /rootfs /rootfs/real_rootfs >> /tmp/mount-fix.log + + # Move the mounted filesystems to the new locations + /bin/mount --move /real_rootfs/sys /sys >> /tmp/mount-fix.log + /bin/mount --move /real_rootfs/proc /proc >> /tmp/mount-fix.log + /bin/mount --move /real_rootfs/tmp /tmp >> /tmp/mount-fix.log + /bin/mount --move /real_rootfs/dev /dev >> /tmp/mount-fix.log + /bin/mount --move /real_rootfs/firmware /firmware >> /tmp/mount-fix.log + /bin/mount --move /real_rootfs/persist /persist >> /tmp/mount-fix.log + /bin/mount --move /real_rootfs/cache /cache >> /tmp/mount-fix.log + /bin/mount --move /real_rootfs/data /data >> /tmp/mount-fix.log + + # Final logs and remount the original root as read-only + /bin/echo "...and we're back! The original root now lives at /real_rootfs" >> /tmp/mount-fix.log + /bin/echo "Lets mount it as read-only for now, If you need it just remount it as read-write" >> /tmp/mount-fix.log + /bin/mount -o remount,ro /real_rootfs >> /tmp/mount-fix.log + /bin/echo "Overlay and pivot_root setup completed" >> /tmp/mount-fix.log +} + +stop() { + # Stop function is untested + /bin/echo "Stopping and reverting overlay and pivot_root" >> /tmp/mount-fix.log + + # Remount the original root filesystem as read-write + /bin/mount -o remount,rw /real_rootfs >> /tmp/mount-fix.log + + # Move the mounted filesystems back to the original locations + /bin/mount --move /sys /real_rootfs/sys >> /tmp/mount-fix.log + /bin/mount --move /proc /real_rootfs/proc >> /tmp/mount-fix.log + /bin/mount --move /tmp /real_rootfs/tmp >> /tmp/mount-fix.log + /bin/mount --move /dev /real_rootfs/dev >> /tmp/mount-fix.log + /bin/mount --move /firmware /real_rootfs/firmware >> /tmp/mount-fix.log + /bin/mount --move /persist /real_rootfs/persist >> /tmp/mount-fix.log + /bin/mount --move /cache /real_rootfs/cache >> /tmp/mount-fix.log + /bin/mount --move /data /real_rootfs/data >> /tmp/mount-fix.log + + # Pivot root back to the original root + /bin/pivot_root /real_rootfs /real_rootfs/rootfs >> /tmp/mount-fix.log + + /bin/echo "Reverted pivot_root" >> /tmp/mount-fix.log + /bin/echo "Previous root overlay avalible at /rootfs" >> /tmp/mount-fix.log +} + +restart() { + /bin/echo "This script should only be executed once at boot" + /bin/echo "Use Stop to undo the pivot" +}