Mgetty + PPP
The mgetty configuration outlined here is valid for the following system:
Should any of the above links fail for whatever reason, the best place for beginning your search would be either John Taylor's Bleeding Edge Linux Page, www.cviog.uga.edu/Misc/info/LinuxBleed.html, or Bill Latura's Linux Applications page, www.xnet.net/~blatura/linapps.shtml.
Gert Doering, author of mgetty+sendfax, has made available his instructions on the sendfax portion of mgetty+sendfax. You may find it at theory.uwinnipeg.ca/localfiles/infofiles/mgetty.html
You will need ppp support. Enabling such support is far beyond the scope of this document. (Infoseek < 'pppd | Linux' = 786 possible sources for support.)
The directions are well written. You should have no trouble building. If you are using the shadow password package, build using:
I found it necessary to edit line 54 of 'ppp-2.2.0f/pppd/auth.c' and provide the correct path to the 'pwauth.h' file from the shadow suite. (If you use the *in-a-box* package, it may be found in '(../shadow-ina-box-1.2/shadow-96xxxx/pwauth.h))'.
An excellent program from Gert Doering. Capable of far more than simply Auto_PPP. Obtain it from one of the sites listed above (you should have version 0.99x or higher) and unpack as you desire.
(You are *reading* the instructions for all these packages, yes? : ) policy.h should be tuned for your system. Somewhere around line 99, for instance, you'd probably check on:
#define DEVICE_GROUP "modem"
(The defined group must exist, i.e., groupadd -g 800 modem.)
Then, in the vicinity of line 276 you may want:
#define DEFAULT_PORTSPEED 115200
..and line 297 will appear something like the following for a Cardinal 33.6. (USR 28.8 responds well to the same string):
#define MODEM_INIT_STRING "ATE1V1Q0&S0&D2&C1S0=0S13=1"
(*Other* modems may need only "ATE1V1Q0&D2&C1S0=0". Mgetty responds to the "RING" of the modem, so S0=1 is *not* needed.)
Next, you will need to make one edit on, or near line 110 of the Makefile. It should look like this:
CFLAGS=-02 -Wall -pipe -DAUTO_PPP
Now, build according to the instructions.
You'll next want to edit the login.config file in the ../etc/mgetty+sendfax directory of your chosen installation path. Comment out line 42 (assuming you don't want FIDO), and edit line 50, or somewhere thereabouts, as follows:
/AutoPPP/ - - /usr/sbin/pppd auth login +pap -chap modem crtsct s proxyarp lock
Remove the 'proxyarp' option if you're using a standalone server or want you dialup users to remain local.
(Note: The second "-" causes for the users login name to appear in utmp/wtmp.)
Edit your /etc/inittab file to reflect you hardware. Utilizing 8 ports of a Cyclades Cyclom board would look as follows:
s0:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyC0 s1:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyC1 s2:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyC2 s3:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyC3 s4:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyC4 s5:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyC5 s6:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyC6 s7:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyC7
However, using a modem attached to a standard serial interface, I needed the following under Slackware:
s0:45:respawn:/usr/local/sbin/mgetty -D -x2 -R 45 /dev/ttyS0 s1:45:respawn:/usr/local/sbin/mgetty -D -x2 /dev/ttyS1
The "-R 45" is optional. Mgetty is designed to allow you to use your voice line to also handle dialup connections. With '-R xx' enabled, a caller simply needs to call once, hangup; then call again within xx seconds. Mgetty will ignore the first call, then respond promptly to the second. (Again, read the manual.) If you have problems using :23: as a run-level (i.e., everything seems fine, but the modem doesn't pick-up), try :45:
You must provide the correct path to your mgetty executable, i.e.,
Do a 'kill -1 1'. You should see your modem(s) initialize.
Try dialing in from a remote machine. If the modem answers, then mgetty works. (If your modem answers, its very unlikely that any additional problems are related to mgetty, assuming you have a modem that supports 115200).
Further pppd Configuration.
You'll want to use 'pppd' as the login shell for the account established to handle dialins. You '/etc/passwd' file should look something like:
You'll now need to get the various "/etc/ppp/options" files correct. I have my system configured to dial out using pppd as well as receive incoming calls. I have the relevant pppd files configured similar to the following:
/etc/ppp/options -detach /etc/ppp/options/ttyCx (Cyclades ports) 18.104.22.168:22.214.171.124
/etc/ppp/options.ttyS0 (for serial ports) 126.96.36.199:188.8.131.52
Rename or remove 'pap-secrets' and try dialing in again from a Windows '95 machine. (There is some controversy on 'pap-secrets' file. Al Longyear, however, says remove it, and I removed it. It works fine for me. Logins are flawless: every time.
The '95 box need only create a new connection. Add the phone number, login name and password, and everything should go fine.
I've received questions regarding pop mail for '95 clients after they're connected. Tim Sailer wrote a patch for qpopper. It compiled for me without a hitch. It can be found at http://www.buoy.com/isp along with a collection of helpful tools and scripts written or collected by Tim Sailer. You will also find additional information regarding mgetty.
Should you be having modem problems, or are having problems defining the correct /etc/inittab entry, I suggest you read Greg Hankins, Linux Serial HOWTO. It is a valuable reference.
Tim Sailer also provides an excellent solution for setting up dynamic IP addressing.
Mgetty, (as you've certainly read by now;), is capable of far more than AutoPPP. It handles both fax and voice, and is being actively developed by a dedicated team.
Version 2.2.0f of pppd is stable and is covered by a broad number of websites.
Suggestions or comment should be directed to: firstname.lastname@example.org.
Last modified: 31 August 1997 10:44:00 EST
With any suggestions or questions please feel free to contact us