This is a EzPPP HowTo work-in-progress. Eventually, all EzPPP documentation will be in this howto.
Most Linux kernels are compiled with PPP support, so this usually isn't a problem. However, if your kernel doesn't have PPP support, and you have never compiled a Linux kernel, you must be careful to do it correctly. There are two easy ways to figure out if your Linux kernel already has PPP support. When booting up, report lines of kernel device drivers and system messages are displayed. The kernel PPP driver will print the line:
PPP: version 2.2.0 (dynamic channel allocation)
If this scrolls by too fast to read, the file /var/log/messages contains the contents of these messages, and MUCH more. Look in it to find the above message.
To compile the kernel with PPP support, you must have the kernel source installed. Under most distributions (Slackware, Readhat, and almost all others) the kernel source is in /usr/src/linux. The README file in that directory will get you started. Plan on spending 2-3 hours the first time you do this. If you don't have the kernel source, you can ftp it from ftp.cs.helsinki.fi/pub/Software/Linux/Kernel.
There were changes in the kernel PPP from Linux version 1.2.x to 2.0.x which forced the programming of a new pppd daemon. In most distributions, the pppd daemon can be found in /usr/sbin. For kernel versions 1.2.x, the correct version of the pppd daemon is 2.1; for kernel versions 2.0.x, the correct version is 2.2. If you don't know what version of the pppd daemon your system has, you can type:
pppd --version
None of the pppd daemons actually have a --version option, but putting the option in will cause the pppd daemon to error out from a unrecognized option and print out a list of options, which includes the version of the pppd daemon. If you don't have the right version for your kernel, you can find it at the SunSite ftp site at: sunsite.unc.edu/pub/Linux/system/Network/serial/ppp/. The file you will want will be either ppp-2.1.2d.tar.gz or ppp-2.2.0f.tar.gz, depending on you kernel version. The pppd daemons come as source, and you will have to compile them yourself.
Serial port names are different in Linux than in DOS. In DOS, the serial ports are called COM1, COM2, COM3, and COM4. In Linux all devices are represented as special files in the /dev directory. The table below matches Linux serial devices with the DOS labels.
DOS | Linux |
---|---|
COM1 | /dev/cua0 |
COM2 | /dev/cua1 |
COM3 | /dev/cua2 |
COM4 | /dev/cua3 |
You may have already dealt with configuring you serial mouse or modem during your Linux installation. All the configuration really does is creates the link /dev/mouse or /dev/modem, which points to the appropriate /dev/cuaX serial device. If you have a modem or mouse configured, do a ls -l of the device and you'll see what I mean.
On x86 computers (Intel and clones) the choice of what serial port you put your modem on, and what serial port you put your mouse on can be important. You can really start running into problems when you have a internal modem and you have to configure it before putting it into your system. This situation is common, and can cause major problems for those who don't understand how x86 serial ports work. Because serial ports COM1 and COM3 share a interrupt, only one of the serial ports can be active in high-speed communication at a time. The same is true for COM2 and COM4. If your mouse is on COM1 (/dev/cua0), and you install the card modem on COM3, you will find that your mouse cuts out as soon as you start using your modem. The solution is to move your mouse to COM2, and keep your modem on COM3. The table below describes the setup.
Device | DOS Serial Port Name | Linux Serial Port Name |
---|---|---|
Nothing | COM1 | /dev/cua0 |
Mouse | COM2 | /dev/cua1 |
Internal Modem | COM3 | /dev/cua2 |
To complete the setup, the old links for modem and mouse must be removed, and new links created. The following commands will work to complete the setup in the table above:
cd /dev rm mouse rm modem ln -s cua1 mouse ln -s cua2 modem
Last modified February 16, 1997
Jay
Painter