Update Repo

- Updated Package:
sdxpinn-quecmanager to 0.0.3

     - Fixed issue described here: c8faf539c1

- Updated package sdxpinn-console-menu to 0.0.2

     - Added new menu: LAN Settings
          - Will let you edit the LAN settings. Only for DMZ mode or normal LAN mode not mpdn_rule. Work in Progress.

- Updated package tailscaled tailscale to 1.76.1
See tailscale's website for chnagelog

Co-Authored-By: Russel Yasol <73575327+dr-dolomite@users.noreply.github.com>
This commit is contained in:
Cameron Thompson
2024-10-30 02:26:06 +00:00
parent 76891cce61
commit 12c8430670
61 changed files with 298 additions and 41 deletions

View File

View File

0
ipk-source/atinout_0.9.1_aarch64_cortex-a53/build-ipk Executable file → Normal file
View File

View File

View File

View File

View File

View File

View File

View File

@@ -1,5 +1,5 @@
Package: sdxpinn-console-menu
Version: 0.0.1
Version: 0.0.2
Architecture: aarch64_cortex-a53
Maintainer: Cameron Thompson iamromulan@github.com
Description: A custom CLI menu system for mamnagment of Quectel RM5xx modems

View File

@@ -8,6 +8,7 @@ GITREPO="quectel-rgmii-toolkit"
GITTREE="development-SDXPINN"
GITMAINTREE="SDXPINN"
GITDEVTREE="development-SDXPINN"
SUB_MENUS="/usr/bin/sub_menus"
# Function to remount file system as read-write
remount_rw() {
@@ -217,10 +218,11 @@ while true; do
echo -e "\e[92m2) Run the SDXPINN toolkit\e[0m" # Green
echo -e "\e[94m3) Run the development-SDXPINN toollkit (beta/test branch)\e[0m" # Light Blue
echo -e "\e[94m4) TTL Settings\e[0m" # Light Blue
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)
echo -e "\e[93m5) LAN Settings (Experimental) \e[0m" # Yellow
echo -e "\e[94m6) Set root password\e[0m" # Light Blue
echo -e "\e[94m7) Tailscale Management\e[0m" # Light Blue
echo -e "\e[92m8) Run a speedtest.net speed test\e[0m" # Light Green
echo -e "\e[93m9) Exit\e[0m" # Yellow (repeated color for exit option)
read -p "Enter your choice: " choice
case $choice in
@@ -228,10 +230,11 @@ while true; do
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 / ;;
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 / ;;
4) ttl_setup ;;
5) set_root_passwd ;;
6) configure_tailscale ;;
7) speedtest ;;
8) echo -e "\e[1;32mGoodbye!\e[0m"; break ;;
5) $SUB_MENUS/lan_menu ;;
6) set_root_passwd ;;
7) configure_tailscale ;;
8) speedtest ;;
9) echo -e "\e[1;32mGoodbye!\e[0m"; break ;;
*) echo -e "\e[1;31mInvalid option\e[0m" ;;
esac
done

View File

