steptail.com

How many light bulbs does it take to change a penguin?

User Tools

Site Tools


guides:virtual_modem:section_4

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
Next revision Both sides next revision
guides:virtual_modem:section_4 [2019-11-16 05:35]
omolini
guides:virtual_modem:section_4 [2021-04-14 18:56]
omolini [Skip to previous sections]
Line 1: Line 1:
 ====== Section 4 - Setting up Virtual Modem ====== ====== Section 4 - Setting up Virtual Modem ======
 ==== Required packages ==== ==== Required packages ====
-For the connection script to work properly, your Raspbian installation needs a few prerequisite packages. The most important of these is the PPP daemon **"​pppd"​** and **IP Tables** to route packages.+For the connection script to work properly, your Raspbian installation needs a few prerequisite packages. The most important of these is the PPP daemon **"​pppd"​** and **IP Tables** to route packets.
   * Run the following commands to install pppd and iptables:   * Run the following commands to install pppd and iptables:
 <code bash> <code bash>
Line 11: Line 11:
 In the next chapter we will download and install vmodem onto your Raspberry linux box! In the next chapter we will download and install vmodem onto your Raspberry linux box!
  
-  * If you would like to view the source code and more coding examples, ​[[Guides:​Virtual Modem:​Script|click here]] +  * If you would like to optionally ​[[Guides:​Virtual Modem:​Script|view the source code and a few more coding examples, ​click here]] 
-  * To download and install vmodem, execute the following commands:+  * To just download and install vmodem, execute the following commands:
 <code bash> <code bash>
 sudo mkdir /​boot/​vmodem sudo mkdir /​boot/​vmodem
Line 24: Line 24:
     * **/​boot/​vmodem/​1.sh**     * **/​boot/​vmodem/​1.sh**
     * **/​boot/​vmodem/​ppp.sh**     * **/​boot/​vmodem/​ppp.sh**
 +
 +  * Make sure they are executable:
 +<code bash>
 +sudo chmod 770 /​boot/​vmodem/​vmodem.sh
 +sudo chmod 770 /​boot/​vmodem/​1.sh
 +sudo chmod 770 /​boot/​vmodem/​ppp.sh
 +</​code>​
  
 ==== Name of the serial port ==== ==== Name of the serial port ====
Line 33: Line 40:
   * Run the command: ''​**ls** /​dev/​tty*'' ​   * Run the command: ''​**ls** /​dev/​tty*'' ​
 {{ :​guides:​pics:​raspberry_serial_port_3.png |}} {{ :​guides:​pics:​raspberry_serial_port_3.png |}}
-    * If you **do not** see ''/​dev/​ttyUSB0''​ listed, you will need to update the script with the correct serial port. Visit [[Guides:​Virtual Modem:​Section 4:Changing the serial port|this page]] to update the script with the correct serial port. +    * If you **do not** see ''/​dev/​ttyUSB0''​ listed, you will need to update the script with the correct serial port. [[Guides:​Virtual Modem:​Section 4:Changing the serial port|Visit this page]] to update the script with the correct serial port. 
     * If you **do** see ''/​dev/​ttyUSB0''​ listed, continue on!     * If you **do** see ''/​dev/​ttyUSB0''​ listed, continue on!
 +
 +==== Name of the ethernet interface ====
 +For the sake of this tutorial we have used wired Ethernet. If you want to use Virtual Modem over a **wireless connection**,​ you will need to make sure it is properly set up, then update the script where it says ''​etherp=eth0''​ to say ''​etherp=wlan0''​ instead. To change the ethernet port in the vmodem.sh script, do the following:
 +  - Run ''​sudo nano /​boot/​vmodem/​vmodem.sh''​
 +  - Find the line ''​etherp=eth0''​ and change it to read ''​etherp=wlan0''​.
 +  - Save file by pressing CTRL + o, then ENTER to save under the same name.
 +  - Exit editor with CTRL + x.
  
 ==== Network test on the Raspberry Pi ==== ==== Network test on the Raspberry Pi ====
 This would be a good time to test your network to eliminate any future headaches. This would be a good time to test your network to eliminate any future headaches.
  
