SDXPINN branch is now ipk focused
-Updated opkg-feed with new packages -Updated key cause I lost my private key
This commit is contained in:
@@ -1,6 +0,0 @@
|
|||||||
|
|
||||||
config ttyd
|
|
||||||
option interface '@lan'
|
|
||||||
option debug '7'
|
|
||||||
option command '/usr/bin/login'
|
|
||||||
|
|
||||||
14
ipk-source/atinout_0.9.1_aarch64_cortex-a53/CONTROL/control
Normal file
14
ipk-source/atinout_0.9.1_aarch64_cortex-a53/CONTROL/control
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Package: atinout
|
||||||
|
Version: 0.9.1
|
||||||
|
Depends: libc
|
||||||
|
Source: feeds/kiddin9/atinout
|
||||||
|
SourceName: atinout
|
||||||
|
License: GPLv2
|
||||||
|
LicenseFiles: LICENSE
|
||||||
|
Section: net
|
||||||
|
SourceDateEpoch: 1691250335
|
||||||
|
Maintainer: Adrian Guenter <a@gntr.me>
|
||||||
|
Architecture: aarch64_cortex-a53
|
||||||
|
Installed-Size: 3571
|
||||||
|
Description: Atinout is a program that will execute AT commands in sequence and
|
||||||
|
capture the response from the modem.
|
||||||
5
ipk-source/atinout_0.9.1_aarch64_cortex-a53/CONTROL/postinst
Executable file
5
ipk-source/atinout_0.9.1_aarch64_cortex-a53/CONTROL/postinst
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
[ "${IPKG_NO_SCRIPT}" = "1" ] && exit 0
|
||||||
|
[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0
|
||||||
|
. ${IPKG_INSTROOT}/lib/functions.sh
|
||||||
|
default_postinst $0 $@
|
||||||
4
ipk-source/atinout_0.9.1_aarch64_cortex-a53/CONTROL/prerm
Executable file
4
ipk-source/atinout_0.9.1_aarch64_cortex-a53/CONTROL/prerm
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0
|
||||||
|
. ${IPKG_INSTROOT}/lib/functions.sh
|
||||||
|
default_prerm $0 $@
|
||||||
74
ipk-source/atinout_0.9.1_aarch64_cortex-a53/build-ipk
Executable file
74
ipk-source/atinout_0.9.1_aarch64_cortex-a53/build-ipk
Executable file
@@ -0,0 +1,74 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Script for building OpenWRT .ipk packages using tar by iamromulan
|
||||||
|
# Works with SDXPPINN OpenWRT - iamromulan
|
||||||
|
# This script accepts an optional path to the directory containing the `CONTROL` and `root` directories.
|
||||||
|
# Usage: ./build-ipk.sh [path]
|
||||||
|
# If no path is provided, the script will look in the current directory for `CONTROL` and `root` directories.
|
||||||
|
# This will spit out an ipk in the current directory
|
||||||
|
|
||||||
|
# Check if the script is run as root. If not, rerun with sudo.
|
||||||
|
if [ "$(id -u)" -ne 0 ]; then
|
||||||
|
echo "Script is not running as root. Re-executing with sudo..."
|
||||||
|
exec sudo "$0" "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the default build path to the current directory
|
||||||
|
build_path="."
|
||||||
|
|
||||||
|
# Check if a path is provided as the first argument
|
||||||
|
if [ "$1" ]; then
|
||||||
|
build_path="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if the required directories are present in the specified path
|
||||||
|
if [ ! -d "${build_path}/CONTROL" ] || [ ! -d "${build_path}/root" ]; then
|
||||||
|
echo "Error: CONTROL and root directories must be present in the specified path (${build_path})."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Extract values from the CONTROL/control file in the specified path
|
||||||
|
pkgname=$(grep -i '^Package:' "${build_path}/CONTROL/control" | awk '{print $2}')
|
||||||
|
version=$(grep -i '^Version:' "${build_path}/CONTROL/control" | awk '{print $2}')
|
||||||
|
architecture=$(grep -i '^Architecture:' "${build_path}/CONTROL/control" | awk '{print $2}')
|
||||||
|
|
||||||
|
# Check if values are extracted correctly
|
||||||
|
if [ -z "$pkgname" ] || [ -z "$version" ] || [ -z "$architecture" ]; then
|
||||||
|
echo "Error: Failed to extract Package, Version, or Architecture from ${build_path}/CONTROL/control."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the final IPK name based on the extracted values
|
||||||
|
ipkname="${pkgname}_${version}_${architecture}.ipk"
|
||||||
|
|
||||||
|
# Ensure all CONTROL scripts are executable
|
||||||
|
echo "Setting permissions for CONTROL scripts..."
|
||||||
|
chmod +x "${build_path}/CONTROL"/*
|
||||||
|
|
||||||
|
# Set ownership for CONTROL and root files
|
||||||
|
echo "Setting ownership for all package files..."
|
||||||
|
chown -R root:root "${build_path}/CONTROL"/*
|
||||||
|
chown -R root:root "${build_path}/root"/*
|
||||||
|
|
||||||
|
# Create control.tar.gz from the CONTROL directory
|
||||||
|
echo "Creating control.tar.gz..."
|
||||||
|
tar -czvf control.tar.gz -C "${build_path}/CONTROL" .
|
||||||
|
|
||||||
|
# Create data.tar.gz from the root directory
|
||||||
|
echo "Creating data.tar.gz..."
|
||||||
|
tar -czvf data.tar.gz -C "${build_path}/root" .
|
||||||
|
|
||||||
|
# Create debian-binary file (must contain exactly "2.0" without a newline)
|
||||||
|
echo -n "2.0" > debian-binary
|
||||||
|
chown -R root:root debian-binary
|
||||||
|
|
||||||
|
# Combine the components into the final .ipk file using tar
|
||||||
|
echo "Packaging ${ipkname}..."
|
||||||
|
tar -czvf "$ipkname" debian-binary control.tar.gz data.tar.gz
|
||||||
|
|
||||||
|
# Clean up intermediate files
|
||||||
|
echo "Cleaning up temporary files..."
|
||||||
|
rm -f control.tar.gz data.tar.gz debian-binary
|
||||||
|
|
||||||
|
echo "IPK package ${ipkname} created successfully using tar."
|
||||||
|
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
/etc/config/
|
||||||
|
/etc/atinout/
|
||||||
BIN
ipk-source/atinout_0.9.1_aarch64_cortex-a53/root/usr/bin/atinout
Executable file
BIN
ipk-source/atinout_0.9.1_aarch64_cortex-a53/root/usr/bin/atinout
Executable file
Binary file not shown.
@@ -0,0 +1,12 @@
|
|||||||
|
Package: luci-app-atinout-mod
|
||||||
|
Version: 1.3.4-20241006
|
||||||
|
Depends: libc, atinout, luci-compat
|
||||||
|
Source: package/luci-app-atinout-mod
|
||||||
|
SourceName: luci-app-atinout-mod
|
||||||
|
License: GPLv3
|
||||||
|
Section: luci
|
||||||
|
SourceDateEpoch: 1636930326
|
||||||
|
Maintainer: OpenWrt LuCI community
|
||||||
|
Architecture: all
|
||||||
|
Installed-Size: 3790
|
||||||
|
Description: Web UI for atinout modded by iamromulan preset for use on SDXPINN
|
||||||
5
ipk-source/luci-app-atinout-mod_1.3.4-20241006_all/CONTROL/postinst
Executable file
5
ipk-source/luci-app-atinout-mod_1.3.4-20241006_all/CONTROL/postinst
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
[ "${IPKG_NO_SCRIPT}" = "1" ] && exit 0
|
||||||
|
[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0
|
||||||
|
. ${IPKG_INSTROOT}/lib/functions.sh
|
||||||
|
default_postinst $0 $@
|
||||||
7
ipk-source/luci-app-atinout-mod_1.3.4-20241006_all/CONTROL/postinst-pkg
Executable file
7
ipk-source/luci-app-atinout-mod_1.3.4-20241006_all/CONTROL/postinst-pkg
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
chmod +x /sbin/set_at_port.sh
|
||||||
|
chmod +x /usr/bin/luci-app-atinout
|
||||||
|
rm -rf /tmp/luci-indexcache
|
||||||
|
rm -rf /tmp/luci-modulecache/
|
||||||
|
/sbin/set_at_port.sh
|
||||||
|
exit 0
|
||||||
4
ipk-source/luci-app-atinout-mod_1.3.4-20241006_all/CONTROL/prerm
Executable file
4
ipk-source/luci-app-atinout-mod_1.3.4-20241006_all/CONTROL/prerm
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
[ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0
|
||||||
|
. ${IPKG_INSTROOT}/lib/functions.sh
|
||||||
|
default_prerm $0 $@
|
||||||
74
ipk-source/luci-app-atinout-mod_1.3.4-20241006_all/build-ipk
Executable file
74
ipk-source/luci-app-atinout-mod_1.3.4-20241006_all/build-ipk
Executable file
@@ -0,0 +1,74 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Script for building OpenWRT .ipk packages using tar by iamromulan
|
||||||
|
# Works with SDXPPINN OpenWRT - iamromulan
|
||||||
|
# This script accepts an optional path to the directory containing the `CONTROL` and `root` directories.
|
||||||
|
# Usage: ./build-ipk.sh [path]
|
||||||
|
# If no path is provided, the script will look in the current directory for `CONTROL` and `root` directories.
|
||||||
|
# This will spit out an ipk in the current directory
|
||||||
|
|
||||||
|
# Check if the script is run as root. If not, rerun with sudo.
|
||||||
|
if [ "$(id -u)" -ne 0 ]; then
|
||||||
|
echo "Script is not running as root. Re-executing with sudo..."
|
||||||
|
exec sudo "$0" "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the default build path to the current directory
|
||||||
|
build_path="."
|
||||||
|
|
||||||
|
# Check if a path is provided as the first argument
|
||||||
|
if [ "$1" ]; then
|
||||||
|
build_path="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if the required directories are present in the specified path
|
||||||
|
if [ ! -d "${build_path}/CONTROL" ] || [ ! -d "${build_path}/root" ]; then
|
||||||
|
echo "Error: CONTROL and root directories must be present in the specified path (${build_path})."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Extract values from the CONTROL/control file in the specified path
|
||||||
|
pkgname=$(grep -i '^Package:' "${build_path}/CONTROL/control" | awk '{print $2}')
|
||||||
|
version=$(grep -i '^Version:' "${build_path}/CONTROL/control" | awk '{print $2}')
|
||||||
|
architecture=$(grep -i '^Architecture:' "${build_path}/CONTROL/control" | awk '{print $2}')
|
||||||
|
|
||||||
|
# Check if values are extracted correctly
|
||||||
|
if [ -z "$pkgname" ] || [ -z "$version" ] || [ -z "$architecture" ]; then
|
||||||
|
echo "Error: Failed to extract Package, Version, or Architecture from ${build_path}/CONTROL/control."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the final IPK name based on the extracted values
|
||||||
|
ipkname="${pkgname}_${version}_${architecture}.ipk"
|
||||||
|
|
||||||
|
# Ensure all CONTROL scripts are executable
|
||||||
|
echo "Setting permissions for CONTROL scripts..."
|
||||||
|
chmod +x "${build_path}/CONTROL"/*
|
||||||
|
|
||||||
|
# Set ownership for CONTROL and root files
|
||||||
|
echo "Setting ownership for all package files..."
|
||||||
|
chown -R root:root "${build_path}/CONTROL"/*
|
||||||
|
chown -R root:root "${build_path}/root"/*
|
||||||
|
|
||||||
|
# Create control.tar.gz from the CONTROL directory
|
||||||
|
echo "Creating control.tar.gz..."
|
||||||
|
tar -czvf control.tar.gz -C "${build_path}/CONTROL" .
|
||||||
|
|
||||||
|
# Create data.tar.gz from the root directory
|
||||||
|
echo "Creating data.tar.gz..."
|
||||||
|
tar -czvf data.tar.gz -C "${build_path}/root" .
|
||||||
|
|
||||||
|
# Create debian-binary file (must contain exactly "2.0" without a newline)
|
||||||
|
echo -n "2.0" > debian-binary
|
||||||
|
chown -R root:root debian-binary
|
||||||
|
|
||||||
|
# Combine the components into the final .ipk file using tar
|
||||||
|
echo "Packaging ${ipkname}..."
|
||||||
|
tar -czvf "$ipkname" debian-binary control.tar.gz data.tar.gz
|
||||||
|
|
||||||
|
# Clean up intermediate files
|
||||||
|
echo "Cleaning up temporary files..."
|
||||||
|
rm -f control.tar.gz data.tar.gz debian-binary
|
||||||
|
|
||||||
|
echo "IPK package ${ipkname} created successfully using tar."
|
||||||
|
|
||||||
@@ -24,3 +24,7 @@ Get Currently Enabled 4G/LTE Bands;AT+QNWPREFCFG="lte_band"
|
|||||||
View assigned IPv4/IPv6 addresses from the provider;AT+QMAP="WWAN"
|
View assigned IPv4/IPv6 addresses from the provider;AT+QMAP="WWAN"
|
||||||
Enable IPPT paste in MAC for FF:FF:FF...;AT+QMAP="MPDN_rule",0,1,0,1,1,"FF:FF:FF:FF:FF:FF"
|
Enable IPPT paste in MAC for FF:FF:FF...;AT+QMAP="MPDN_rule",0,1,0,1,1,"FF:FF:FF:FF:FF:FF"
|
||||||
Disable IPPT;AT+QMAP="MPDN_rule",0
|
Disable IPPT;AT+QMAP="MPDN_rule",0
|
||||||
|
Set IPv4 DMZ....replace iphere;AT+QMAP="DMZ",1,4,iphere
|
||||||
|
Set IPv6 DMZ....replace iphere;AT+QMAP="DMZ",1,6,iphere
|
||||||
|
Disable IPv4 DMZ;AT+QMAP="DMZ",0,4
|
||||||
|
Disable IPv6 DMZ;AT+QMAP="DMZ",0,6
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Copyright 2020-2021 Rafał Wabik (IceG) - From eko.one.pl forum
|
||||||
|
# Licensed to the GNU General Public License v3.0.
|
||||||
|
|
||||||
|
work=false
|
||||||
|
for port in /dev/ttyUSB*
|
||||||
|
do
|
||||||
|
[[ -e $port ]] || continue
|
||||||
|
gcom -d $port info &> /tmp/testusb
|
||||||
|
testUSB=`cat /tmp/testusb | grep "Error\|Can't"`
|
||||||
|
if [ -z "$testUSB" ]; then
|
||||||
|
work=$port
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rm -rf /tmp/testusb
|
||||||
|
|
||||||
|
if [ $work != false ]; then
|
||||||
|
uci set atinout.@atinout[0].atcport=$work
|
||||||
|
uci commit atinout
|
||||||
|
fi
|
||||||
21
ipk-source/luci-app-atinout-mod_1.3.4-20241006_all/root/sbin/set_at_port.sh
Executable file
21
ipk-source/luci-app-atinout-mod_1.3.4-20241006_all/root/sbin/set_at_port.sh
Executable file
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Copyright 2020-2021 Rafał Wabik (IceG) - From eko.one.pl forum
|
||||||
|
# Licensed to the GNU General Public License v3.0.
|
||||||
|
|
||||||
|
work=false
|
||||||
|
for port in /dev/ttyUSB*
|
||||||
|
do
|
||||||
|
[[ -e $port ]] || continue
|
||||||
|
gcom -d $port info &> /tmp/testusb
|
||||||
|
testUSB=`cat /tmp/testusb | grep "Error\|Can't"`
|
||||||
|
if [ -z "$testUSB" ]; then
|
||||||
|
work=$port
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rm -rf /tmp/testusb
|
||||||
|
|
||||||
|
if [ $work != false ]; then
|
||||||
|
uci set atinout.@atinout[0].atcport=$work
|
||||||
|
uci commit atinout
|
||||||
|
fi
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
ARGS=$1
|
||||||
|
DEVPORT=$(uci -q get atinout.general.atcport)
|
||||||
|
|
||||||
|
if [ "$DEVPORT" ]; then
|
||||||
|
echo "${ARGS}" | /usr/bin/atinout - ${DEVPORT} -
|
||||||
|
fi
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
local e=require"luci.util"
|
||||||
|
local e=require"nixio.fs"
|
||||||
|
local e=require"luci.sys"
|
||||||
|
local e=require"luci.http"
|
||||||
|
local e=require"luci.dispatcher"
|
||||||
|
local e=require"luci.http"
|
||||||
|
local t=require"luci.sys"
|
||||||
|
local t=require"luci.model.uci".cursor()
|
||||||
|
module("luci.controller.modem.atc",package.seeall)
|
||||||
|
function index()
|
||||||
|
entry({"admin","modem"},firstchild(),"Modem",30).dependent=false
|
||||||
|
entry({"admin","modem","atc"},alias("admin","modem","atc","atcommand"),translate("AT Commands"),10).acl_depends={"luci-app-atinout-mod"}
|
||||||
|
entry({"admin","modem","atc","atcommand"},template("modem/atcommand"),translate("AT Commands"),10)
|
||||||
|
entry({"admin","modem","atc","atconfig"},cbi("modem/atconfig"),translate("Configuration"),20)
|
||||||
|
entry({"admin","modem","webcmd"},call("webcmd"))
|
||||||
|
entry({"admin","modem","atc","user_atc"},call("useratc"),nil).leaf=true
|
||||||
|
end
|
||||||
|
function webcmd()
|
||||||
|
local t=e.formvalue("cmd")
|
||||||
|
if t then
|
||||||
|
local t=io.popen("/usr/bin/luci-app-atinout "..t:gsub("[$]","\\\$"):gsub("\"","\\\"").." 2>&1")
|
||||||
|
local a=t:read("*a")
|
||||||
|
t:close()
|
||||||
|
e.write(tostring(a))
|
||||||
|
else
|
||||||
|
e.write_json(e.formvalue())
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function uussd(t)
|
||||||
|
local e=nixio.fs.access("/etc/config/atcommands.user")and
|
||||||
|
io.popen("cat /etc/config/atcommands.user")
|
||||||
|
if e then
|
||||||
|
for a in e:lines()do
|
||||||
|
local e=a
|
||||||
|
if e then
|
||||||
|
t[#t+1]={
|
||||||
|
usd=e
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
e:close()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function useratc()
|
||||||
|
local e={}
|
||||||
|
uussd(e)
|
||||||
|
luci.http.prepare_content("application/json")
|
||||||
|
luci.http.write_json(e)
|
||||||
|
end
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
local e=require"luci.util"
|
||||||
|
local o=require"nixio.fs"
|
||||||
|
local e=require"luci.sys"
|
||||||
|
local e=require"luci.http"
|
||||||
|
local e=require"luci.dispatcher"
|
||||||
|
local e=require"luci.http"
|
||||||
|
local e=require"luci.sys"
|
||||||
|
local e=require"luci.model.uci".cursor()
|
||||||
|
local n="/etc/config/atcommands.user"
|
||||||
|
local t
|
||||||
|
local e
|
||||||
|
local i
|
||||||
|
local a=nixio.fs.glob("/dev/tty[A-Z][A-Z]*")
|
||||||
|
t=Map("atinout",translate("Atinout Configuration"),
|
||||||
|
translate("Configuration panel for atinout."))
|
||||||
|
e=t:section(NamedSection,'general',"atinout",""..translate("AT Commands Terminal Settings"))
|
||||||
|
e.anonymous=true
|
||||||
|
i=e:option(Value,"atcport",translate("AT Command Sending Port"))
|
||||||
|
if a then
|
||||||
|
local e
|
||||||
|
for e in a do
|
||||||
|
i:value(e,e)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local e=e:option(TextValue,"user_atcommands",translate("User AT Commands"),translate("Each line must have the following format: 'AT Command name;AT Command'. Save to file '/etc/config/atcommands.user'."))
|
||||||
|
e.rows=20
|
||||||
|
e.rmempty=false
|
||||||
|
function e.cfgvalue(e,e)
|
||||||
|
return o.readfile(n)
|
||||||
|
end
|
||||||
|
function e.write(t,t,e)
|
||||||
|
e=e:gsub("\r\n","\n")
|
||||||
|
o.writefile(n,e)
|
||||||
|
end
|
||||||
|
return t
|
||||||
@@ -0,0 +1,133 @@
|
|||||||
|
<%+header%>
|
||||||
|
<!--
|
||||||
|
This module gives some convinience to access the shell via web, in
|
||||||
|
case that you don't have a uart console or telnet/ssh connection.
|
||||||
|
Hua Shao <nossiac@163.com>
|
||||||
|
-->
|
||||||
|
<h2><%:AT Commands%></h2>
|
||||||
|
<label><%:Web UI for sending AT Commands.%></label>
|
||||||
|
<p></p>
|
||||||
|
<h4><%:Sending commands to modem%></h4>
|
||||||
|
<div class="table" width="100%">
|
||||||
|
|
||||||
|
<div class="tr">
|
||||||
|
<div class="td left" width="23%"><%:User AT Commands%>:</div>
|
||||||
|
|
||||||
|
<div class="td left" style="width:55%;">
|
||||||
|
<select name="ussd" id="pl" onclick="copyFunction()">
|
||||||
|
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="td left" style="width:55%;"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tr">
|
||||||
|
<div class="td left" style="width:23%;"><%:Command to send%>:</div>
|
||||||
|
<div class="td left" ><input type="text" id="code" required size="20" ></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="table" width="100%">
|
||||||
|
<div class="td left" style="width:23%;"><%:Reply%>:
|
||||||
|
<p>
|
||||||
|
<pre id="result" style="visibility: hidden; width:77%;"></pre></div>
|
||||||
|
|
||||||
|
<div class="tr cbi-rowstyle-2">
|
||||||
|
<div class="td right"><div style="float: left;"><div class="ifacebadge"><a href="https://eko.one.pl">e1</a></div></div><input type="button" style="margin-right: 23%"; id="sendcmd" class="btn cbi-button cbi-button-neutral" value="<%:Send Command%>" /></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
window.onload = function readUSER() {
|
||||||
|
|
||||||
|
|
||||||
|
XHR.get('<%=luci.dispatcher.build_url("admin", "modem", "atc", "user_atc")%>', null,
|
||||||
|
function(x, json)
|
||||||
|
{
|
||||||
|
select = document.getElementById('pl');
|
||||||
|
|
||||||
|
var count = Object.keys(json).length;
|
||||||
|
|
||||||
|
|
||||||
|
for(var d=0;d<=count;d++)
|
||||||
|
{
|
||||||
|
var opt = document.createElement('option');
|
||||||
|
|
||||||
|
var s = json[d].usd;
|
||||||
|
var fields = s.split(/;/);
|
||||||
|
var name = fields[0];
|
||||||
|
var code = fields[1];
|
||||||
|
opt.text = name;
|
||||||
|
opt.value = code.trim();
|
||||||
|
opt.innerHTML = name;
|
||||||
|
select.appendChild(opt);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function copyFunction() {
|
||||||
|
|
||||||
|
var node = document.getElementById('result');
|
||||||
|
node.style.visibility = 'hidden';
|
||||||
|
|
||||||
|
var x = document.getElementById("pl").value;
|
||||||
|
document.getElementById("code").value = x;
|
||||||
|
document.getElementById("result").innerHTML = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function postcmd(cmd) {
|
||||||
|
(new XHR()).post("<%=luci.dispatcher.build_url("admin", "modem", "webcmd")%>", {"cmd":cmd}, function(x) {
|
||||||
|
console.log(x.response)
|
||||||
|
console.log(x)
|
||||||
|
|
||||||
|
var aStr = x.response;
|
||||||
|
var myre = /(^[ \t]*\n)/gm;
|
||||||
|
var bStr = aStr.replace(myre,"");
|
||||||
|
|
||||||
|
document.getElementById("result").innerHTML = bStr;
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function (ev) {var button = document.getElementById("sendcmd");
|
||||||
|
button.addEventListener("click", function () {
|
||||||
|
|
||||||
|
|
||||||
|
var s = document.getElementById("code").value;
|
||||||
|
if ( s.length == 0 )
|
||||||
|
{
|
||||||
|
document.getElementById("result").innerHTML = "";
|
||||||
|
alert("<%:Please enter a AT Command%>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var cmd = document.getElementById("code");
|
||||||
|
postcmd(cmd.value);
|
||||||
|
cmd.value = "";
|
||||||
|
|
||||||
|
var node = document.getElementById('result');
|
||||||
|
if (node.style.visibility=='visible') {
|
||||||
|
node.style.visibility = 'hidden';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
node.style.visibility = 'visible'
|
||||||
|
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}, true);
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<%+footer%>
|
||||||
|
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"luci-app-atinout-mod": {
|
||||||
|
"description": "Grant UCI and file access for luci-app-atinout-mod",
|
||||||
|
"read": {
|
||||||
|
"uci": [ "atinout" ]
|
||||||
|
},
|
||||||
|
"write": {
|
||||||
|
"uci": [ "atinout" ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
6
ipk-source/sdxpinn-console-menu/CONTROL/control
Executable file
6
ipk-source/sdxpinn-console-menu/CONTROL/control
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
Package: sdxpinn-console-menu
|
||||||
|
Version: 0.0.1
|
||||||
|
Architecture: aarch64_cortex-a53
|
||||||
|
Maintainer: Cameron Thompson iamromulan@github.com
|
||||||
|
Description: A custom CLI menu system for mamnagment of Quectel RM5xx modems
|
||||||
|
Depends: libc sdxpinn-mount-fix
|
||||||
74
ipk-source/sdxpinn-console-menu/build-ipk
Executable file
74
ipk-source/sdxpinn-console-menu/build-ipk
Executable file
@@ -0,0 +1,74 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Script for building OpenWRT .ipk packages using tar by iamromulan
|
||||||
|
# Works with SDXPPINN OpenWRT - iamromulan
|
||||||
|
# This script accepts an optional path to the directory containing the `CONTROL` and `root` directories.
|
||||||
|
# Usage: ./build-ipk.sh [path]
|
||||||
|
# If no path is provided, the script will look in the current directory for `CONTROL` and `root` directories.
|
||||||
|
# This will spit out an ipk in the current directory
|
||||||
|
|
||||||
|
# Check if the script is run as root. If not, rerun with sudo.
|
||||||
|
if [ "$(id -u)" -ne 0 ]; then
|
||||||
|
echo "Script is not running as root. Re-executing with sudo..."
|
||||||
|
exec sudo "$0" "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the default build path to the current directory
|
||||||
|
build_path="."
|
||||||
|
|
||||||
|
# Check if a path is provided as the first argument
|
||||||
|
if [ "$1" ]; then
|
||||||
|
build_path="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if the required directories are present in the specified path
|
||||||
|
if [ ! -d "${build_path}/CONTROL" ] || [ ! -d "${build_path}/root" ]; then
|
||||||
|
echo "Error: CONTROL and root directories must be present in the specified path (${build_path})."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Extract values from the CONTROL/control file in the specified path
|
||||||
|
pkgname=$(grep -i '^Package:' "${build_path}/CONTROL/control" | awk '{print $2}')
|
||||||
|
version=$(grep -i '^Version:' "${build_path}/CONTROL/control" | awk '{print $2}')
|
||||||
|
architecture=$(grep -i '^Architecture:' "${build_path}/CONTROL/control" | awk '{print $2}')
|
||||||
|
|
||||||
|
# Check if values are extracted correctly
|
||||||
|
if [ -z "$pkgname" ] || [ -z "$version" ] || [ -z "$architecture" ]; then
|
||||||
|
echo "Error: Failed to extract Package, Version, or Architecture from ${build_path}/CONTROL/control."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the final IPK name based on the extracted values
|
||||||
|
ipkname="${pkgname}_${version}_${architecture}.ipk"
|
||||||
|
|
||||||
|
# Ensure all CONTROL scripts are executable
|
||||||
|
echo "Setting permissions for CONTROL scripts..."
|
||||||
|
chmod +x "${build_path}/CONTROL"/*
|
||||||
|
|
||||||
|
# Set ownership for CONTROL and root files
|
||||||
|
echo "Setting ownership for all package files..."
|
||||||
|
chown -R root:root "${build_path}/CONTROL"/*
|
||||||
|
chown -R root:root "${build_path}/root"/*
|
||||||
|
|
||||||
|
# Create control.tar.gz from the CONTROL directory
|
||||||
|
echo "Creating control.tar.gz..."
|
||||||
|
tar -czvf control.tar.gz -C "${build_path}/CONTROL" .
|
||||||
|
|
||||||
|
# Create data.tar.gz from the root directory
|
||||||
|
echo "Creating data.tar.gz..."
|
||||||
|
tar -czvf data.tar.gz -C "${build_path}/root" .
|
||||||
|
|
||||||
|
# Create debian-binary file (must contain exactly "2.0" without a newline)
|
||||||
|
echo -n "2.0" > debian-binary
|
||||||
|
chown -R root:root debian-binary
|
||||||
|
|
||||||
|
# Combine the components into the final .ipk file using tar
|
||||||
|
echo "Packaging ${ipkname}..."
|
||||||
|
tar -czvf "$ipkname" debian-binary control.tar.gz data.tar.gz
|
||||||
|
|
||||||
|
# Clean up intermediate files
|
||||||
|
echo "Cleaning up temporary files..."
|
||||||
|
rm -f control.tar.gz data.tar.gz debian-binary
|
||||||
|
|
||||||
|
echo "IPK package ${ipkname} created successfully using tar."
|
||||||
|
|
||||||
24
usr/bin/download → ipk-source/sdxpinn-console-menu/root/usr/bin/download
Normal file → Executable file
24
usr/bin/download → ipk-source/sdxpinn-console-menu/root/usr/bin/download
Normal file → Executable file
@@ -1,15 +1,16 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Disabled for now
|
||||||
# Determine the absolute path of the script
|
# Determine the absolute path of the script
|
||||||
SCRIPT_PATH=$(realpath "$0")
|
SCRIPT_PATH=$(realpath "$0")
|
||||||
|
|
||||||
download() {
|
#download() {
|
||||||
if [ "$1" = "github" ]; then
|
# if [ "$1" = "github" ]; then
|
||||||
download_github_directory "$2" "$3"
|
# download_github_directory "$2" "$3"
|
||||||
else
|
# else
|
||||||
download_file "$1" "$2"
|
# download_file "$1" "$2"
|
||||||
fi
|
# fi
|
||||||
}
|
#}
|
||||||
|
|
||||||
download_file() {
|
download_file() {
|
||||||
url="$1"
|
url="$1"
|
||||||
@@ -106,9 +107,10 @@ download_github_directory() {
|
|||||||
}'
|
}'
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ "$#" -eq 0 ]; then
|
#if [ "$#" -eq 0 ]; then
|
||||||
echo "Usage: download <type> <url> [output_directory]"
|
# echo "Usage: download <type> <url> [output_directory]"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
#else
|
||||||
download "$@"
|
download "$@"
|
||||||
fi
|
#fi
|
||||||
|
exit 0
|
||||||
167
usr/bin/menu → ipk-source/sdxpinn-console-menu/root/usr/bin/menu
Normal file → Executable file
167
usr/bin/menu → ipk-source/sdxpinn-console-menu/root/usr/bin/menu
Normal file → Executable file
@@ -1,19 +1,13 @@
|
|||||||
#!/bin/ash
|
#!/bin/ash
|
||||||
|
|
||||||
#WORK IN PROGRESS
|
#WORK IN PROGRESS
|
||||||
#Console Menu
|
|
||||||
|
|
||||||
# Define toolkit paths
|
# Define toolkit paths
|
||||||
GITUSER="iamromulan"
|
GITUSER="iamromulan"
|
||||||
GITREPO="quectel-rgmii-toolkit"
|
GITREPO="quectel-rgmii-toolkit"
|
||||||
GITTREE="SDXPINN"
|
GITTREE="development-SDXPINN"
|
||||||
GITMAINTREE="SDXPINN"
|
GITMAINTREE="SDXPINN"
|
||||||
GITDEVTREE="development-SDXPINN"
|
GITDEVTREE="development-SDXPINN"
|
||||||
TMP_DIR="/tmp"
|
|
||||||
USRDATA_DIR="/data"
|
|
||||||
SIMPLE_FIREWALL_DIR="/data/simplefirewall"
|
|
||||||
SIMPLE_FIREWALL_SCRIPT="$SIMPLE_FIREWALL_DIR/simplefirewall.sh"
|
|
||||||
SIMPLE_FIREWALL_SYSTEMD_DIR="$SIMPLE_FIREWALL_DIR/systemd"
|
|
||||||
|
|
||||||
# Function to remount file system as read-write
|
# Function to remount file system as read-write
|
||||||
remount_rw() {
|
remount_rw() {
|
||||||
@@ -25,15 +19,27 @@ remount_ro() {
|
|||||||
mount -o remount,ro /
|
mount -o remount,ro /
|
||||||
}
|
}
|
||||||
|
|
||||||
|
send_at_commands_using_atcmd() {
|
||||||
overlay_check() {
|
while true; do
|
||||||
if ! grep -qs '/real_rootfs ' /proc/mounts; then
|
echo -e "\e[1;32mEnter AT command (or type 'exit' to return to the main menu): \e[0m"
|
||||||
echo -e "\e[31mYou do not have an overlay setup!\e[0m"
|
read at_command
|
||||||
return 1
|
if [ "$at_command" = "exit" ]; then
|
||||||
fi
|
echo -e "\e[1;32mReturning to the main menu.\e[0m"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
echo -e "\e[1;32mSending AT command: $at_command\e[0m"
|
||||||
|
echo -e "\e[1;32mResponse:\e[0m"
|
||||||
|
# Use atcmd to send the command and display the output
|
||||||
|
atcmd_output=$(atcmd "'$at_command'")
|
||||||
|
echo "$atcmd_output"
|
||||||
|
echo -e "\e[1;32m----------------------------------------\e[0m"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ttl_setup() {
|
ttl_setup() {
|
||||||
local ttl_file="/etc/firewall.user.ttl"
|
local ttl_file="/etc/firewall.user.ttl"
|
||||||
local lan_utils_script="/etc/data/lanUtils.sh"
|
local lan_utils_script="/etc/data/lanUtils.sh"
|
||||||
@@ -109,87 +115,6 @@ set_root_passwd() {
|
|||||||
passwd
|
passwd
|
||||||
}
|
}
|
||||||
|
|
||||||
# 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;31mInstalling Tailscale from opkg...\e[0m"
|
|
||||||
opkg install tailscale
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1;31mFailed to install Tailscale via opkg.\e[0m"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -e "\e[1;32mTailscale has been installed via opkg.\e[0m"
|
|
||||||
echo -e "\e[1;32mUpdating to the latest Tailscale version...\e[0m"
|
|
||||||
|
|
||||||
# Stop Running Service
|
|
||||||
service tailscale stop
|
|
||||||
|
|
||||||
# Define variables for the download
|
|
||||||
TAILSCALE_URL="https://pkgs.tailscale.com/stable/tailscale_1.74.1_arm64.tgz"
|
|
||||||
TAILSCALE_TGZ="/tmp/tailscale_1.74.1_arm64.tgz"
|
|
||||||
TAILSCALE_TMP_DIR="/tmp/tailscale_update"
|
|
||||||
|
|
||||||
# Download the latest Tailscale package
|
|
||||||
echo -e "\e[1;32mDownloading latest Tailscale package...\e[0m"
|
|
||||||
curl "$TAILSCALE_URL" -o "$TAILSCALE_TGZ"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1;31mFailed to download Tailscale package. Please check your internet connection.\e[0m"
|
|
||||||
rm -f "$TAILSCALE_TGZ"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Extract the package
|
|
||||||
echo -e "\e[1;32mExtracting Tailscale package...\e[0m"
|
|
||||||
mkdir -p "$TAILSCALE_TMP_DIR"
|
|
||||||
tar -xzf "$TAILSCALE_TGZ" -C "$TAILSCALE_TMP_DIR"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1;31mFailed to extract Tailscale package.\e[0m"
|
|
||||||
rm -f "$TAILSCALE_TGZ"
|
|
||||||
rm -rf "$TAILSCALE_TMP_DIR"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Replace the binaries with force option
|
|
||||||
echo -e "\e[1;32mUpdating Tailscale binaries...\e[0m"
|
|
||||||
cp -f "$TAILSCALE_TMP_DIR/tailscale_1.74.1_arm64/tailscale" /usr/sbin/
|
|
||||||
cp -f "$TAILSCALE_TMP_DIR/tailscale_1.74.1_arm64/tailscaled" /usr/sbin/
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "\e[1;31mFailed to copy new Tailscale binaries.\e[0m"
|
|
||||||
rm -f "$TAILSCALE_TGZ"
|
|
||||||
rm -rf "$TAILSCALE_TMP_DIR"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Set the correct permissions
|
|
||||||
chmod +x /usr/sbin/tailscale /usr/sbin/tailscaled
|
|
||||||
|
|
||||||
# Clean up temporary files
|
|
||||||
rm -f "$TAILSCALE_TGZ"
|
|
||||||
rm -rf "$TAILSCALE_TMP_DIR"
|
|
||||||
|
|
||||||
# Start Tailscale service if available
|
|
||||||
service tailscale start
|
|
||||||
echo -e "\e[1;32mTailscale version 1.74.1 installed\e[0m"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# Function to Configure Tailscale
|
# Function to Configure Tailscale
|
||||||
configure_tailscale() {
|
configure_tailscale() {
|
||||||
@@ -282,49 +207,31 @@ while true; do
|
|||||||
echo " :+##+. "
|
echo " :+##+. "
|
||||||
|
|
||||||
echo -e "\e[92m"
|
echo -e "\e[92m"
|
||||||
echo "Welcome to iamromulan's rcPCIe Toolkit script for Quectel RM55x Series modems!"
|
echo "Welcome to iamromulan's console menu for Quectel RM55x Series modems!"
|
||||||
echo "Visit https://github.com/iamromulan for more!"
|
echo "Visit https://github.com/iamromulan for more!"
|
||||||
echo -e "\e[0m"
|
echo -e "\e[0m"
|
||||||
echo -e "\e[91mThis is a test version of the toolkit for the new RM550/551 modems\e[0m" # Light Red
|
echo -e "\e[91mThis is a work in progress menu for RM550/551 modems\e[0m" # Light Red
|
||||||
echo "Select an option:"
|
echo "Select an option:"
|
||||||
echo -e "\e[0m"
|
echo -e "\e[0m"
|
||||||
echo -e "\e[94m1) TTL Setup\e[0m" # Light Blue
|
echo -e "\e[96m1) Send AT Commands\e[0m" # Cyan
|
||||||
echo -e "\e[94m2) Set root password\e[0m" # Light Blue
|
echo -e "\e[92m2) Run the SDXPINN toolkit\e[0m" # Green
|
||||||
echo -e "\e[94m3) Tailscale Management\e[0m" # Light Blue
|
echo -e "\e[94m3) Run the development-SDXPINN toollkit (beta/test branch)\e[0m" # Light Blue
|
||||||
echo -e "\e[92m4) Install Speedtest.net CLI app (speedtest command)\e[0m" # Light Green
|
echo -e "\e[94m4) TTL Settings\e[0m" # Light Blue
|
||||||
echo -e "\e[93m5) Exit\e[0m" # Yellow (repeated color for exit option)
|
echo -e "\e[94m5) Set root password\e[0m" # Light Blue
|
||||||
|
echo -e "\e[94m6) Tailscale Management\e[0m" # Light Blue
|
||||||
|
echo -e "\e[92m7) Run a speedtest.net speed test\e[0m" # Light Green
|
||||||
|
echo -e "\e[93m8) Exit\e[0m" # Yellow (repeated color for exit option)
|
||||||
read -p "Enter your choice: " choice
|
read -p "Enter your choice: " choice
|
||||||
|
|
||||||
case $choice in
|
case $choice in
|
||||||
1)
|
1) send_at_commands_using_atcmd ;;
|
||||||
overlay_check
|
2) cd /tmp && wget -O rcPCIe_SDXPINN_toolkit.sh https://raw.githubusercontent.com/iamromulan/quectel-rgmii-toolkit/SDXPINN/rcPCIe_SDXPINN_toolkit.sh && chmod +x rcPCIe_SDXPINN_toolkit.sh && ./rcPCIe_SDXPINN_toolkit.sh && cd / ;;
|
||||||
if [ $? -eq 1 ]; then continue; fi
|
3) cd /tmp && wget -O rcPCIe_SDXPINN_toolkit.sh https://raw.githubusercontent.com/iamromulan/quectel-rgmii-toolkit/development-SDXPINN/rcPCIe_SDXPINN_toolkit.sh && chmod +x rcPCIe_SDXPINN_toolkit.sh && ./rcPCIe_SDXPINN_toolkit.sh && cd / ;;
|
||||||
ttl_setup
|
4) ttl_setup ;;
|
||||||
;;
|
5) set_root_passwd ;;
|
||||||
2)
|
6) configure_tailscale ;;
|
||||||
overlay_check
|
7) speedtest ;;
|
||||||
if [ $? -eq 1 ]; then continue; fi
|
8) echo -e "\e[1;32mGoodbye!\e[0m"; break ;;
|
||||||
set_root_passwd
|
|
||||||
;;
|
|
||||||
3) tailscale_menu ;;
|
|
||||||
4)
|
|
||||||
overlay_check
|
|
||||||
if [ $? -eq 1 ]; then continue; fi
|
|
||||||
echo -e "\e[1;32mInstalling Speedtest.net CLI (speedtest command)\e[0m"
|
|
||||||
cd /usr/bin
|
|
||||||
curl -O 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
|
|
||||||
rm speedtest.5
|
|
||||||
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;32mNormally 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"
|
|
||||||
;;
|
|
||||||
5) echo -e "\e[1;32mGoodbye!\e[0m"; break ;;
|
|
||||||
*) echo -e "\e[1;31mInvalid option\e[0m" ;;
|
*) echo -e "\e[1;31mInvalid option\e[0m" ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
@@ -1,10 +1,3 @@
|
|||||||
Lost field SourceName, atinout
|
|
||||||
Lost field LicenseFiles, LICENSE
|
|
||||||
Lost field SourceDateEpoch, 1691250335
|
|
||||||
Lost field Installed-Size, 3571
|
|
||||||
Lost field SourceName, luci-app-atinout-mod
|
|
||||||
Lost field SourceDateEpoch, 1636930326
|
|
||||||
Lost field Installed-Size, 3790
|
|
||||||
Package: atinout
|
Package: atinout
|
||||||
Version: 0.9.1
|
Version: 0.9.1
|
||||||
Depends: libc
|
Depends: libc
|
||||||
@@ -20,16 +13,100 @@ License: GPLv2
|
|||||||
|
|
||||||
|
|
||||||
Package: luci-app-atinout-mod
|
Package: luci-app-atinout-mod
|
||||||
Version: 1.3.2-20220315
|
Version: 1.3.4-20241006
|
||||||
Depends: libc, atinout, luci-compat
|
Depends: libc, atinout, luci-compat
|
||||||
Section: luci
|
Section: luci
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Maintainer: OpenWrt LuCI community
|
Maintainer: OpenWrt LuCI community
|
||||||
MD5Sum: 92a24b32ebcbd41501895fc0748a22d1
|
MD5Sum: 2dac55de763333c37dd1728957fc8294
|
||||||
Size: 4617
|
Size: 4827
|
||||||
Filename: luci-app-atinout-mod_1.3.2-20220315_all.ipk
|
Filename: luci-app-atinout-mod_1.3.4-20241006_all.ipk
|
||||||
Source: package/luci-app-atinout-mod
|
Source: package/luci-app-atinout-mod
|
||||||
Description: Web UI for atinout
|
Description: Web UI for atinout
|
||||||
License: GPLv3
|
License: GPLv3
|
||||||
|
|
||||||
|
|
||||||
|
Package: ookla-speedtest
|
||||||
|
Version: 1.2.0
|
||||||
|
Depends: libc
|
||||||
|
Section: net
|
||||||
|
Architecture: aarch64_cortex-a53
|
||||||
|
Maintainer: Ookla <https://www.speedtest.net/apps/cli>
|
||||||
|
MD5Sum: 2183f2df42a00380e761cace096e17c3
|
||||||
|
Size: 10757762
|
||||||
|
Filename: ookla-speedtest_1.2.0_aarch64_cortex-a53.ipk
|
||||||
|
Source: speedtest.net/apps/cli
|
||||||
|
Description: speedtest.net CLI
|
||||||
|
License: GPLv3
|
||||||
|
|
||||||
|
|
||||||
|
Package: sdxpinn-console-menu
|
||||||
|
Version: 0.0.1
|
||||||
|
Depends: libc sdxpinn-mount-fix
|
||||||
|
Section: utils
|
||||||
|
Architecture: aarch64_cortex-a53
|
||||||
|
Maintainer: iamromulan <https://github.com/iamromulan>
|
||||||
|
MD5Sum: e4dd60a7725fb3df16e5ebc0f8d12330
|
||||||
|
Size: 4902
|
||||||
|
Filename: sdxpinn-console-menu_0.0.1_aarch64_cortex-a53.ipk
|
||||||
|
Source: github/iamromulan
|
||||||
|
Description: A custom CLI menu system for mamnagment of Quectel RM5xx modems
|
||||||
|
License: GPLv3
|
||||||
|
|
||||||
|
|
||||||
|
Package: sdxpinn-mount-fix
|
||||||
|
Version: 1.1.0
|
||||||
|
Depends: libc
|
||||||
|
Section: base
|
||||||
|
Architecture: aarch64_cortex-a53
|
||||||
|
Maintainer: iamromulan <https://github.com/iamromulan>
|
||||||
|
MD5Sum: f8e8f830a7ba794d3d090c206df2b729
|
||||||
|
Size: 29357
|
||||||
|
Filename: sdxpinn-mount-fix_1.1.0_aarch64_cortex-a53.ipk
|
||||||
|
Source: github/iamromulan
|
||||||
|
Description: Creates a usable mount space and overlay for SDXPINN modems. Dependencies bundled: libinotifytools and inotifywait
|
||||||
|
License: GPLv3
|
||||||
|
|
||||||
|
|
||||||
|
Package: sdxpinn-quecmanager
|
||||||
|
Version: 0.0.1
|
||||||
|
Depends: libc sdxpinn-mount-fix atinout
|
||||||
|
Section: admin
|
||||||
|
Architecture: aarch64_cortex-a53
|
||||||
|
Maintainer: Russel Yasol <https://github.com/dr-dolomite> Cameron Thompson <https://github.com/iamromulan>
|
||||||
|
MD5Sum: 60381135963551200ca0479aceaab617
|
||||||
|
Size: 643499
|
||||||
|
Filename: sdxpinn-quecmanager_0.0.1_aarch64_cortex-a53.ipk
|
||||||
|
Source: github/iamromulan
|
||||||
|
Description: A custom web UI desgined to run alongside luci for Quectel RM55x modems
|
||||||
|
License: GPLv3
|
||||||
|
|
||||||
|
|
||||||
|
Package: tailscale
|
||||||
|
Version: 1.74.1-1
|
||||||
|
Depends: libc tailscaled
|
||||||
|
Section: net
|
||||||
|
Architecture: aarch64_cortex-a53
|
||||||
|
Maintainer: Jan Pavlinec <jan.pavlinec1@gmail.com>
|
||||||
|
MD5Sum: 17b17e02759f162b73697f5a2d00e1d5
|
||||||
|
Size: 9392904
|
||||||
|
Filename: tailscale_1.74.1-1_aarch64_cortex-a53.ipk
|
||||||
|
Source: feeds/packages/net/tailscale
|
||||||
|
Description: It creates a secure network between your servers, computers, and cloud instances. Even when separated by firewalls or subnets. Updated by iamromulan to 1.74.1
|
||||||
|
License: GPLv3
|
||||||
|
|
||||||
|
|
||||||
|
Package: tailscaled
|
||||||
|
Version: 1.74.1-1
|
||||||
|
Depends: libc ca-bundle kmod-tun
|
||||||
|
Section: net
|
||||||
|
Architecture: aarch64_cortex-a53
|
||||||
|
Maintainer: Jan Pavlinec <jan.pavlinec1@gmail.com>
|
||||||
|
MD5Sum: 3f1290daeb00519877d4cc0628bfe190
|
||||||
|
Size: 17468475
|
||||||
|
Filename: tailscaled_1.74.1-1_aarch64_cortex-a53.ipk
|
||||||
|
Source: feeds/packages/net/tailscale
|
||||||
|
Description: It creates a secure network between your servers, computers, and cloud instances. Even when separated by firewalls or subnets. Updated by iamromulan to 1.74.1
|
||||||
|
License: GPLv3
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -1,2 +1,2 @@
|
|||||||
untrusted comment: signed by key 2585d2dfe7e59028
|
untrusted comment: signed by key 6262698f038d1226
|
||||||
RWQlhdLf5+WQKHWdQyQdLxIrKqkDw8qMwdMnUvku9kAeFA4ibt9OtqMfObgPHGgzc5ai7Bao7ngdDe6+6yAfx8MYBwtdYP36Zgc=
|
RWRiYmmPA40SJkznq10rfs6bQH4JWPaTgsi68fSXP0wo51V394xOKFMj5jluXjbBzozuAIBxA+ANBSAgcDc9Zk3IV3yloLyOpwc=
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
untrusted comment: public key 2585d2dfe7e59028
|
untrusted comment: iamromulan-SDXPINN-repo
|
||||||
RWQlhdLf5+WQKAVdfAaG8TkXZi5WfCnsxMiupWrh0Lt2yEubx05UYYfx
|
RWRiYmmPA40SJuEKQND0oYaMLANvANo+5dJCAlGvndAi5aHQP3KPZ9aE
|
||||||
|
|||||||
Binary file not shown.
BIN
opkg-feed/luci-app-atinout-mod_1.3.4-20241006_all.ipk
Normal file
BIN
opkg-feed/luci-app-atinout-mod_1.3.4-20241006_all.ipk
Normal file
Binary file not shown.
BIN
opkg-feed/sdxpinn-console-menu_0.0.1_aarch64_cortex-a53.ipk
Normal file
BIN
opkg-feed/sdxpinn-console-menu_0.0.1_aarch64_cortex-a53.ipk
Normal file
Binary file not shown.
@@ -73,7 +73,7 @@ install_mount_fix() {
|
|||||||
fi
|
fi
|
||||||
# Install mount-fix
|
# Install mount-fix
|
||||||
cd /tmp
|
cd /tmp
|
||||||
curl -O https://raw.githubusercontent.com/$GITUSER/$GITREPO/$GITTREE/ipk/sdxpinn-mount-fix_1.1.0_aarch64_cortex-a53.ipk
|
curl -O https://raw.githubusercontent.com/$GITUSER/$GITREPO/$GITTREE/opkg-feed/sdxpinn-mount-fix_1.1.0_aarch64_cortex-a53.ipk
|
||||||
opkg install sdxpinn-mount-fix_1.1.0_aarch64_cortex-a53.ipk
|
opkg install sdxpinn-mount-fix_1.1.0_aarch64_cortex-a53.ipk
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,29 +86,21 @@ basic_55x_setup() {
|
|||||||
echo -e "\e[92m"
|
echo -e "\e[92m"
|
||||||
echo "iamromulan's ipk/opkg repo added!...."
|
echo "iamromulan's ipk/opkg repo added!...."
|
||||||
echo -e "\e[0m"
|
echo -e "\e[0m"
|
||||||
opkg install atinout luci-app-atinout-mod
|
opkg install atinout luci-app-atinout-mod sdxpinn-console-menu
|
||||||
|
|
||||||
|
# Get rid of the Quectel Login Binary
|
||||||
opkg install shadow-login
|
opkg install shadow-login
|
||||||
opkg install luci-app-ttyd
|
|
||||||
opkg install mc-skins
|
|
||||||
mv /bin/login /bin/login.old
|
mv /bin/login /bin/login.old
|
||||||
cp /usr/bin/login /bin/login
|
cp /usr/bin/login /bin/login
|
||||||
rm /etc/config/atcommands.user
|
|
||||||
rm /etc/config/atinout
|
opkg install luci-app-ttyd
|
||||||
rm /etc/config/ttyd
|
opkg install mc-skins
|
||||||
cd /etc/config/
|
|
||||||
curl -O https://raw.githubusercontent.com/$GITUSER/$GITREPO/$GITTREE/etc/config/atcommands.user
|
|
||||||
curl -O https://raw.githubusercontent.com/$GITUSER/$GITREPO/$GITTREE/etc/config/ttyd
|
|
||||||
curl -O https://raw.githubusercontent.com/$GITUSER/$GITREPO/$GITTREE/etc/config/atinout
|
|
||||||
cd /
|
|
||||||
service uhttpd enable
|
service uhttpd enable
|
||||||
service dropbear enable
|
service dropbear enable
|
||||||
service uhttpd start
|
service uhttpd start
|
||||||
service dropbear start
|
service dropbear start
|
||||||
echo -e "\e[92m"
|
|
||||||
echo "Set your root password:"
|
|
||||||
echo -e "\e[0m"
|
|
||||||
set_root_passwd
|
|
||||||
echo -e "\e[92m"
|
|
||||||
echo "Basic packages installed!"
|
echo "Basic packages installed!"
|
||||||
echo "Visit https://github.com/iamromulan for more!"
|
echo "Visit https://github.com/iamromulan for more!"
|
||||||
echo -e "\e[0m"
|
echo -e "\e[0m"
|
||||||
@@ -211,8 +203,8 @@ tailscale_menu() {
|
|||||||
install_update_tailscale() {
|
install_update_tailscale() {
|
||||||
echo -e "\e[1;31mInstalling Tailscale 1.74.1...\e[0m"
|
echo -e "\e[1;31mInstalling Tailscale 1.74.1...\e[0m"
|
||||||
cd /tmp
|
cd /tmp
|
||||||
curl -O https://raw.githubusercontent.com/$GITUSER/$GITREPO/$GITTREE/ipk/tailscaled_1.74.1-1_aarch64_cortex-a53.ipk
|
curl -O https://raw.githubusercontent.com/$GITUSER/$GITREPO/$GITTREE/opkg-feed/tailscaled_1.74.1-1_aarch64_cortex-a53.ipk
|
||||||
curl -O https://raw.githubusercontent.com/$GITUSER/$GITREPO/$GITTREE/ipk/tailscale_1.74.1-1_aarch64_cortex-a53.ipk
|
curl -O https://raw.githubusercontent.com/$GITUSER/$GITREPO/$GITTREE/opkg-feed/tailscale_1.74.1-1_aarch64_cortex-a53.ipk
|
||||||
opkg install tailscaled_1.74.1-1_aarch64_cortex-a53.ipk
|
opkg install tailscaled_1.74.1-1_aarch64_cortex-a53.ipk
|
||||||
opkg install tailscale_1.74.1-1_aarch64_cortex-a53.ipk
|
opkg install tailscale_1.74.1-1_aarch64_cortex-a53.ipk
|
||||||
|
|
||||||
@@ -352,7 +344,7 @@ while true; do
|
|||||||
if [ $? -eq 1 ]; then continue; fi
|
if [ $? -eq 1 ]; then continue; fi
|
||||||
echo -e "\e[1;32mInstalling Speedtest.net CLI (speedtest command)\e[0m"
|
echo -e "\e[1;32mInstalling Speedtest.net CLI (speedtest command)\e[0m"
|
||||||
cd /tmp
|
cd /tmp
|
||||||
curl -O https://raw.githubusercontent.com/$GITUSER/$GITREPO/$GITTREE/ipk/ookla-speedtest_1.2.0_aarch64_cortex-a53.ipk
|
curl -O https://raw.githubusercontent.com/$GITUSER/$GITREPO/$GITTREE/opkg-feed/ookla-speedtest_1.2.0_aarch64_cortex-a53.ipk
|
||||||
opkg install ookla-speedtest_1.2.0_aarch64_cortex-a53.ipk
|
opkg install ookla-speedtest_1.2.0_aarch64_cortex-a53.ipk
|
||||||
echo -e "\e[1;32mSpeedtest CLI (speedtest command) installed!!\e[0m"
|
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;32mTry running the command 'speedtest'\e[0m"
|
||||||
|
|||||||
Reference in New Issue
Block a user