Hacky pppd wrapper for the masses.
This is a fork of the DreamPi project, updated to port the script to the modern era and to remove the Dreamcast-specific components. (You can still use this with your Dreamcast though!, with some limitations)
A daemon that creates a bridge between a Dreamcast's Dial-up Modem, and the Internet via the Pi
- You need a Linux distribution to use this script. Windows will not work unless someone has a scriptable PPP implementation.
- Preferrably a Conexant RD02-D400 modem. Any modem will work however, as long as it is recognizable by both the Linux kernel that you are running, and wvdial.
- Install Python 3.6+ (including
pip),ppp, andnet-toolsfrom your system's package manager. - Install these python packages:
psutil,pyserial,sh.- Arch Linux users should install
python-psutil,python-pyserial, andpython-sh - Debian users should install
python3-psutil,python3-serial, andpython3-sh - Other distributions should consult their package manager's repositories. pip should only really be used if packages aren't available for your distribution.
- Arch Linux users should install
- Clone this repository,
cdinto the folder, and runpython3 dreampi.pyas root.- You can call the script with
--helpto get a list of options. - If your device has trouble with the dial tone simulation, append
--disable-dial-toneto the command line. - If you have PAP authentication setup for pppd (required for old WebTV classic clients in flashrom mode), append
--enable-pap-authto the command line if you'd like to use it. - If you want more advanced logging from pppd, append
--enable-pppd-debugto the command line.
- You can call the script with
- Script is ported from Python 2.x to Python 3.6+
- Dreamcast-specific components are stripped away
- Better compatibility with other modems (detected by your system)
- Command line argument parsing is changed from
sys.argvlookup toargparse - Ability to toggle PAP authentication and logging level
- Faster start with "optimized" code for network detection
- Syslog/
systemd-journalrequirement removed in favor of just callingpppddirectly