From 8b7c1ec8ef710515038998ca34b6adab39da72f3 Mon Sep 17 00:00:00 2001 From: Quentin Dufour Date: Tue, 23 Mar 2021 13:38:36 +0100 Subject: [PATCH] Add our custom scripts --- files/etc/init.d/wwan_loop | 14 ++++++++++++++ files/usr/sbin/get_lcid | 13 +++++++++++++ files/usr/sbin/promsignal | 23 +++++++++++++++++++++++ files/usr/sbin/wwan_loop | 3 +++ files/usr/sbin/wwan_reconnect | 14 ++++++++++++++ files/usr/sbin/wwan_traffic | 13 +++++++++++++ 6 files changed, 80 insertions(+) create mode 100755 files/etc/init.d/wwan_loop create mode 100755 files/usr/sbin/get_lcid create mode 100755 files/usr/sbin/promsignal create mode 100755 files/usr/sbin/wwan_loop create mode 100755 files/usr/sbin/wwan_reconnect create mode 100755 files/usr/sbin/wwan_traffic diff --git a/files/etc/init.d/wwan_loop b/files/etc/init.d/wwan_loop new file mode 100755 index 0000000..0c98c2e --- /dev/null +++ b/files/etc/init.d/wwan_loop @@ -0,0 +1,14 @@ +#!/bin/sh /etc/rc.common + +USE_PROCD=1 +START=99 +STOP=01 + +start_service() { + procd_open_instance + procd_set_param command /usr/sbin/wwan_loop.sh + procd_set_param stdout 1 + procd_set_param stderr 1 + procd_close_instance +} + diff --git a/files/usr/sbin/get_lcid b/files/usr/sbin/get_lcid new file mode 100755 index 0000000..0aa5490 --- /dev/null +++ b/files/usr/sbin/get_lcid @@ -0,0 +1,13 @@ +#!/bin/sh +rm -f /tmp/logread.txt + +logread -f > /tmp/logread.txt & +LOGREAD_PID=$! + +mmcli -m 0 --command="AT+CREG?" > /dev/null +kill -9 ${LOGREAD_PID} + +ATRES=$(grep -Eo '\+CREG: [0-9],[0-9],"[0-9A-F]+","[0-9A-F]+"' /tmp/logread.txt) +rm -f /tmp/logread.txt + +echo $ATRES | cut -d, -f4 | grep -Eo '[0-9A-F]+' diff --git a/files/usr/sbin/promsignal b/files/usr/sbin/promsignal new file mode 100755 index 0000000..09ebd1e --- /dev/null +++ b/files/usr/sbin/promsignal @@ -0,0 +1,23 @@ +#!/bin/sh + +# Global Configuration +mmcli -m 0 --signal-setup=10 2>&1 1>/dev/null + +# Fetch & parse signal from MM +RES=$(mmcli -m 0 --signal-get -K) +RSRQ=$(echo -en "$RES" | grep modem.signal.lte.rsrq | grep -Eo "\-?[0-9]*.[0-9]*$") +RSRP=$(echo -en "$RES" | grep modem.signal.lte.rsrp | grep -Eo "\-?[0-9]*.[0-9]*$") +SNR=$(echo -en "$RES" | grep modem.signal.lte.snr | grep -Eo "\-?[0-9]*.[0-9]*$") + +# Run AT Command to get LCID not reported by MM +rm -f /tmp/logread.txt +logread -f > /tmp/logread.txt & +LOGREAD_PID=$! +mmcli -m 0 --command="AT+CREG?" > /dev/null +kill -9 ${LOGREAD_PID} +ATRES=$(grep -Eo '\+CREG: [0-9],[0-9],"[0-9A-F]+","[0-9A-F]+"' /tmp/logread.txt) +rm -f /tmp/logread.txt +LCID=$(echo $ATRES | cut -d, -f4 | grep -Eo '[0-9A-F]+') + +# Display parsed data +echo "rsrq=$RSRQ, rsrp=$RSRP, snr=$SNR, lcid=$LCID" diff --git a/files/usr/sbin/wwan_loop b/files/usr/sbin/wwan_loop new file mode 100755 index 0000000..d627218 --- /dev/null +++ b/files/usr/sbin/wwan_loop @@ -0,0 +1,3 @@ +#!/bin/sh + +mmcli --modem 0 --monitor-state | while read r ; do /usr/sbin/wwan0_reconnect ; done diff --git a/files/usr/sbin/wwan_reconnect b/files/usr/sbin/wwan_reconnect new file mode 100755 index 0000000..7216f14 --- /dev/null +++ b/files/usr/sbin/wwan_reconnect @@ -0,0 +1,14 @@ +#!/bin/sh + +MODEM_STATE=$(mmcli --modem 0 --output-keyvalue|grep "modem.generic.state"|grep -o "\w*$") +BEARER=$(mmcli --modem 0 --output-keyvalue|grep 'modem.generic.bearers.value\[1\]'|grep -o '\d*$') +BEARER_CONNECTED=$(mmcli -b $BEARER --output-keyvalue|grep bearer.status.connected|grep -o "\w*$") +echo "(modem state: $MODEM_STATE, bearer connected: $BEARER_CONNECTED, bearer id: $BEARER)" + +if [[ $MODEM_STATE == 'registered' ]] ; then + echo "trigger simple-connect" + ifup broadband + sleep 600 # prevent loops +else + echo "do nothing" +fi diff --git a/files/usr/sbin/wwan_traffic b/files/usr/sbin/wwan_traffic new file mode 100755 index 0000000..6976548 --- /dev/null +++ b/files/usr/sbin/wwan_traffic @@ -0,0 +1,13 @@ +#!/usr/bin/lua + +local filesize = require "filesize" +local rxfile = io.open("/sys/class/net/wwan0/statistics/rx_bytes", "r") +local txfile = io.open("/sys/class/net/wwan0/statistics/tx_bytes", "r") + +local rx = filesize(tonumber(rxfile:read("*all"))) +local tx = filesize(tonumber(txfile:read("*all"))) + +print("RX:", rx, "TX:",tx) + +rxfile:close() +txfile:close()