Compare commits
7 Commits
a637be5d74
...
981e49c6f8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
981e49c6f8 | ||
|
|
72437fb255 | ||
|
|
706fa0a24f | ||
|
|
9dde392377 | ||
|
|
b93331f008 | ||
|
|
067f4a62a7 | ||
|
|
fbbe340925 |
@ -11,7 +11,7 @@ uci -q batch <<-EOF >/dev/null
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
uci set dockerd.globals.data_root=/overlay/upper/opt/docker
|
uci set dockerd.globals.data_root=/overlay/upper/opt/docker
|
||||||
|
WAN_ZONE=
|
||||||
if grep -qFw nas /proc/device-tree/chosen/default-firewall; then
|
if grep -qFw nas /proc/device-tree/chosen/default-firewall; then
|
||||||
WAN_ZONE=`uci show firewall | grep -E '^firewall\.@zone\[[0-9]+\]\.name='"'wan'" | head -n1 | head -c -12`
|
WAN_ZONE=`uci show firewall | grep -E '^firewall\.@zone\[[0-9]+\]\.name='"'wan'" | head -n1 | head -c -12`
|
||||||
uci -q batch <<-EOF >/dev/null
|
uci -q batch <<-EOF >/dev/null
|
||||||
@ -42,6 +42,22 @@ EOF
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
WWAN_PROTO=`uci -q get network.wwan.proto`
|
||||||
|
if [ "none" = "$WWAN_PROTO" ]; then
|
||||||
|
uci -q batch <<-EOF >/dev/null
|
||||||
|
set network.wwan.proto='dhcp'
|
||||||
|
commit network
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$WWAN_PROTO" ]; then
|
||||||
|
[ -n "$WAN_ZONE" ] || WAN_ZONE=`uci show firewall | grep -E '^firewall\.@zone\[[0-9]+\]\.name='"'wan'" | head -n1 | head -c -12`
|
||||||
|
uci -q batch <<-EOF >/dev/null
|
||||||
|
add_list ${WAN_ZONE}.network='wwan'
|
||||||
|
commit firewall
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
if ! grep -qFw router /proc/device-tree/chosen/default-firewall; then
|
if ! grep -qFw router /proc/device-tree/chosen/default-firewall; then
|
||||||
|
|
||||||
WAN_IF=`jsonfilter -i /etc/board.json -e '@.network.wan.device'`
|
WAN_IF=`jsonfilter -i /etc/board.json -e '@.network.wan.device'`
|
||||||
|
|||||||
@ -50,7 +50,6 @@ rockchip_setup_interfaces()
|
|||||||
friendlyarm,nanopi-r6s)
|
friendlyarm,nanopi-r6s)
|
||||||
ucidef_set_interfaces_lan_wan 'eth0 eth2' 'eth1'
|
ucidef_set_interfaces_lan_wan 'eth0 eth2' 'eth1'
|
||||||
;;
|
;;
|
||||||
linkease,easepi-r2|\
|
|
||||||
hinlink,opc-h68k|\
|
hinlink,opc-h68k|\
|
||||||
lunzn,fastrhino-r68s|\
|
lunzn,fastrhino-r68s|\
|
||||||
lyt,t68m|\
|
lyt,t68m|\
|
||||||
@ -69,6 +68,10 @@ rockchip_setup_interfaces()
|
|||||||
sinovoip,rk3568-bpi-r2pro)
|
sinovoip,rk3568-bpi-r2pro)
|
||||||
ucidef_set_interfaces_lan_wan 'lan0 lan1 lan2 lan3' 'eth0'
|
ucidef_set_interfaces_lan_wan 'lan0 lan1 lan2 lan3' 'eth0'
|
||||||
;;
|
;;
|
||||||
|
linkease,easepi-r2)
|
||||||
|
ucidef_set_interfaces_lan_wan 'eth1 eth2 eth3' 'eth0'
|
||||||
|
ucidef_set_interface "wwan" device "usb4g" metric "100" protocol "none"
|
||||||
|
;;
|
||||||
radxa,e24c)
|
radxa,e24c)
|
||||||
ucidef_add_switch "switch0" \
|
ucidef_add_switch "switch0" \
|
||||||
"0:wan" "1:lan" "2:lan" "3:lan" "6t@eth0"
|
"0:wan" "1:lan" "2:lan" "3:lan" "6t@eth0"
|
||||||
|
|||||||
@ -0,0 +1,99 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Copyright (C) 2026 jjm2473@gmail.com
|
||||||
|
|
||||||
|
[[ "$ACTION" = bind ]] || exit
|
||||||
|
[[ "$PRODUCT" = "2ecc/3012/*" ]] || exit
|
||||||
|
|
||||||
|
TTYNAME=
|
||||||
|
if [[ $(cat "/sys${DEVPATH}/bInterfaceNumber") = "02" ]]; then
|
||||||
|
TTYNAME=$(cat /sys${DEVPATH}/tty*/tty/tty*/uevent | grep '^DEVNAME=' | head -1 | cut -d= -f2)
|
||||||
|
fi
|
||||||
|
|
||||||
|
LOG=/tmp/log/ml307r-at-$TTYNAME.log
|
||||||
|
|
||||||
|
send_cmd() {
|
||||||
|
echo -ne "$2"'\r\n' >"$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# dev, cmd, result, timeout
|
||||||
|
send_and_wait() {
|
||||||
|
send_cmd "$1" "$2"
|
||||||
|
local seconds
|
||||||
|
for seconds in $(seq 1 ${4:-1}); do
|
||||||
|
grep -qF "$3" "$LOG" && return 0
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
ping_at() {
|
||||||
|
local seconds
|
||||||
|
for seconds in $(seq 1 ${2:-1}); do
|
||||||
|
send_and_wait "$1" "AT" "OK" 1 && return 0
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
LOGPID=
|
||||||
|
clean_and_exit() {
|
||||||
|
if [[ -n "$LOGPID" ]]; then
|
||||||
|
kill "$LOGPID" 2>/dev/null
|
||||||
|
wait "$LOGPID" 2>/dev/null
|
||||||
|
fi
|
||||||
|
exit $1
|
||||||
|
}
|
||||||
|
|
||||||
|
# RNDIS: AT+MDIALUPCFG="mode",0
|
||||||
|
# ECM: AT+MDIALUPCFG="mode",1
|
||||||
|
# Dialup: AT+MDIALUP=1,1
|
||||||
|
# Auto dialup: AT+MDIALUPCFG="auto",1
|
||||||
|
# SIM card status: AT+CPIN?
|
||||||
|
# SIM card ICCID: AT+MCCID
|
||||||
|
# SIM card IMSI: AT+CIMI
|
||||||
|
# Modem IMEI: AT+CGSN=1
|
||||||
|
# Network status: AT+CEREG?
|
||||||
|
# IP address: AT+MDIALUP?
|
||||||
|
# Signal quality: AT+CSQ
|
||||||
|
# Reboot: AT+MREBOOT=0
|
||||||
|
|
||||||
|
if [[ -n "$TTYNAME" && -e "/dev/$TTYNAME" ]]; then
|
||||||
|
# rename /dev/$TTYNAME to avoid conflict with other process
|
||||||
|
TTYNAMEEX="tmp-ml307r-$TTYNAME"
|
||||||
|
while [ -e "/dev/$TTYNAME" ]; do
|
||||||
|
rm -f "/dev/$TTYNAMEEX"
|
||||||
|
mv "/dev/$TTYNAME" "/dev/$TTYNAMEEX"
|
||||||
|
done
|
||||||
|
sleep 1
|
||||||
|
cat "/dev/$TTYNAMEEX" >"$LOG" 2>/dev/null &
|
||||||
|
LOGPID=$!
|
||||||
|
ping_at "/dev/$TTYNAMEEX" 4 || { clean_and_exit 1; }
|
||||||
|
>"$LOG"
|
||||||
|
|
||||||
|
if ! send_and_wait "/dev/$TTYNAMEEX" 'AT+MDIALUPCFG="auto"' '+MDIALUPCFG: "auto",' 1 || grep -qF '+MDIALUPCFG: "auto",1' "$LOG"; then
|
||||||
|
logger -t "ml307r" "send AT+MDIALUP=1,1 to $TTYNAME"
|
||||||
|
send_cmd "/dev/$TTYNAMEEX" 'AT+MDIALUP=1,1'
|
||||||
|
sleep 5
|
||||||
|
mv "/dev/$TTYNAMEEX" "/dev/$TTYNAME"
|
||||||
|
else
|
||||||
|
logger -t "ml307r" "set auto dialup to $TTYNAME"
|
||||||
|
|
||||||
|
SUCCESS=false
|
||||||
|
for i in $(seq 1 3); do
|
||||||
|
send_and_wait "/dev/$TTYNAMEEX" 'AT+MDIALUPCFG="auto",1' "OK" 1 || continue
|
||||||
|
send_and_wait "/dev/$TTYNAMEEX" 'AT+MDIALUPCFG="auto"' '+MDIALUPCFG: "auto",1' 1 && { SUCCESS=true; break; }
|
||||||
|
logger -t "ml307r" "failed to set auto dialup to $TTYNAME, retry $i"
|
||||||
|
done
|
||||||
|
if $SUCCESS; then
|
||||||
|
sleep 2
|
||||||
|
logger -t "ml307r" "reboot $TTYNAME to apply auto dialup"
|
||||||
|
send_cmd "/dev/$TTYNAMEEX" 'AT+MREBOOT=0'
|
||||||
|
sleep 1
|
||||||
|
else
|
||||||
|
logger -t "ml307r" "failed to set auto dialup to $TTYNAME"
|
||||||
|
mv "/dev/$TTYNAMEEX" "/dev/$TTYNAME"
|
||||||
|
clean_and_exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
clean_and_exit 0
|
||||||
|
fi
|
||||||
@ -424,6 +424,13 @@ board_set_iface_smp_affinity() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
serial_option_new_id() {
|
||||||
|
# ASR Microelectronics ML307R
|
||||||
|
echo 2ecc 3012 ff > /sys/bus/usb-serial/drivers/option1/new_id
|
||||||
|
# Quectel EC801E
|
||||||
|
echo 2c7c 0903 ff > /sys/bus/usb-serial/drivers/option1/new_id
|
||||||
|
}
|
||||||
|
|
||||||
board_wait_wifi() {
|
board_wait_wifi() {
|
||||||
local seconds
|
local seconds
|
||||||
[[ -f "/etc/uci-defaults/01-rk35xx-wifi" ]] || return 0
|
[[ -f "/etc/uci-defaults/01-rk35xx-wifi" ]] || return 0
|
||||||
@ -445,4 +452,6 @@ board_fixup_iface_name
|
|||||||
|
|
||||||
board_set_iface_smp_affinity
|
board_set_iface_smp_affinity
|
||||||
|
|
||||||
|
serial_option_new_id
|
||||||
|
|
||||||
board_wait_wifi
|
board_wait_wifi
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user