43e4e1f4a5
Signed-off-by: Filip Moc <lede@moc6.cz>
64 lines
1.6 KiB
Bash
64 lines
1.6 KiB
Bash
#!/bin/sh /etc/rc.common
|
|
|
|
START=99
|
|
|
|
adb_exec() {
|
|
adb -s "$serial" shell "( $1 ) >/dev/null 2>&1"'; printf "\nEXIT_CODE: %i\n" $?' | head -c 64 | grep -qx 'EXIT_CODE: 0\r\?'
|
|
}
|
|
|
|
enablemodem_do() {
|
|
logger -t adb-enablemodem 'INFO: waiting for device'
|
|
adb wait-for-device
|
|
serial="$(adb get-serialno)"
|
|
|
|
vendor_id="$(adb -s "$serial" shell 'uci get product.usb.vid' | head -c 16 | tr -d '\r\n')"
|
|
product_id="$(adb -s "$serial" shell 'uci get product.usb.pid' | head -c 16 | tr -d '\r\n')"
|
|
|
|
case "$vendor_id:$product_id" in
|
|
"0x2357:0x000D") # TP-LINK LTE MODULE
|
|
case "$1" in
|
|
start)
|
|
if adb_exec '
|
|
chmod +x /WEBSERVER/www/cgi-bin/*
|
|
fds="$(ls /proc/$$/fd | grep -v "^[012]$")"
|
|
for fd in $fds; do
|
|
eval "exec $fd>&-"
|
|
done
|
|
start-stop-daemon -x httpd -S -- -h /WEBSERVER/www/
|
|
'; then
|
|
logger -t adb-enablemodem 'INFO: httpd on modem started'
|
|
else
|
|
logger -t adb-enablemodem 'ERROR: failed to start httpd on modem'
|
|
fi
|
|
option_newid='/sys/bus/usb-serial/drivers/option1/new_id'
|
|
if [ -e "$option_newid" ]; then
|
|
printf '%s %s' "$vendor_id" "$product_id" > "$option_newid"
|
|
fi
|
|
;;
|
|
stop)
|
|
if adb_exec 'start-stop-daemon -x httpd -K'; then
|
|
logger -t adb-enablemodem 'INFO: httpd on modem stopped'
|
|
else
|
|
logger -t adb-enablemodem 'ERROR: failed to stop httpd on modem'
|
|
fi
|
|
;;
|
|
esac
|
|
;;
|
|
*)
|
|
logger -t adb-enablemodem "ERROR: unknown device $vendor_id:$product_id"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
start() {
|
|
( enablemodem_do start ) &
|
|
}
|
|
|
|
stop() {
|
|
( enablemodem_do stop ) &
|
|
}
|
|
|
|
restart() {
|
|
( enablemodem_do stop; enablemodem_do start ) &
|
|
}
|
|
|