Ryochan's Linux PC-DC Guide Part 1
Now on to the real start of the guide.
Hardware
First, get a PC that can run a Linux distribution. I mainly use Ubuntu as my distribution of choice but you can probably choose whichever flavor of Linux you like; I remember that at some point I was unsuccessful in making a PC-DC server on Fedora 8. The next important item that you will need is some sort of voice modem. I use a TRENDnet TFM-560X external serial modem. Even though I use a serial modem, a USB modem should work fine. If you can, find a modem that runs power through the phone line. That way you can avoid having to make a line voltage inducer. Most external modems should run power through the phone line. Of course, have a good length telephone line to run between your Dreamcast modem and your PC modem.
Initial setup
Once you get a Linux distribution installed on your PC, we can start with the real details. First off, you might need to check if the kernel that came bundled with your distribution includes PPP support; most desktop Linux distributions bundle a kernel with PPP modules included. Next, install the programs mgetty and pppd if they are not already installed.
Sample apt-get line:
sudo apt-get install mgetty ppp
Now, on to configuring the main software.
Configure Mgetty
On Ubuntu, there are three configuration files bundled with mgetty that are installed under /etc/mgetty/.
I didn't have to worry about editing the default config files for my setup. The main file that you will have to be concerned with is the login.config file. You will need to check whether there are lines for launching ppp and /bin/login. Check the files linked above to look over my config files. You might need to tweak your mgetty.config depending on your setup.
Configure PPP
Now that mgetty is configured, it is time to configure the ppp daemon. There are a lot of configuration files for PPP but there are only a few that you have to be concerned with. The following are typically installed at /etc/ppp/.
NOTE: The last config file listed will vary depending on what the device interface is for your modem. The interface for my modem is ttyUSB0 so the last file in my case is options.ttyUSB0. Also, there might not be a second options file pre-installed so don't worry if one is not in the directory. Make sure you have write access to the /etc/ppp/ directory and make the config file.
options
Example options file:
debug
login
default-asyncmap
require-pap
ms-dns 192.168.1.1
proxyarp
ktune
The most important file in the list of ppp configuration files is the options file. It will likely cause you the most trouble if you don't know what you are doing; it took me several months to get Quake 3 working thanks to this config file. I won't explain the whole configuration file but I will mention a couple of specific things about the file. The ms-dns line of the options file must be filled in with the IP address of your primary DNS server that is also used for your PC connection. My router runs a DNS server so I fill in 192.168.1.1 (IP address of my router). You will likely put in the primary DNS address from your ISP here.
ms-dns 192.168.1.1
The next specific topic is the default-asyncmap option. For the most part, you want the option included. However, for Quake 3 and StarLancer, you will want to disable the option. To do this, you will put in the # symbol before the option to comment the option out.
#default-asyncmap
Lastly, ktune is an option that will automatically enable IP forwarding. This is necessary so that your Dreamcast can access any outside IP address. For more information on various ppp options, read the pppd man page.
options.(INTERFACE)
Thankfully, very little has to be brought up about this file. The IP address that you give the Dreamcast and your ppp proxy should be within the same subnet as your PC; for my network, it is 192.168.1.*. The first address in the first line will be the IP address that you give your proxy and the second address will be the IP address that you will give your Dreamcast. I set my proxy address to 192.168.1.150 and I give my Dreamcast an IP address of 192.168.1.151. The netmask option should match the subnet mask of your network connection; 255.255.255.0 is what most people will use.
Example options.(INTERFACE) file:
192.168.1.150:192.168.1.151
netmask 255.255.255.0
pap-secrets
To let your Dreamcast user log in to the PC-DC server, you will need to alter this file. You will need to specify the user name and the user password in this file in a specific format. Where it is placed in the file doesn't matter; I just place it at the end of the file. The format of the line is as follows:
user * password *
This is an example of the line that would be used for the user that we will make in the guide.
dream * dreamcast *
Making Dreamcast user
We are finally past configuring ppp; that was long. Now, you will make the user that the Dreamcast will use to login to the PC-DC server. I usually use the users-admin application that is bundled with Gnome to make the Dreamcast user but I will show how to do it with the useradd and passwd commands.
sudo useradd -G dialout,dip,users -c "Dreamcast user" -d /home/dream -g users -s /usr/sbin/pppd dream
sudo passwd dream
These command will make a user "dream" on the server. When running passwd, enter dreamcast for the user password when prompted. Here is a quick breakdown of the specific user properties; useful if you are going to use something else to make the user.
- User name: dream
- Groups: dialout,dip,users
- Main group: users
- Home directory: /home/dream
- Shell: /usr/sbin/pppd
Under Ubuntu, the dialout group has access to the modem and users in the dip group are allowed to execute the ppp daemon directly; the Dreamcast user has to belong to both groups under Ubuntu Jaunty. You might have to change the group(s) depending on your choice of distribution; check user permissions to find out which groups have access to your modem device and to the pppd executable. Also, check where the pppd program is and use that location for the user's shell; /usr/sbin/pppd is where it will usually be. You can check where the application is with the whereis command.
whereis pppd
End of Part 1
That is it for this part of the guide. Check back in for part 2 which will cover configuring the Dreamcast to login to the PC-DC server.