This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
guides:virtual_modem:section_4 [2020-12-17 04:16] omolini [Network test on the Raspberry Pi] |
guides:virtual_modem:section_4 [2021-04-14 18:56] omolini [Skip to previous sections] |
||
---|---|---|---|
Line 42: | Line 42: | ||
* 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 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 | + | |
- | </code> | + | |
* Press Ctrl + Z to stop ping. | * Press Ctrl + 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, and the other end to a client computer which has a terminal software installed. You can use any terminal, such as [[https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html|PuTTY]] or the built-in HyperTerminal on Windows 9x. | + | * 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 a computer which has a terminal software installed. You can use any terminal, such as [[https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html|PuTTY]] or the built-in HyperTerminal on Windows 9x. |
* 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). | * 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). | ||
* Connect with the terminal program to the Raspberry Pi. | * Connect with the terminal program to the Raspberry Pi. | ||
Line 63: | 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 shell, you can press **CTRL + z** | + | * Now, open up a SERIAL terminal on the computer, and 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. |
- | * The script emulates a few basic Hayes commands, so you should be able to issue the AT command on the terminal. Type "AT" and then press ENTER. You should receive an "OK" response. If you do not, you may need to sync up the connection by pressing ENTER a couple of times. If you still do not receive a response, something may be wrong with the serial settings, or with the connection to the Raspberry Pi. Also check to see that the vmodem.sh script is running. If it is, it should echo your input on the serial terminal to the script's output. | + | * 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 a 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 |}} | ||
Line 72: | Line 80: | ||
===== 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! | ||
Line 84: | Line 97: | ||
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. | 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. | ||
- | * Edit the /etc/rc.local file. Make sure your /etc/rc.local has the following at the bottom: | + | * Edit the **/etc/rc.local file**. Go to end of the file, and find the last line. It should be ''exit 0''. Now add the following lines **ABOVE** it. |
<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> | ||
- | * You can alternatively run the following command on the Raspberry Pi shell which will do the appropriate changes for you: | + | Beware the ampersand "&" at the end of the line. Without it, the boot process may not complete correctly (or at all). |
- | <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> | + | |
+ | * 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. | + | ===== Troubleshooting ===== |
- | ==== Further steps ==== | + | **Cannot communicate on serial terminal with the vmodem script**\\ |
- | You can now proceed to connect your retro machine to the Internet using Virtual modem. | + | 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... :) |
- | * [[Guides:Connecting Windows 3.1 to the Internet]] | ||
- | * [[Guides:Connecting Windows 9x to the Internet]] | ||
- | * [[Guides:Connecting a Macintosh Classic to the Internet]] | COMING SOON | ||
- | * [[Guides:Connecting a Dumb/Smart Terminal to the Internet]] | COMING SOON | ||
- | ===== Troubleshooting ===== | ||
+ | **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 established. Also, 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. | * 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 me (see bottom of page). | + | * 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 previous sections ==== | ==== Skip to previous sections ==== | ||
Line 120: | 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}} |