mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-07-27 13:16:35 +00:00
experimental mobile modem support
This commit is contained in:
parent
475198b5d1
commit
6d567a566f
@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
sys_conf="/etc/ppp/default"
|
sys_conf="/etc/ppp/default"
|
||||||
boot_conf="/boot/ppp/default"
|
boot_conf="/boot/ppp"
|
||||||
conf="/data/etc/ppp"
|
conf="/data/etc/ppp"
|
||||||
|
|
||||||
prog="/usr/sbin/pppd"
|
prog="/usr/sbin/pppd"
|
||||||
@ -20,7 +20,8 @@ if ! [ -d $conf ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
test -f $conf/modem || exit 0
|
test -e $conf/modem || exit 0
|
||||||
|
test -e $conf/apn || exit 0
|
||||||
|
|
||||||
test -n "$os_version" || source /etc/init.d/base
|
test -n "$os_version" || source /etc/init.d/base
|
||||||
|
|
||||||
@ -47,26 +48,10 @@ watch() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
if [ -s $conf/usb_modeswitch ]; then
|
test -e $conf/auth || touch $conf/auth
|
||||||
IFS=: venprod=($(cat $conf/usb_modeswitch))
|
test -e $conf/extra || touch $conf/extra
|
||||||
vendor=${venprod[0]}
|
test -e $conf/pin || touch $conf/pin
|
||||||
product=${venprod[1]}
|
mknod /dev/ppp c 108 0 &>/dev/null
|
||||||
# wait for usb device
|
|
||||||
if [ -n "$vendor" ] && [ -n "$product" ]; then
|
|
||||||
msg_begin "Starting usb_modeswitch"
|
|
||||||
count=0
|
|
||||||
while true; do
|
|
||||||
if lsusb | grep $vendor:$product >/dev/null 2>&1 || [ $count -gt $link_watch_timeout ]; then
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
|
|
||||||
count=$(($count + 1))
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
/usr/sbin/usb_modeswitch -c /etc/usb_modeswitch.conf -v $vendor -p $product > /var/log/usb_modeswitch.log 2>&1
|
|
||||||
msg_done
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_begin "Starting pppd"
|
msg_begin "Starting pppd"
|
||||||
|
|
||||||
@ -84,7 +69,7 @@ start() {
|
|||||||
|
|
||||||
if ! [ -e /dev/$modem ]; then
|
if ! [ -e /dev/$modem ]; then
|
||||||
msg_fail "modem /dev/$modem not present"
|
msg_fail "modem /dev/$modem not present"
|
||||||
return 1
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$prog call $provider
|
$prog call $provider
|
||||||
@ -98,8 +83,7 @@ start() {
|
|||||||
|
|
||||||
if [ $count -gt $link_watch_timeout ] || ! pidof pppd > /dev/null; then
|
if [ $count -gt $link_watch_timeout ] || ! pidof pppd > /dev/null; then
|
||||||
msg_fail
|
msg_fail
|
||||||
reboot
|
return
|
||||||
return 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
count=$(($count + 1))
|
count=$(($count + 1))
|
||||||
|
@ -1 +0,0 @@
|
|||||||
/data/etc/ppp/auth
|
|
@ -1 +0,0 @@
|
|||||||
/data/etc/ppp/apn
|
|
@ -1 +0,0 @@
|
|||||||
/data/etc/ppp/extra
|
|
@ -10,12 +10,12 @@ TIMEOUT 6
|
|||||||
'' 'ATQ0'
|
'' 'ATQ0'
|
||||||
'OK-AT-OK' 'ATZ'
|
'OK-AT-OK' 'ATZ'
|
||||||
TIMEOUT 3
|
TIMEOUT 3
|
||||||
'OK' @/etc/ppp/chatscripts/pin
|
'OK' @/data/etc/ppp/pin
|
||||||
'OK\d-AT-OK' 'ATI'
|
'OK\d-AT-OK' 'ATI'
|
||||||
'OK' 'ATZ'
|
'OK' 'ATZ'
|
||||||
'OK' 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0'
|
'OK' 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0'
|
||||||
'OK' @/etc/ppp/chatscripts/extra
|
'OK' @/data/etc/ppp/extra
|
||||||
'OK-AT-OK' @/etc/ppp/chatscripts/apn
|
'OK-AT-OK' @/data/etc/ppp/apn
|
||||||
'OK' 'ATDT*99***1#'
|
'OK' 'ATDT*99***1#'
|
||||||
TIMEOUT 30
|
TIMEOUT 30
|
||||||
CONNECT ''
|
CONNECT ''
|
||||||
|
@ -1 +0,0 @@
|
|||||||
/data/etc/ppp/pin
|
|
@ -1 +0,0 @@
|
|||||||
/data/etc/ppp/modem
|
|
@ -1,4 +1,4 @@
|
|||||||
file /etc/ppp/modem
|
file /data/etc/ppp/modem
|
||||||
file /etc/ppp/options
|
file /etc/ppp/options
|
||||||
file /etc/ppp/auth
|
file /data/etc/ppp/auth
|
||||||
connect "/usr/sbin/chat -v -t15 -f /etc/ppp/chatscripts/mobile.chat"
|
connect "/usr/sbin/chat -v -t15 -f /etc/ppp/chatscripts/mobile.chat"
|
||||||
|
@ -73,6 +73,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
|
|||||||
BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y
|
BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y
|
||||||
BR2_PACKAGE_SUNXI_BOARDS=y
|
BR2_PACKAGE_SUNXI_BOARDS=y
|
||||||
BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE="a20/Bananapi.fex"
|
BR2_PACKAGE_SUNXI_BOARDS_FEX_FILE="a20/Bananapi.fex"
|
||||||
|
BR2_PACKAGE_USB_MODESWITCH_DATA=y
|
||||||
BR2_PACKAGE_PYTHON_SSL=y
|
BR2_PACKAGE_PYTHON_SSL=y
|
||||||
BR2_PACKAGE_PYTHON_HASHLIB=y
|
BR2_PACKAGE_PYTHON_HASHLIB=y
|
||||||
BR2_PACKAGE_PYTHON_JINJA2=y
|
BR2_PACKAGE_PYTHON_JINJA2=y
|
||||||
|
@ -71,6 +71,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y
|
|||||||
BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y
|
BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y
|
||||||
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
|
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
|
||||||
BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y
|
BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y
|
||||||
|
BR2_PACKAGE_USB_MODESWITCH_DATA=y
|
||||||
BR2_PACKAGE_PYTHON_SSL=y
|
BR2_PACKAGE_PYTHON_SSL=y
|
||||||
BR2_PACKAGE_PYTHON_HASHLIB=y
|
BR2_PACKAGE_PYTHON_HASHLIB=y
|
||||||
BR2_PACKAGE_PYTHON_JINJA2=y
|
BR2_PACKAGE_PYTHON_JINJA2=y
|
||||||
|
@ -71,6 +71,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y
|
|||||||
BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y
|
BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y
|
||||||
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
|
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
|
||||||
BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y
|
BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y
|
||||||
|
BR2_PACKAGE_USB_MODESWITCH_DATA=y
|
||||||
BR2_PACKAGE_PYTHON_SSL=y
|
BR2_PACKAGE_PYTHON_SSL=y
|
||||||
BR2_PACKAGE_PYTHON_HASHLIB=y
|
BR2_PACKAGE_PYTHON_HASHLIB=y
|
||||||
BR2_PACKAGE_PYTHON_JINJA2=y
|
BR2_PACKAGE_PYTHON_JINJA2=y
|
||||||
|
@ -62,6 +62,7 @@ BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y
|
|||||||
BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y
|
BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y
|
||||||
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
|
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
|
||||||
BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y
|
BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y
|
||||||
|
BR2_PACKAGE_USB_MODESWITCH_DATA=y
|
||||||
BR2_PACKAGE_PYTHON_SSL=y
|
BR2_PACKAGE_PYTHON_SSL=y
|
||||||
BR2_PACKAGE_PYTHON_HASHLIB=y
|
BR2_PACKAGE_PYTHON_HASHLIB=y
|
||||||
BR2_PACKAGE_PYTHON_JINJA2=y
|
BR2_PACKAGE_PYTHON_JINJA2=y
|
||||||
|
@ -72,6 +72,7 @@ BR2_PACKAGE_RPI_FIRMWARE=y
|
|||||||
BR2_PACKAGE_RPI_FIRMWARE_X=y
|
BR2_PACKAGE_RPI_FIRMWARE_X=y
|
||||||
BR2_PACKAGE_I2C_TOOLS=y
|
BR2_PACKAGE_I2C_TOOLS=y
|
||||||
BR2_PACKAGE_RPI_USERLAND=y
|
BR2_PACKAGE_RPI_USERLAND=y
|
||||||
|
BR2_PACKAGE_USB_MODESWITCH_DATA=y
|
||||||
BR2_PACKAGE_PYTHON_SSL=y
|
BR2_PACKAGE_PYTHON_SSL=y
|
||||||
BR2_PACKAGE_PYTHON_HASHLIB=y
|
BR2_PACKAGE_PYTHON_HASHLIB=y
|
||||||
BR2_PACKAGE_PYTHON_JINJA2=y
|
BR2_PACKAGE_PYTHON_JINJA2=y
|
||||||
|
@ -73,6 +73,7 @@ BR2_PACKAGE_RPI_FIRMWARE=y
|
|||||||
BR2_PACKAGE_RPI_FIRMWARE_X=y
|
BR2_PACKAGE_RPI_FIRMWARE_X=y
|
||||||
BR2_PACKAGE_I2C_TOOLS=y
|
BR2_PACKAGE_I2C_TOOLS=y
|
||||||
BR2_PACKAGE_RPI_USERLAND=y
|
BR2_PACKAGE_RPI_USERLAND=y
|
||||||
|
BR2_PACKAGE_USB_MODESWITCH_DATA=y
|
||||||
BR2_PACKAGE_PYTHON_SSL=y
|
BR2_PACKAGE_PYTHON_SSL=y
|
||||||
BR2_PACKAGE_PYTHON_HASHLIB=y
|
BR2_PACKAGE_PYTHON_HASHLIB=y
|
||||||
BR2_PACKAGE_PYTHON_JINJA2=y
|
BR2_PACKAGE_PYTHON_JINJA2=y
|
||||||
|
@ -72,6 +72,7 @@ BR2_PACKAGE_RPI_FIRMWARE_X=y
|
|||||||
BR2_PACKAGE_I2C_TOOLS=y
|
BR2_PACKAGE_I2C_TOOLS=y
|
||||||
BR2_PACKAGE_RPI_ARMMEM=y
|
BR2_PACKAGE_RPI_ARMMEM=y
|
||||||
BR2_PACKAGE_RPI_USERLAND=y
|
BR2_PACKAGE_RPI_USERLAND=y
|
||||||
|
BR2_PACKAGE_USB_MODESWITCH_DATA=y
|
||||||
BR2_PACKAGE_PYTHON_SSL=y
|
BR2_PACKAGE_PYTHON_SSL=y
|
||||||
BR2_PACKAGE_PYTHON_HASHLIB=y
|
BR2_PACKAGE_PYTHON_HASHLIB=y
|
||||||
BR2_PACKAGE_PYTHON_JINJA2=y
|
BR2_PACKAGE_PYTHON_JINJA2=y
|
||||||
|
@ -7,6 +7,7 @@ function usage() {
|
|||||||
echo "Available options:"
|
echo "Available options:"
|
||||||
echo " <-i image_file> - indicates the path to the image file (e.g. -i /home/user/Download/file.img.gz)"
|
echo " <-i image_file> - indicates the path to the image file (e.g. -i /home/user/Download/file.img.gz)"
|
||||||
echo " <-d sdcard_dev> - indicates the path to the sdcard block device (e.g. -d /dev/mmcblk0)"
|
echo " <-d sdcard_dev> - indicates the path to the sdcard block device (e.g. -d /dev/mmcblk0)"
|
||||||
|
echo " [-m modem:apn:user:pwd:pin] - configures the mobile network modem (e.g. -m ttyUSB0:internet)"
|
||||||
echo " [-n ssid:psk] - sets the wireless network name and key (e.g. -n mynet:mykey1234)"
|
echo " [-n ssid:psk] - sets the wireless network name and key (e.g. -n mynet:mykey1234)"
|
||||||
echo " [-s ip/cidr:gw:dns] - sets a static IP configuration instead of DHCP (e.g. -s 192.168.1.101/24:192.168.1.1:8.8.8.8)"
|
echo " [-s ip/cidr:gw:dns] - sets a static IP configuration instead of DHCP (e.g. -s 192.168.1.101/24:192.168.1.1:8.8.8.8)"
|
||||||
exit 1
|
exit 1
|
||||||
@ -30,6 +31,14 @@ while getopts "a:d:f:h:i:ln:o:p:s:w" o; do
|
|||||||
i)
|
i)
|
||||||
DISK_IMG=$OPTARG
|
DISK_IMG=$OPTARG
|
||||||
;;
|
;;
|
||||||
|
m)
|
||||||
|
IFS=":" SETTINGS=($OPTARG)
|
||||||
|
MODEM=${SETTINGS[0]}
|
||||||
|
APN=${SETTINGS[1]}
|
||||||
|
MUSER=${SETTINGS[2]}
|
||||||
|
MPWD=${SETTINGS[3]}
|
||||||
|
PIN=${SETTINGS[4]}
|
||||||
|
;;
|
||||||
n)
|
n)
|
||||||
IFS=":" NETWORK=($OPTARG)
|
IFS=":" NETWORK=($OPTARG)
|
||||||
SSID=${NETWORK[0]}
|
SSID=${NETWORK[0]}
|
||||||
@ -115,6 +124,25 @@ if [ -n "$SSID" ]; then
|
|||||||
echo -e "}\n" >> $conf
|
echo -e "}\n" >> $conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# modem
|
||||||
|
if [ -n "$MODEM" ]; then
|
||||||
|
msg "creating mobile network configuration"
|
||||||
|
conf=$BOOT/ppp
|
||||||
|
mkdir -p $conf
|
||||||
|
echo $MODEM > $conf/modem
|
||||||
|
echo "AT+CGDCONT=1,\"IP\",\"$APN\"" > $conf/apn
|
||||||
|
echo > $conf/extra
|
||||||
|
echo > $conf/auth
|
||||||
|
echo > $conf/pin
|
||||||
|
if [ -n "$MUSER" ]; then
|
||||||
|
echo "user \"$MUSER\"" > $conf/auth
|
||||||
|
echo "password \"$MPWD\"" >> $conf/auth
|
||||||
|
fi
|
||||||
|
if [ -n "$PIN" ]; then
|
||||||
|
echo "AT+CPIN=$PIN" > $conf/pin
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# static ip
|
# static ip
|
||||||
if [ -n "$IP" ] && [ -n "$GW" ] && [ -n "$DNS" ]; then
|
if [ -n "$IP" ] && [ -n "$GW" ] && [ -n "$DNS" ]; then
|
||||||
msg "setting static IP configuration"
|
msg "setting static IP configuration"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user