@@ -0,0 +1,253 @@
#!/bin/ash
# Function to display menu options with color coding
menu() {
echo -e "\e[91m7) Proceed with caution...\e[0m" # Red
echo -e "\e[96mLAN Configuration Menu:\e[0m" # Cyan
echo -e "\e[92m1) Enable/Disable Single IP DMZ Passthrough Mode\e[0m" # Green
echo -e "\e[94m2) Set Gateway Address\e[0m" # Blue
echo -e "\e[93m3) Set DHCP Start/Limit Range\e[0m" # Yellow
echo -e "\e[96m4) Set Custom DNS\e[0m" # Cyan
echo -e "\e[95m5) Use Provider's DNS (IPv4 only)\e[0m" # Magenta
echo -e "\e[92m6) Enable/Disable IP Passthrough with NAT (Access to modem's LAN locally)\e[0m" # Green
echo -e "\e[91m7) Exit\e[0m" # Red
echo ""
read -p "Select an option [1-7]: " choice
}
# Apply changes and restart services
apply_changes() {
uci commit network
uci commit dhcp
/etc/init.d/network restart
/etc/init.d/dnsmasq restart
echo -e "\e[92mChanges applied successfully.\e[0m" # Green
}
# Function to check if IPPT is enabled by inspecting the MPDN rules
is_ippt_enabled() {
local mpdn_output=$(atcmd 'AT+QMAP="mpdn_rule"')
echo "$mpdn_output"
# Check if any MPDN rule has IPPT enabled (non-zero second-to-last value)
if echo "$mpdn_output" | grep -q "+QMAP: \"MPDN_rule\",.*,.*,.*,[1-9],.*"; then
return 0 # IPPT is enabled
else
return 1 # IPPT is not enabled
fi
}
# Function to check if MPDN rules are clear
are_mpdn_rules_clear() {
local mpdn_output=$(atcmd 'AT+QMAP="mpdn_rule"')
echo "$mpdn_output"
# Check if all MPDN rules are clear (all values are 0)
if echo "$mpdn_output" | grep -q "+QMAP: \"MPDN_rule\",0,0,0,0,0"; then
return 0 # MPDN rules are clear
else
return 1 # MPDN rules are not clear
fi
}
# Function to check DMZ status using the AT+QMAP command
is_dmz_enabled() {
local lan_ip=$(uci get network.lan.ipaddr)
local expected_dmz_ip=$(echo "$lan_ip" | awk -F. '{print $1"."$2"."$3"."$4+1}')
local dhcp_start=$(uci get dhcp.lan.start)
local dhcp_limit=$(uci get dhcp.lan.limit)
# Check if DHCP start and limit are the same
if [ "$dhcp_start" = "$dhcp_limit" ]; then
# Get the DMZ status from the AT command
local dmz_status=$(atcmd 'AT+QMAP="DMZ"')
echo "$dmz_status"
# Check if DMZ is enabled for IPv4 (1,4 means IPv4 DMZ is enabled)
if echo "$dmz_status" | grep -q "\+QMAP: \"DMZ\",1,4,$expected_dmz_ip"; then
return 0 # DMZ is enabled
else
return 1 # DMZ is disabled
fi
else
return 1 # DMZ is disabled if start and limit are not the same
fi
}
# Function to enable or disable IP Passthrough with NAT
toggle_ippt_mode() {
is_ippt_enabled
ippt_status=$?
if [ "$ippt_status" -eq 0 ]; then
echo -e "\e[93mIP Passthrough is currently ENABLED. Would you like to DISABLE it? (y/n)\e[0m" # Yellow
read -r disable_ippt
if [ "$disable_ippt" = "y" ]; then
are_mpdn_rules_clear
mpdn_clear_status=$?
if [ "$mpdn_clear_status" -ne 0 ]; then
atcmd 'AT+QMAP="mpdn_rule",0' # Clear MPDN rule
fi
atcmd 'AT+QMAP="mpdn_rule",0,1,0,0,1' # Disable IPPT
echo -e "\e[92mIP Passthrough disabled.\e[0m" # Green
else
echo -e "\e[93mIP Passthrough remains enabled.\e[0m" # Yellow
fi
else
echo -e "\e[93mIP Passthrough is currently DISABLED. Would you like to ENABLE it? (y/n)\e[0m" # Yellow
read -r enable_ippt
if [ "$enable_ippt" = "y" ]; then
local arp_output=$(arp -n)
local device_count=0
local device_list=""
while IFS= read -r line; do
if echo "$line" | grep -q "br-lan"; then
device_count=$((device_count + 1))
mac=$(echo "$line" | awk '{print $4}')
ip=$(echo "$line" | awk '{print $2}' | tr -d '()')
echo "$device_count) $mac current IP $ip"
device_list="$device_list
$device_count $mac"
fi
done <<EOF
$arp_output
EOF
if [ "$device_count" -eq 0 ]; then
echo "No devices found. IP Passthrough cannot be enabled."
return
fi
device_count=$((device_count + 1))
echo "$device_count) Cancel"
read -p "Select what device to pass the IP to: " device_choice
if [ "$device_choice" -ne "$device_count" ] && [ "$device_choice" -gt 0 ] && [ "$device_choice" -le $((device_count - 1)) ]; then
selected_mac=$(echo "$device_list" | awk -v choice="$device_choice" '$1 == choice {print $2}')
are_mpdn_rules_clear
mpdn_clear_status=$?
if [ "$mpdn_clear_status" -ne 0 ]; then
atcmd "AT+QMAP=\"mpdn_rule\",0" # Clear MPDN rule
fi
atcmd "AT+QMAP=\"mpdn_rule\",0,1,0,1,1,\"$selected_mac\""
echo -e "\e[92mIP Passthrough enabled for device with MAC: $selected_mac\e[0m" # Green
else
echo -e "\e[93mIP Passthrough remains disabled.\e[0m" # Yellow
fi
else
echo -e "\e[93mIP Passthrough remains disabled.\e[0m" # Yellow
fi
fi
}
# Function to toggle DMZ mode based on the current state
toggle_dmz_mode() {
is_dmz_enabled
dmz_status=$?
if [ "$dmz_status" -eq 0 ]; then
echo -e "\e[93mDMZ is currently ENABLED. Would you like to DISABLE it? (y/n)\e[0m" # Yellow
read -r disable_dmz
if [ "$disable_dmz" = "y" ]; then
# Reset DHCP to default range and disable DMZ via AT command
uci set dhcp.lan.start='100'
uci set dhcp.lan.limit='150'
atcmd 'AT+QMAP="DMZ",0,4' # Disable IPv4 DMZ
echo -e "\e[92mDMZ mode disabled.\e[0m" # Green
else
echo -e "\e[93mDMZ remains enabled.\e[0m" # Yellow
fi
else
echo -e "\e[93mDMZ is currently DISABLED. Would you like to ENABLE it? (y/n)\e[0m" # Yellow
read -r enable_dmz
if [ "$enable_dmz" = "y" ]; then
local ip=$(uci get network.lan.ipaddr)
local device_ip=$(echo "$ip" | awk -F. '{print $1"."$2"."$3"."$4+1}')
uci set network.lan.ipaddr="$ip"
uci set dhcp.lan.start='2'
uci set dhcp.lan.limit='2'
atcmd "AT+QMAP=\"DMZ\",1,4,$device_ip" # Enable IPv4 DMZ
echo -e "\e[92mDMZ mode enabled. Device IP: $device_ip\e[0m" # Green
else
echo -e "\e[93mDMZ remains disabled.\e[0m" # Yellow
fi
fi
apply_changes
}
# Function to set the gateway address
set_gateway() {
get_current_settings "lan"
local gateway=$(prompt "Enter new LAN Gateway IP" "$CURRENT_IP")
uci set network.lan.ipaddr="$gateway"
apply_changes
}
# Function to set the DHCP range
set_dhcp_range() {
get_current_settings "lan"
local start=$(prompt "Enter DHCP Start" "$CURRENT_START")
local limit=$(prompt "Enter DHCP Limit" "$CURRENT_LIMIT")
uci set dhcp.lan.start="$start"
uci set dhcp.lan.limit="$limit"
apply_changes
}
# Function to set custom DNS
toggle_custom_dns() {
is_ippt_enabled
ippt_status=$?
if [ "$ippt_status" -eq 0 ]; then
echo -e "\e[93mIP Passthrough (IPPT) is enabled. Modifying DNS for 'lan_bind4' interface.\e[0m" # Yellow
interface="lan_bind4"
else
echo -e "\e[93mIP Passthrough (IPPT) is disabled. Modifying DNS for 'lan' interface.\e[0m" # Yellow
interface="lan"
fi
get_current_settings "$interface"
local dns=$(prompt "Enter DNS servers (comma-separated)" "$CURRENT_DNS")
uci set dhcp.$interface.dhcp_option="6,$dns"
apply_changes
}
# Function to use the provider's DNS (IPv4 only)
set_provider_dns() {
local dns=$(awk '/^nameserver [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/ {print $2}' /tmp/resolv.conf.d/resolv.conf.auto | tr '\n' ',' | sed 's/,$//')
echo -e "\e[93mSetting DNS to: $dns\e[0m" # Yellow
uci set dhcp.lan.dhcp_option="6,$dns"
apply_changes
}
# Helper function to prompt with a default value
prompt() {
local message="$1"
local default="$2"
read -p "$message [$default]: " input
echo "${input:-$default}"
}
# Function to get current settings for a specific interface (lan or lan_bind4)
get_current_settings() {
local interface="$1"
CURRENT_IP=$(uci get network.$interface.ipaddr 2>/dev/null || echo "Not set")
CURRENT_START=$(uci get dhcp.$interface.start 2>/dev/null || echo "Not set")
CURRENT_LIMIT=$(uci get dhcp.$interface.limit 2>/dev/null || echo "Not set")
CURRENT_DNS=$(uci get dhcp.$interface.dhcp_option | grep -oE '6,.*' | cut -d, -f2-)
}
# Main menu loop
while true; do
menu
case $choice in
1) toggle_dmz_mode ;;
2) set_gateway ;;
3) set_dhcp_range ;;
4) toggle_custom_dns ;;
5) set_provider_dns ;;
6) toggle_ippt_mode ;;
7) echo -e "\e[92mGoodbye!\e[0m"; exit 0 ;; # Green
*) echo -e "\e[91mInvalid option. Please try again.\e[0m" ;; # Red
esac
done

