mirror of
https://github.com/sixfab/Sixfab_PPP_Installer
synced 2024-09-28 17:31:00 +00:00
Merge cc99c34a5e
into fc6506b125
This commit is contained in:
commit
eb250db083
@ -3,16 +3,19 @@
|
|||||||
# Created on July 12, 2019 by Saeed Johar (saeedjohar)
|
# Created on July 12, 2019 by Saeed Johar (saeedjohar)
|
||||||
# Revised on November 19, 2020 by Yasin Kaya (selengalp)
|
# Revised on November 19, 2020 by Yasin Kaya (selengalp)
|
||||||
|
|
||||||
|
source src/functions.sh
|
||||||
|
|
||||||
SIXFAB_PATH="/opt/sixfab"
|
SIXFAB_PATH="/opt/sixfab"
|
||||||
PPP_PATH="/opt/sixfab/ppp_connection_manager"
|
PPP_PATH="/opt/sixfab/ppp_connection_manager"
|
||||||
|
|
||||||
REPO_PATH="https://raw.githubusercontent.com/sixfab/Sixfab_PPP_Installer"
|
# NEEDS TO BE CHANGED TO SIXFAB IF PULLED
|
||||||
|
REPO_PATH="https://raw.githubusercontent.com/bzt/Sixfab_PPP_Installer"
|
||||||
BRANCH=master
|
BRANCH=master
|
||||||
SOURCE_PATH="$REPO_PATH/$BRANCH/src"
|
SOURCE_PATH="$REPO_PATH/$BRANCH/src"
|
||||||
SCRIPT_PATH="$REPO_PATH/$BRANCH/src/reconnect_scripts"
|
SCRIPT_PATH="$REPO_PATH/$BRANCH/src/reconnect_scripts"
|
||||||
RECONNECT_SCRIPT_NAME="ppp_reconnect.sh"
|
MANAGER_SCRIPT_NAME="jetson_ppp_connection_manager.sh"
|
||||||
MANAGER_SCRIPT_NAME="ppp_connection_manager.sh"
|
SERVICE_NAME="jetson_ppp_connection_manager.service"
|
||||||
SERVICE_NAME="ppp_connection_manager.service"
|
UDEV_RULE_NAME="20-usb-bus.rules"
|
||||||
|
|
||||||
YELLOW='\033[1;33m'
|
YELLOW='\033[1;33m'
|
||||||
RED='\033[0;31m'
|
RED='\033[0;31m'
|
||||||
@ -139,5 +142,58 @@ if ! (grep -q 'sudo route' /etc/ppp/ip-up ); then
|
|||||||
echo "sudo route add default ppp0" >> /etc/ppp/ip-up
|
echo "sudo route add default ppp0" >> /etc/ppp/ip-up
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
while [ 1 ]
|
||||||
|
do
|
||||||
|
colored_echo "Do you want to activate auto connect service at boot up? [Y/n]"
|
||||||
|
read auto_reconnect
|
||||||
|
|
||||||
|
colored_echo "You chose $auto_connect" ${GREEN}
|
||||||
|
|
||||||
|
case $auto_reconnect in
|
||||||
|
[Yy]* ) colored_echo "Copying setup file..."
|
||||||
|
|
||||||
|
wget --no-check-certificate $SOURCE_PATH/$SERVICE_NAME -O $SERVICE_NAME
|
||||||
|
if [[ $? -ne 0 ]]; then colored_echo "Download failed" ${RED}; exit 1; fi
|
||||||
|
|
||||||
|
wget --no-check-certificate $SOURCE_PATH/functions.sh -O functions.sh
|
||||||
|
if [[ $? -ne 0 ]]; then colored_echo "Download failed" ${RED}; exit 1; fi
|
||||||
|
|
||||||
|
wget --no-check-certificate $SOURCE_PATH/configs.sh -O configs.sh
|
||||||
|
if [[ $? -ne 0 ]]; then colored_echo "Download failed" ${RED}; exit 1; fi
|
||||||
|
|
||||||
|
wget --no-check-certificate $SOURCE_PATH/jetson_configure_modem.sh -O jetson_configure_modem.sh
|
||||||
|
if [[ $? -ne 0 ]]; then colored_echo "Download failed" ${RED}; exit 1; fi
|
||||||
|
|
||||||
|
wget --no-check-certificate $SOURCE_PATH/$MANAGER_SCRIPT_NAME -O $MANAGER_SCRIPT_NAME
|
||||||
|
if [[ $? -ne 0 ]]; then colored_echo "Download failed" ${RED}; exit 1; fi
|
||||||
|
|
||||||
|
wget --no-check-certificate $SOURCE_PATH/$UDEV_RULE_NAME -O $UDEV_RULE_NAME
|
||||||
|
if [[ $? -ne 0 ]]; then colored_echo "Download failed" ${RED}; exit 1; fi
|
||||||
|
|
||||||
|
# APN Configuration
|
||||||
|
sed -i "s/SIM_APN/$carrierapn/" jetson_configure_modem.sh
|
||||||
|
|
||||||
|
# Devicename
|
||||||
|
sed -i "s/DEVICE/$devicename/" jetson_configure_modem.sh
|
||||||
|
sed -i "s/DEVICE/$devicename/" functions.sh
|
||||||
|
|
||||||
|
mv functions.sh $PPP_PATH
|
||||||
|
mv configs.sh $PPP_PATH
|
||||||
|
mv jetson_configure_modem.sh $PPP_PATH
|
||||||
|
mv $MANAGER_SCRIPT_NAME $PPP_PATH
|
||||||
|
mv $SERVICE_NAME /etc/systemd/system/
|
||||||
|
mv $UDEV_RULE_NAME /etc/udev/rules.d/
|
||||||
|
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable $SERVICE_NAME
|
||||||
|
|
||||||
|
break;;
|
||||||
|
|
||||||
|
[Nn]* ) echo -e "${YELLOW}To connect to internet run ${BLUE}\"sudo pon\"${YELLOW} and to disconnect run ${BLUE}\"sudo poff\" ${SET}"
|
||||||
|
break;;
|
||||||
|
*) colored_echo "Wrong Selection, Select among Y or n" ${RED};;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
read -p "Press ENTER key to reboot" ENTER
|
read -p "Press ENTER key to reboot" ENTER
|
||||||
reboot
|
reboot
|
||||||
|
3
src/20-usb-bus.rules
Normal file
3
src/20-usb-bus.rules
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# UDEV RULE FOR SIXFAB WITH EC-25-E
|
||||||
|
SUBSYSTEMS=="usb", ENV{ID_USB_INTERFACE_NUM}="$attr{bInterfaceNumber}"
|
||||||
|
SUBSYSTEMS=="usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="0125", SYMLINK+="sixfab$env{ID_USB_INTERFACE_NUM}", TAG+="systemd"
|
@ -10,6 +10,9 @@ CYAN='\033[0;36m'
|
|||||||
PURPLE='\033[0;35m'
|
PURPLE='\033[0;35m'
|
||||||
SET='\033[0m'
|
SET='\033[0m'
|
||||||
|
|
||||||
|
# default arguments
|
||||||
|
PORT=/dev/DEVICE
|
||||||
|
|
||||||
function debug
|
function debug
|
||||||
{
|
{
|
||||||
ECHO_PARAM=${2:-''}
|
ECHO_PARAM=${2:-''}
|
||||||
@ -25,14 +28,14 @@ function check_network()
|
|||||||
NETWORK_OK=0
|
NETWORK_OK=0
|
||||||
|
|
||||||
debug "SIM Status: " "-n" # no line break
|
debug "SIM Status: " "-n" # no line break
|
||||||
atcom AT+CPIN? | grep "CPIN: READY"
|
atcom -p $PORT AT+CPIN? | grep "CPIN: READY"
|
||||||
SIM_READY=$?
|
SIM_READY=$?
|
||||||
|
|
||||||
if [[ $SIM_READY -ne 0 ]]; then atcom AT+CPIN? | grep "CPIN:"; fi
|
if [[ $SIM_READY -ne 0 ]]; then atcom -p $PORT AT+CPIN? | grep "CPIN:"; fi
|
||||||
|
|
||||||
|
|
||||||
debug "Network Registration Status: " "-n" # no line break
|
debug "Network Registration Status: " "-n" # no line break
|
||||||
NR_TEXT=`atcom AT+CREG? | grep "CREG:"`
|
NR_TEXT=`atcom -p $PORT AT+CREG? | grep "CREG:"`
|
||||||
echo $NR_TEXT
|
echo $NR_TEXT
|
||||||
|
|
||||||
# For super SIM
|
# For super SIM
|
||||||
|
56
src/jetson_configure_modem.sh
Normal file
56
src/jetson_configure_modem.sh
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source functions.sh
|
||||||
|
|
||||||
|
# only for "2: 3G, 4G/LTE Base Shield"
|
||||||
|
|
||||||
|
# default arguments
|
||||||
|
APN=SIM_APN
|
||||||
|
PORT=/dev/DEVICE
|
||||||
|
|
||||||
|
### Modem configuration for RMNET/PPP mode ##################################
|
||||||
|
debug "Checking APN and Modem Modem..."
|
||||||
|
|
||||||
|
# APN Configuration
|
||||||
|
# -----------------
|
||||||
|
atcom -p $PORT "AT+CGDCONT?" | grep $APN > /dev/null
|
||||||
|
|
||||||
|
if [[ $? -ne 0 ]]; then
|
||||||
|
atcom -p $PORT "AT+CGDCONT=1,\"IPV4V6\",\"$APN\""
|
||||||
|
debug "APN is updated."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check the vendor
|
||||||
|
# ON JETSON ONLY THE vendor:product ID is SHOWN
|
||||||
|
lsusb | grep 2c7c >> /dev/null
|
||||||
|
IS_QUECTEL=$?
|
||||||
|
|
||||||
|
|
||||||
|
# Modem Mode Configuration
|
||||||
|
# ------------------------
|
||||||
|
# For Quectel
|
||||||
|
if [[ $IS_QUECTEL -eq 0 ]]; then
|
||||||
|
|
||||||
|
# Quectel EC25-E
|
||||||
|
lsusb | grep 0125 > /dev/null
|
||||||
|
MODEL_EC25E=$?
|
||||||
|
|
||||||
|
if [[ $MODEL_EC25E -eq 0 ]]; then
|
||||||
|
|
||||||
|
# EC25 or derives.
|
||||||
|
sudo pon
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Unknown
|
||||||
|
else
|
||||||
|
debug "The cellular module couldn't be detected!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
### End of Modem configuration for RMNET/PPP mode ############################
|
||||||
|
|
||||||
|
|
||||||
|
# Check the network is ready
|
||||||
|
# --------------------------
|
||||||
|
if check_network -eq 0; then exit 0; else debug "Network registration is failed!. Modem configuration is unsuccesfully ended!"; exit 1; fi
|
||||||
|
|
19
src/jetson_ppp_connection_manager.service
Normal file
19
src/jetson_ppp_connection_manager.service
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Jetson PPP Connection Manager
|
||||||
|
# NEEDS TO BE CHANGED TO YOUR DEVICE
|
||||||
|
After=dev-sixfab03.device
|
||||||
|
# OR
|
||||||
|
# After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/bin/bash jetson_ppp_connection_manager.sh
|
||||||
|
WorkingDirectory=/opt/sixfab/ppp_connection_manager
|
||||||
|
StandardOutput=inherit
|
||||||
|
StandardError=inherit
|
||||||
|
RemainAfterExit=true
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=5s
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
21
src/jetson_ppp_connection_manager.sh
Normal file
21
src/jetson_ppp_connection_manager.sh
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source functions.sh
|
||||||
|
|
||||||
|
for i in {1..4}; do
|
||||||
|
bash jetson_configure_modem.sh
|
||||||
|
WAS_SUCCESSFUL=$?
|
||||||
|
|
||||||
|
|
||||||
|
if [[ $WAS_SUCCESSFUL -eq 0 ]]; then
|
||||||
|
debug "Jetson configure modem successful"
|
||||||
|
else
|
||||||
|
debug "Jetson configure modem failed: Exit code = $WAS_SUCCESSFUL"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $MODEM_CONFIG -eq 0 ]]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
Loading…
Reference in New Issue
Block a user