-Over SSH run the command: +  * Over SSH run the command: ​''​ping ''''​www.google.com''​ 
-<code bash> +  * If you get ping replies, you are all set and the networking on your Raspberry Pi is working. 
-ping www.google.com +  * Press Ctrl Z to stop ping. 
-</​code>​ +
-  * Press Ctrl and Z to stop ping. +
 ==== Initial VModem testing ==== ==== Initial VModem testing ====
 To test VModem, you should be able to simply run the script. Test it first over SSH to see it's output: To test VModem, you should be able to simply run the script. Test it first over SSH to see it's output:
  
-  * Connect ​one end of your serial cable to the Raspberry Pi'​s ​Serial-USB converter, and the other end to an old computer ​with serial portUse a terminal ​program ​such as PuTTY or HyperTerminal, and make sure you set the appropriate serial speed settings on the terminal program before you connect (by default VModem is set to operate at 57600 bps) +  * If you have not done so already, connect ​one end of your serial cable to the Raspberry Pi's USB-to-serial adapter, and the other end of the serial cable to computer ​which has terminal software installedYou can use any terminalsuch as [[https://​www.chiark.greenend.org.uk/​~sgtatham/​putty/​latest.html|PuTTY]] or the built-in ​HyperTerminal ​on Windows 9x.  
-  * PuTTY, Trumpet Winsock (Windows 3.1) or Dial-up networking (Windows 95) to connect ​to the Raspberry Pi.  +  * Make sure you set the appropriate serial speed settings on the terminal program before you connect (by default VModem is set to operate at 57600 bps) 
-  * Over SSH, on the Raspberry, issue the following commands. ​+  * Connect with the terminal program ​to the Raspberry Pi. 
 +  * Open up PuTTY (or your other SSH client of choice) and connect over SSH to the Raspberry ​Pi. Issue the following commands. ​
 <code bash> <code bash>
 cd /​boot/​vmodem cd /​boot/​vmodem
Line 55: Line 68:
 </​code>​ </​code>​
  
-  * If you see the READY text on the screen, the script is ready to accept connections. +  * If you see the READY text on the Raspberry Pi, the script is ready to accept connections. 
-  * To exit VModem and return you back to shellyou can press **CTRL + z** +  * Nowopen up a SERIAL ​terminal ​on the computerand issue a few basic Hayes commands. First press ENTER a couple of times to sync up. Then type "​AT"​ and then press ENTER. You should receive an "​OK"​ response.  
-  * On your serial ​terminal, issue a couple of test commands, such as "​AT"​ and then press ENTER. You may need to type AT couple ​of times for VModem ​to sync up.+    * If you receive a garbled or no response, the serial speed settings ​may be wrong. Make sure both computers are set to the same serial speed. 
 +    * If you do not receive any response, something may be wrong with the serial settings, or with the connection to the Raspberry Pi. Does the computer have fast 16550 UART and a good USB-to-Serial adapter? (check section 2 of this tutorial).  
 +    * Check to see that the vmodem.sh script is running and is receiving your keystrokes. If it working, it should echo your input from the serial terminal to the script'​s output. 
 +    * If you're still not able to get it working, see the Troubleshooting section below
   * On a serial terminal, this is the output you should be getting:   * On a serial terminal, this is the output you should be getting:
 {{ :​guides:​pics:​vmodem_hyperterm.png?​600 |}} {{ :​guides:​pics:​vmodem_hyperterm.png?​600 |}}
   * Over on the Raspberry Pi, you should be seeing the corresponding output:   * Over on the Raspberry Pi, you should be seeing the corresponding output:
 {{ :​guides:​pics:​vmodem_putty2.png |}} {{ :​guides:​pics:​vmodem_putty2.png |}}
-  * If you get any error messages, take a note of them and look for commonalities in any steps you've taken before this step. Open up the script vmodem.sh for editing to make sure the baud and serial port are properly set. If you're unable to figure it out, feel free to contact me (see bottom of page). 
  
 ===== Getting online ===== ===== Getting online =====
-Now you can proceed to check out the system specific guides on how to interface different vintage computers and devices with VModem:+Now you can proceed to check out the system specific guides on how to interface different vintage computers and devices with VModem. Once you are done, return back to this guide!
  
   * [[Guides:​Connecting Windows 3.1 to the Internet]] ​   * [[Guides:​Connecting Windows 3.1 to the Internet]] ​
   * [[Guides:​Connecting Windows 9x to the Internet]]   * [[Guides:​Connecting Windows 9x to the Internet]]
 +
 +/*
 +
   * [[Guides:​Connecting a Macintosh Classic to the Internet]] COMING SOON   * [[Guides:​Connecting a Macintosh Classic to the Internet]] COMING SOON
-  * [[Guides:​Connecting a Digital VT100 compatible terminal ​to the Internet]] COMING SOON+  * [[Guides:​Connecting a Serial Terminal ​to the Internet]] COMING SOON 
 + 
 +*/ 
  
 Make sure vmodem.sh is running on the Raspberry Pi first before attempting connection! Make sure vmodem.sh is running on the Raspberry Pi first before attempting connection!
  
 ===== Making Virtual Modem run at startup ===== ===== Making Virtual Modem run at startup =====
-After you **have verified** that the VModem works properly on the console ​(see previous section), and you are able to connect to the Internet, you can make VModem run automatically as a background process after the Raspberry Pi is powered on.+After you have **verified** that the VModem works properly on the console, and you have tested that you are able to connect to your network, you can make VModem run automatically as a background process after the Raspberry Pi is powered on. It will run as a background process so you won't see it's output, so it's highly recommended to thoroughly test the script first.
  
-There are two ways you can do this: +  ​Edit the **/​etc/​rc.local ​file**Go to end of the file, and find the last lineIt should be ''​exit ​0''​Now add the following lines **ABOVE** it
- +
-**1)** You can either run the following command which will automatically add VModem to your /​etc/​rc.local+
-<code bash> +
-sudo sh -c '​printf "`head -n -1 /etc/rc.local`\n\ncd /​boot/​vmodem\n./vmodem.sh &​\n\nexit ​0\n" >/etc/rc.local'​ +
-</​code>​ +
- +
-**2)** Or you can edit your rc.local manually. Make sure your /​etc/​rc.local has the following at the bottom:+
 <code bash> <code bash>
 # Start serial port and simulate a modem # Start serial port and simulate a modem
 cd /​boot/​vmodem/​ cd /​boot/​vmodem/​
 /​boot/​vmodem/​vmodem.sh & /​boot/​vmodem/​vmodem.sh &
-exit 0 
 </​code>​ </​code>​
  
 +Beware the ampersand "&"​ at the end of the line. Without it, the boot process may not complete correctly (or at all).
  
   * Restart Raspberry and test the changes. After rebooting, VModem should automatically start up with system processes and start expecting connections on serial.   * Restart Raspberry and test the changes. After rebooting, VModem should automatically start up with system processes and start expecting connections on serial.
  
-==== Further steps ==== 
-You can now proceed to connect your retro machine to the Internet using Virtual modem. 
  
-  ​[[Guides:Connecting Windows 3.to the Internet]] +===== Troubleshooting ===== 
-  * [[Guides:Connecting Windows 9x to the Internet]] + 
-  * [[Guides:Connecting a Macintosh Classic to the Internet]] | COMING SOON +**Cannot communicate on serial terminal with the vmodem script**\\ 
-  * [[Guides:Connecting a Dumb/Smart Terminal to the Internet]] | COMING SOON+After running the Virtual Modem script on the Raspberry Pi, and connecting it to your computer via the USB-to-Serial adapter and a null modem cable, you should be able to fire up a simple serial terminal on the computer and issue a few Hayes commands to ensure connectivity. Hayes commands are a common way to communicate with Modems, and by typing AT and pressing enter in the terminal, you should see an "​OK"​ response. The vmodem script also recognizes other commands, such as HELP which should provide a short list of recognized commands). If you receive a garbled response after typing AT or HELP, your serial speed settings may not be the same on both ends. Make sure you have adjusted the communication speed to match. If you receive no response whatsoever, you might have a problem with the USB-to-Serial adapter or you may be using an older UART on your computer (see section 2 for more on this). If you're still unable to communicate with the VModem script, feel free to join our Discord channel (see bottom of page for link) for further support. Simple tutorials can only go so far... ​:
 + 
 + 
 + 
 +**After dialing in, system is disconnected immediately**\\ 
 +Make sure you are using the latest version of the Virtual Modem script. An early version had an issue where the serial connection would be cut before the network connection was establishedAlso, be sure to make sure your serial baud settings are correct, and they match the virtual modem script. Finally, try turning off Flow Control from the Modem Settings under Advanced Settings. 
 + 
 +**After dialing in, system reports connected, but no network is available**\\ 
 +Make sure you have updated the network device in **vmodem.sh** to reflect the correct network interface. By default it is eth0. If you are using Raspberry on WIFI, you may need to change this to wlan0. 
 + 
 +**Other issues:** 
 +  * Some computers are not capable of operating at fast serial speeds. If you're unable to connect at 57600 or faster, try slower speeds, such as 9600 baud at first. Adjust both the vmodem.sh script and the computer to connect at only 9600 baud. If that works, work your way up to see where the limit for your specific computer is. 
 +  * If you run into any other issues, take a note of them and look for commonalities in any steps you've taken before this step. Open up the script vmodem.sh for editing to make sure the baud and serial port are properly set. If you're unable to figure it out, feel free to contact us at Discord. We have a channel specific for Virtual Modem support (see bottom of page). 
 + 
 +==== Related Topics ==== 
 +  * [[http://​www.protoweb.org/​|ProtoWeb - The 90'​s ​Internet ​Service Provider]] | Connect your retro computer to surf the 90's Web! 
 +  * [[Guides:List of Compatible Websites]] | List of classic websites that work with pre-2000 legacy web browsers. 
 +  * [[Guides:Virtual Modem:​Script|Virtual Modem Source code and Coding Examples]] | These should help you get started with building new modules for Virtual Modem. 
 + 
 + 
 +----
  
-==== Skip to other sections ====+==== Skip to previous ​sections ====
  
   * [[Guides:​Virtual Modem|Section 1 - Introduction]]   * [[Guides:​Virtual Modem|Section 1 - Introduction]]
Line 110: Line 140:
   * [[Guides:​Virtual Modem:​Section 3|Section 3 - Setting up Raspbian]]   * [[Guides:​Virtual Modem:​Section 3|Section 3 - Setting up Raspbian]]
   * [[Guides:​Virtual Modem:​Section 4|Section 4 - Setting up Virtual Modem]] << You are here   * [[Guides:​Virtual Modem:​Section 4|Section 4 - Setting up Virtual Modem]] << You are here
 +  * [[Guides:​Virtual Modem:​Section 5|Section 5 - Using Virtual Modem]]
  
-==== Related Topics ==== +----
-  * [[Guides:​Virtual Modem:​Script|Source code and Coding Examples]] +
-  * [[Guides:​List of Compatible Websites]] | List of classic websites that work with pre-2000 legacy web browsers. +
-  * [[Guides:​Virtual Modem:​Script|Virtual Modem Source code and Coding Examples]] +
-  * [[Guides:​Web Archive Proxy|Steptail Wayback Proxy Server]] | Connect your retro computer to a mirrored copy of the Internet as it was in 1996!+
  
-----+==== Get In Touch With Us! ==== 
 +Get support, share your thoughts and report bugs on Discord. \\ 
 +[[https://​discord.gg/​4w6CpZ8|{{:​images:​social-discord.png?​nolink|}}]] ​
  
-Questions? Comments? [[:Contact Information|Contact Me!]]+{{tag>​Guides Guides:Networking}}
  
guides/virtual_modem/section_4.txt · Last modified: 2023-11-24 23:16 by omolini