0
ipk-source/sdxpinn-mount-fix/CONTROL/control Executable file → Normal file
View File

0
ipk-source/sdxpinn-mount-fix/build-ipk Executable file → Normal file
View File

View File

0
ipk-source/sdxpinn-mount-fix/root/etc/init.d/mount-fix Executable file → Normal file
View File

0
ipk-source/sdxpinn-mount-fix/root/usr/bin/inotifywait Executable file → Normal file
View File

View File

@@ -1 +0,0 @@
libinotifytools.so.0.4.1

View File

@@ -1 +0,0 @@
libinotifytools.so.0.4.1

View File

View File

View File

View File

@@ -1,5 +1,5 @@
Package: sdxpinn-quecmanager
Version: 0.0.2
Version: 0.0.3
Architecture: aarch64_cortex-a53
Maintainer: Russel Yasol dr-dolomite@github.com Cameron Thompson iamromulan@github.com
Description: A custom web UI desgined to run alongside luci for Quectel RM55x modems

View File

View File

@@ -247,8 +247,13 @@ function processSimData(jsonData) {
setText("simSlot", simSlot);
// Phone Number
// If trim is an error, return no phone number
try {
const phoneNumber = extractValue(phoneResponse.response).split(",")[1].replace(/"/g, "").trim();
setText("phoneNumber", phoneNumber);
} catch (error) {
setText("phoneNumber", "-");
}
// SIM Provider and Access Technology
const providerData = extractValue(providerResponse.response).split(",");

View File

@@ -1,15 +1,13 @@
Package: tailscale
Version: 1.74.1-1
Version: 1.76.1-1
Depends: libc, tailscaled
Source: feeds/packages/net/tailscale
SourceName: tailscale
License: BSD-3-Clause
LicenseFiles: LICENSE
Section: net
SourceDateEpoch: 1671394068
Maintainer: Jan Pavlinec <jan.pavlinec1@gmail.com>
Architecture: aarch64_cortex-a53
Installed-Size: 3651096
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
by iamromulan to 1.76.1

View File

@@ -1,15 +1,13 @@
Package: tailscaled
Version: 1.74.1-1
Version: 1.76.1-1
Depends: libc, ca-bundle, kmod-tun
Source: feeds/packages/net/tailscale
SourceName: tailscaled
License: BSD-3-Clause
LicenseFiles: LICENSE
Section: net
SourceDateEpoch: 1671394068
Maintainer: Jan Pavlinec <jan.pavlinec1@gmail.com>
Architecture: aarch64_cortex-a53
Installed-Size: 6285065
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
by iamromulan to 1.76.1

View File

@@ -41,14 +41,14 @@ License: GPLv3
Package: sdxpinn-console-menu
Version: 0.0.1
Version: 0.0.2
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
MD5Sum: 42d2fd4c85b36a9c29e66092899080a4
Size: 7365
Filename: sdxpinn-console-menu_0.0.2_aarch64_cortex-a53.ipk
Source: github/iamromulan
Description: A custom CLI menu system for mamnagment of Quectel RM5xx modems
License: GPLv3
@@ -69,44 +69,44 @@ License: GPLv3
Package: sdxpinn-quecmanager
Version: 0.0.2
Version: 0.0.3
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: 88d632cf1dbae69c1bd6962ca31f600c
Size: 658836
Filename: sdxpinn-quecmanager_0.0.2_aarch64_cortex-a53.ipk
MD5Sum: c8fc47f8c59a6fc27955fccf0ff7c383
Size: 661511
Filename: sdxpinn-quecmanager_0.0.3_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
Version: 1.76.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
MD5Sum: e4fe865cf7dfc84c9f6c3f0974e049eb
Size: 9439846
Filename: tailscale_1.76.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
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.76.1
License: GPLv3
Package: tailscaled
Version: 1.74.1-1
Version: 1.76.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
MD5Sum: 5785492476bb7c205e02bd8f7b3eeb50
Size: 17506056
Filename: tailscaled_1.76.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
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.76.1
License: GPLv3

Binary file not shown.

View File

@@ -1,2 +1,2 @@
untrusted comment: signed by key 6262698f038d1226
RWRiYmmPA40SJrjSf26WsPDLeiRMMKgAWEunKjqElFEt9KJrLhXaw4jdu4S0Tf0Q9+GRSp5aW1CoHz6z118zED1TchtCuW+iIAA=
RWRiYmmPA40SJtKWNaocLLkZW3oUGqK2IKRudJU+ZgiSnnhZ80hndAJMiCkZgsq6oY+1KQ9ZV8a26zxjZe9HTDNs2+gxSTq0lQ4=