Installation instructions for getty-ps Ver 2.1.0 27-Sep-02 Copyright 1989,1990 by Paul Sutcliffe Jr. Portions copyright 2000,2002 by Christine Jamison. Permission is hereby granted to copy, reproduce, redistribute, or otherwise use this software as long as: there is no monetary profit gained specifically from the use or reproduction of this software; it is not sold, rented, traded or otherwise marketed; and this copyright notice is included prominently in any copy made. The authors make no claims as to the fitness or correctness of this software for any use whatsoever, and it is provided as is. Any use of this software is at the user's own risk. This package is distributed as source code, which must be compiled in order to provide runable program(s). Two binaries are the product of this package: getty and uugetty. The only difference between getty and uugetty is that uugetty checks and creates lockfiles. Uugetty should be used on any bidirectional line (modems, for example). Getty should be used on unidirectional lines (virtual consoles, dumb terminals). I have also included binaries of getty and uugetty for Linux; these files were compiled with gcc 2.95.3, and linked with libc.so.2.2.3. If your library is older, you will have to do the compile yourself (or grab the new library). This code should run on the following supported systems: (It is reported to work on linux kernel 0.99.15 and up, but I don't have a 0.99.x system to test it with .) Linux Kernel 1.x.x Linux Kernel 2.0.x Linux Kernel 2.2.x (This release was tested on Slackware 4.0) Linux Kernel 2.4.x (This release was tested on Slackware 8.1) If your system is not one of these, you will need to research your system requirements, and perhaps modify the program to get it to run properly on your system. (*Most* systems will only need values [mostly directory names] changed in config.h and changes due to different libraries.) The following are pre-requisites to compiling and installing this package: 1. Being able to log in as "root"; 2. Understanding how to use compress and tar; 3. Understanding how to use "make"; 4. Understanding about ANSI compliant C++ compilers; 5. Understanding what is the standard for placing new files on your particular system. Here is the installation synopsis, for those in a hurry: 1. Acquire and unpack the tarball containing this source code (getty_ps-2.1.0.tar.gz); 2. Modify the compile-time configuration files to meet your system's requirements (the only one you should have to change is config.h); 3. Type "make" to build the executables (Note that the latest compiles were done on gcc 2.95.3, with libc 2.2.3); 4. Type "make install" to install the newly made executables and updated man pages. Note that with this step, your old getty and uugetty binaries (if present) are saved as getty- and uugetty-, respectively. After everything is running smoothly, you can remove these backup files. By default, these binaries are put in /sbin. 5. Create and/or modify the needed config files (/etc/ttytype, /etc/gettydefs, /etc/default/getty.*, /etc/default/uugetty.*, /etc/issue). See examples in the "Examples" directory; 6. Modify /etc/inittab to use one or more of the new programs (getty for non-modem lines [direct VDT access] and uugetty for modem access, and enable the ports; 7. Check the installation. Or, you may follow these detailed steps to compile and install getty-ps: 1. MAKE A BACKUP COPY OF YOUR EXISTING, WORKING GETTY PROGRAM! I cannot stress this enough. There is a good chance that you will not have things configured correctly the first time around, and may not be able to log into your machine. If you are using getty as your primary getty program (as opposed to agetty or the like), it would probably be a good idea to modify /etc/inittab to use the backup copy you create in this step, and select just one or 2 ports to test the new getty. Then, if all goes well, just change /etc/inittab back the way it was. This is also probably a good time to make one of those bootable rootdisks. In any case, be sure you can boot your system in single user mode before you install anything. 2. Make sure you can log in as "root". All system maintenance, including instaling this new/updated program is done thru this "privileged" account; 3. Prepare a place to unpack the tarball containing this source; I created a directory "src" on a non-root filesystem, in which to put the indiviual sub-directories containing all the source code for each add-on package to my operating system. The make for a given package is run from that directory as well. The make is run in this directory because there can be a *lot* of work files created during a make run, although getty-ps's requirements are fairly small. It is *always* a good idea to keep the original tarball somewhere safe [I use a directory named "sys" in the same directory as "src", mentioned above], in case you make a mistake and need to re-fresh the source. So, my directory tree looks like: src: total 118 drwxr-x--- 2 chrissy stech 1024 Apr 11 09:10 efax-0.9 drwxr-x--- 5 chrissy stech 1024 May 30 13:37 getty_ps-2.0.8 sys: total 47356 -r--r----- 1 root stech 96736 Jan 16 13:38 efax-0.9.tar.gz -r--r----- 1 root stech 104116 Mar 18 23:14 getty_ps-2.0.8.tar.gz 4. Acquire and unpack the tarball containing this source code (getty_ps-2.1.0.tar.gz). Note that executable binaries *are* included with this tarball. They were compiled with gcc 2.7.2.3 and libc 2.0.7, from Slackware 4.0 (originally distributed in 1996, or so). The *should* run on any modern Linux system, if you are unsure of how to do the remaining steps. If you do this, skip to step 7; 5. Modify the compile-time configuration files to meet your system's requirements (the only one you should have to change is config.h - this source is distributed with several different config files, for various kinds of systems; pick the one that is for your system, or make a new one, as needed, and copy it to "config.h"; you may need to change "tune.h", if you need to change the terminal interface, like the backspace key, or change the default feature settings.); 6. Type "make" to build the executables (Note that the last compiles were done on gcc 2.95.3, with libc 2.2.3); 7. Type "make install" to install the newly made executables; 8. Create and/or modify the needed config files (/etc/ttytype, /etc/gettydefs, /etc/default/getty.*, /etc/default/uugetty.*, /etc/issue). See examples in the "Examples" directory; 9. Modify /etc/inittab to use one or more of the new programs (getty for non-modem lines [direct VDT access] and uugetty for modem access; on some systems, the installation script for the port hardware adds the needed entries to /etc/inittab [sometimes, it even does it correctly!]; othertimes, it needs to be done manually). See README.linux for details on how to do configuration; 10. Type "init q", to make init reload it's configuration file ("/etc/inittab", from the prevous step; on some systems, there is a script [usually called "enable"] which does this, and modifies some of /etc/inittab for you); 11. Check the installation: if the port to be tested is connected to a VDT, see if a login prompt appears on the screen, and if not, then hit the "Enter" key, and see if the login appears; if connected to a modem, first test dial-in (connect from another modem), and then test dial-out (using any program that supports UUCP-style lock files [cu is the standard program from the UUCP suite]). 11. Lastly, reboot the system and make sure it all still works! I've had a couple of instances where everything worked fine, until the system was rebooted... And, it is *damnably* difficult to log into the system to fix the problem when getty is not working well!