steptail.com

If I try to fail, but succeed, which one did I do?

User Tools

Site Tools


guides:virtual_modem:script

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
guides:virtual_modem:script [2022-12-20 06:33]
omolini
guides:virtual_modem:script [2022-12-28 03:32] (current)
omolini
Line 34: Line 34:
 # o PuTTY # o PuTTY
 # #
-# PPP connectivity ​will initialize ​correctly ​under the following configurations:​+# PPP dial-up ​connectivity ​tested to initialize under the following configurations:​
 # #
-# o Microsoft ​Windows 3.1 +# o Windows 3.1 
-#   - Trumpet Winsock+#   - Trumpet Winsock ​3.0 revision D
 # #
-# o Microsoft ​Windows 95 OSR 2.5 + DUN 1.4 +# o Windows 95 OSR 2.5 + DUN 1.4 
-#   - Generic+#   - Generic ​Modem
 #     - Standard 28800 bps Modem #     - Standard 28800 bps Modem
 # #
-# o Microsoft ​Windows 98 +# o Windows 98 
-#   - Generic+#   - Generic ​Modem
 #     - Standard 9 600 bps modem #     - Standard 9 600 bps modem
 #     - Standard 33 600 bps modem #     - Standard 33 600 bps modem
Line 50: Line 50:
 #     - Standard 56 000 bps X2 modem #     - Standard 56 000 bps X2 modem
 #     - Standard 56 000 bps K56Flex modem #     - Standard 56 000 bps K56Flex modem
 +#
 +# o Windows 2000
 +#   - Generic Modem
 +#     - Standard 19200 bps Modem
 +#
 +# Help us test and add more supported systems! ​
 +# Contact us on Discord, links at the bottom of the Virtual Modem page.
 # #
  
 # Script version # Script version
-vmodver=1.7.0+vmodver=1.7.1
  
 # CONFIGURATION # CONFIGURATION
Line 130: Line 137:
 # SEND MESSAGE ON SCREEN AND OVER SERIAL # SEND MESSAGE ON SCREEN AND OVER SERIAL
 sendtty () { sendtty () {
 +  # Prints message in console and over serial. Message is given as first parameter.
   message="​$1"​   message="​$1"​
   echo -en "​$message"​ | tee /​dev/​$serport   echo -en "​$message"​ | tee /​dev/​$serport
Line 135: Line 143:
  
 readtty () { readtty () {
-  while [ "$continue"​ != "1" ]; do+  ​# Reads input from TTY and stores it in variable given as first parameter 
 +  line= 
 +  ​while [[ -z "$line" ​]]; do
     charhex=`head -c 1 /​dev/​$serport | xxd -p -`     charhex=`head -c 1 /​dev/​$serport | xxd -p -`
     char="​`echo -e "​\x$charhex"​`"​     char="​`echo -e "​\x$charhex"​`"​
     echo -n "​$char"​     echo -n "​$char"​
     echo -n "​$char"​ > /​dev/​$serport     echo -n "​$char"​ > /​dev/​$serport
 +    # Newline received
     if [ "​$charhex"​ = "​0d"​ -o "​$charhex"​ = "​0a"​ ]; then     if [ "​$charhex"​ = "​0d"​ -o "​$charhex"​ = "​0a"​ ]; then
       line=$buffer       line=$buffer
Line 147: Line 157:
       sendtty "​\n"​       sendtty "​\n"​
     fi     fi
 +    buffer=$buffer$char
   done   done
-  ​return ​$line+  ​local __resultvar=$1 
 +  local result="​$line
 +  eval $__resultvar="'​$result'"​
 } }
  
Line 161: Line 174:
  
 sendtty "​\n"​ sendtty "​\n"​
-sendtty "VMODEM - Virtual Modem bootstrap for PPP link v$vmodver\n"​ +sendtty "​Virtual Modem bootstrap for PPP link v$vmodver\n"​ 
-sendtty "​Connection speed set to $baud baud\n"​+sendtty "​Connection speed set to $baud baud.\n" 
 +sendtty "My current IP address is $(hostname -I).\n"
 sendtty "​\n"​ sendtty "​\n"​
-sendtty "TYPE HELP FOR COMMANDS\n"+sendtty "​TYPE ​\"HELP\" ​FOR COMMAND REFERENCE.\n"
 sendtty "​READY.\n"​ sendtty "​READY.\n"​
  
Line 451: Line 465:
       sendtty "​General commands:​\n"​       sendtty "​General commands:​\n"​
       sendtty "​HELP.......Display this help\n"​       sendtty "​HELP.......Display this help\n"​
-      sendtty "​LOGIN......Fork a new linux login on serial\n"+      sendtty "​LOGIN......Drop to shell\n"
       sendtty "​SETUP......Change settings\n"​       sendtty "​SETUP......Change settings\n"​
       sendtty "​EXIT.......End this script\n"​       sendtty "​EXIT.......End this script\n"​
Line 470: Line 484:
       while true; do       while true; do
         # Display menu         # Display menu
 +        sendtty "​\n"​
         sendtty "​System Setup\n"​         sendtty "​System Setup\n"​
         sendtty "​============\n"​         sendtty "​============\n"​
Line 476: Line 491:
         sendtty "Enter your selection: "         sendtty "Enter your selection: "
         # Read user input         # Read user input
-        selection=$(readtty) +        ​readtty ​selection 
-        ​sendtty $selection+
         # Wireless network settings         # Wireless network settings
         if [[ "​$selection"​ == "​1"​ ]]; then         if [[ "​$selection"​ == "​1"​ ]]; then
           while true; do           while true; do
 +            sendtty "​\n"​
             sendtty "Wi-Fi Settings\n"​             sendtty "Wi-Fi Settings\n"​
             sendtty "​==============\n"​             sendtty "​==============\n"​
Line 490: Line 506:
             sendtty "Enter your selection: "             sendtty "Enter your selection: "
             # Read user input             # Read user input
-            ​read -p selection+            ​readtty ​selection
             # Connect to new Wi-Fi network             # Connect to new Wi-Fi network
             if [[ "​$selection"​ == "​1"​ ]]; then             if [[ "​$selection"​ == "​1"​ ]]; then
               sendtty "Enter SSID: "               sendtty "Enter SSID: "
-              ​read -p ssid+              ​readtty ​ssid
               sendtty "Enter password: "               sendtty "Enter password: "
-              ​read -p password +              ​readtty ​password 
-              ​#sudo wpa_cli -i wlan0 remove_network 0 +              sudo wpa_cli -i wlan0 remove_network 0 
-              ​#sudo wpa_cli -i wlan0 add_network +              sudo wpa_cli -i wlan0 add_network 
-              ​#sudo wpa_cli -i wlan0 set_network 0 ssid "​\"​$ssid\""​ +              sudo wpa_cli -i wlan0 set_network 0 ssid "​\"​$ssid\""​ 
-              ​#sudo wpa_cli -i wlan0 set_network 0 psk "​\"​$password\""​ +              sudo wpa_cli -i wlan0 set_network 0 psk "​\"​$password\""​ 
-              ​#sudo wpa_cli -i wlan0 select_network 0 +              sudo wpa_cli -i wlan0 select_network 0 
-              ​#sudo wpa_cli -i wlan0 enable_network 0+              sudo wpa_cli -i wlan0 enable_network 0
             # Modify password for current Wi-Fi network             # Modify password for current Wi-Fi network
             elif [[ "​$selection"​ == "​2"​ ]]; then             elif [[ "​$selection"​ == "​2"​ ]]; then
               sendtty "Enter new password: "               sendtty "Enter new password: "
-              ​read -p password +              ​readtty ​password 
-              ​#sudo wpa_cli -i wlan0 set_network 0 psk "​\"​$password\""​+              sudo wpa_cli -i wlan0 set_network 0 psk "​\"​$password\""​
             # Disconnect from current Wi-Fi network             # Disconnect from current Wi-Fi network
             elif [[ "​$selection"​ == "​3"​ ]]; then             elif [[ "​$selection"​ == "​3"​ ]]; then
               sendtty "​Disconnecting from current Wi-Fi network\n"​               sendtty "​Disconnecting from current Wi-Fi network\n"​
-              ​#sudo wpa_cli -i wlan0 disable_network 0+              sudo wpa_cli -i wlan0 disable_network 0
             # Display current Wi-Fi connection status             # Display current Wi-Fi connection status
             elif [[ "​$selection"​ == "​4"​ ]]; then             elif [[ "​$selection"​ == "​4"​ ]]; then
               status=$(sudo wpa_cli -i wlan0 status)               status=$(sudo wpa_cli -i wlan0 status)
 +              sendtty "​\n"​
 +              sendtty "Wi-fi connection status\n"​
 +              sendtty "​=======================\n"​
               sendtty "​$status"​               sendtty "​$status"​
 +              sendtty "​\n"​
             # Exit             # Exit
             elif [[ "​$selection"​ == "​5"​ ]]; then             elif [[ "​$selection"​ == "​5"​ ]]; then
Line 526: Line 546:
         # Exit         # Exit
         elif [[ "​$selection"​ == "​2"​ ]]; then         elif [[ "​$selection"​ == "​2"​ ]]; then
 +          sendtty "​Exited setup\n"​
 +          sendtty "​READY.\n"​
           break           break
         # Invalid selection         # Invalid selection
         else         else
-          ​echo "​Invalid selection. Please try again."​+          ​sendtty ​"​Invalid selection. Please try again.\n"
         fi         fi
       done       done
Line 653: Line 675:
 sendtty "​\n"​ sendtty "​\n"​
 sendtty "​Please enter your name: \n" sendtty "​Please enter your name: \n"
-read -e -p "User? " ​username+readtty ​username
 sendtty "​\n"​ sendtty "​\n"​
 sendtty "​Hello,​ $username!\n"​ sendtty "​Hello,​ $username!\n"​
guides/virtual_modem/script.1671518022.txt.gz · Last modified: 2022-12-20 06:33 by omolini