This arrangement again requires a DOS machine with a speech synthesizer and a terminal emulator program. However, instead of dialing up a remote computer, it is used as a terminal to a local computer running Linux. To get to this point, you need to install Linux on a machine. You may be able to prevail on a knowledgable friend to help you with this. However, it is also possible to install it yourself with speech feedback for almost the whole procedure.
First, some background. Even the simplest Unix system requires a program called the kernel and a root file system. The kernel has all the device drivers and resource management functions. One normally thinks of a "file system" as residing on a hard disk or floppy disk, but during an installation it is usually in ram. Linux is normally installed by writing a kernel image to a floppy disk, called the "boot floppy", configuring it to reserve a section of RAM for a ramdisk, then filling that ramdisk with data from a second floppy disk, called the "root floppy". As soon as both floppies have been read in, the user can log in as "root" and complete the installation. The sighted user logs in on the "system console", that is, the computer's own keyboard and video display. However, remember that Unix has been a multiprocessing operating system from the very beginning. Even this very primitive Unix system, running out of a small ramdisk, also supports logins from a terminal connected to a serial port. This is what a blind user can use.
To connect the two computers, you can use a "null modem", a serial cable that connects ground to ground, and transmit on each end to receive on the other. The cable that comes with the DOS application LapLink will work fine. It is particularly handy, in fact, because it has both a 9 pin and a 25 pin connector on each end. If you want to check a cable or have one made, here are the required connections:
For two 9 pin connectors, connect pin 2 (receive data) to pin 3, pin 3 (transmit data) to pin 2, and pin 5 (signal ground) to pin 5.
For two 25 pin connectors, connect pin 2 (receive data) to pin 3, pin 3 (transmit data) to pin 2, and pin 7 (signal ground) to pin 7.
For a 9 pin connector (first) to a 25 pin connector (second), connect pin 2 (receive data) to pin 2 (transmit data), pin 3 (transmit data) to pin 3 (receive data), and pin 5 (signal ground) to pin 7 (signal ground).
You may have noted that I have included no connections for the
"handshaking" signals. During login, the serial port is handled by
the program agetty
. Recent versions of this program accept a -L
switch which tells it not to expect modem control signals. The
version in Slackware 3.0 does, but the one on the 3.0 (and earlier)
installation root disks does not. However, Pat Volkerding has assured
me that the root disks in the next release of Slackware will have the
updated version of agetty
. It is also possible to use the
earlier root disks [
Emacspeak with Earlier Slackware Releases]. (The messages quoted below come
from Slackware 3.0 because that's the most recent release I have.
I'll update them after the new release comes out.)
Consult the documentation on your CDROM, or downloaded from an FTP site, and choose a boot disk with the proper kernel features for your hardware (IDE or SCSI, CDROM driver, etc.). I have the InfoMagic November 1995 "Developer's Resource" set of five CDROMS. Slackware 3.0 is on disk 1 of that set. Documentation on the boot floppies is in slackwar/boot144/WHICH.ONE. The DOS program for writing boot images to a floppy is utils/rawrite.exe. Therefore, one might use these commands to write to a disk in the A drive:
c>m:
m>cd \slackwar\boot144
m>m:\utils\rawrite
scsinet1
a
Similarly, to write the "text" root disk:
c>m:
m>cd \slackwar\rootdsks
m>\utils\rawarite
text.gz
a
For the actual installation, proceed as follows: Use the null modem to connect the computer running DOS and equipped with speech output (henceforth called the "DOS computer") to the computer into which you want to install Linux (henceforth the "Linux computer").
Boot the DOS machine, and start your terminal emulation program. Set it up for 9600 baud, no parity, eight data bits, 1 stop bit.
On the Linux machine, insert the "boot" disk and boot (power up, cntl-alt-del, or hit the reset switch). It should read the disk for five seconds or so, and stop with the following text:
(Note: in the following, the large blocks of text quoted from the installation disks are preceded by "-- begin quote" and followed by "-- end quote". To skip to the end of a quote, you may search for two dashes starting in the first column.)
-- begin quote
Welcome to the Slackware Linux 3.0.0 bootkernel disk!
If you have any extra parameters to pass to the kernel, enter them at the
prompt below after one of the valid configuration names (ramdisk, mount, drive2)
Here are some examples (and more can be found in the BOOTING file):
ramdisk hd=cyl,hds,secs (Where "cyl", "hds", and "secs" are the number of
cylinders, sectors, and heads on the drive. Most
machines won't need this.)
In a pinch, you can boot your system with a command like:
mount root=/dev/hda1
On machines with low memory, you can use mount root=/dev/fd1 or
mount root=/dev/fd0 to install without a ramdisk. See LOWMEM.TXT for details.
If you would rather load the root/install disk from your second floppy drive:
drive2 (or even this: ramdisk root=/dev/fd1)
DON'T SWITCH ANY DISKS YET! This prompt is just for entering extra parameters.
If you don't need to enter any parameters, hit ENTER to continue.
boot:
-- end quote
I have almost always been able to just hit "enter" at this point.
After your entry, it should read the floppy for another twenty seconds or so, then boot the kernel. Each device driver in the kernel displays a line or two. The particular disk I'm using (the "bare" bootdisk) displays more than one screen's worth. It is possible to type shift-page up to scroll the text back. On my machine, the boot messages are as follows:
-- begin quote
Loading ramdisk.....
Uncompressing Linux...done.
Now booting the kernel
Console: colour EGA+ 80x25, 1 virtual console (max 63)
Calibrating delay loop.. ok - 17.47 BogoMips
Serial driver version 4.11 with no serial options enabled
tty00 at 0x03f8 (irq = 4) is a 16550A
lp1 at 0x0378, using polling driver
PS/2 auxiliary pointing device detected -- driver installed.
ftape: allocated 3 buffers aligned at: 0138000
hda: IBM-DBOA-2720, 689MB w/64KB Cache, LBA, CHS=700/32/63, MaxMult=32
ide0: primary interface on irq 14
Floppy drive(s): fd0 is 1.44M
FDC 0 is a 8272A
Memory: 5524k/8384k available (648k kernel code, 384k reserved, 1828k data)
This processor honours the WP bit even when in superviser mode. Good.
Swansea University Computer Society NET3.019
Swansea University Computer Society TCP/IP for NET3.019
IP Protocols: ICMP, UDP, TCP
PPP: version 0.2.7 (4 channels) NEW_TTY_DRIVERS OPTIMIZE_FLAGS
TCP compuression code copyright 1989 Regents of the University of California
PPP line discipline registered.
SLIP: version 0.8.3-NET3.019-NETTTY (4 channels) (6 bit encapsulation enabled)
CSLIP: code copyright 1989 Regents of the University of California
Checking 386/387 coupling... Ok, fpu using exception 16 error reporting.
Checking 'hlt' instruction... Ok.
Linux version 1.2.13 (root@bigkitty) (gcc version 2.7.0) #1 Tue Aug 22 22:23:13
CDT 1995
Partition check:
hda: hda1 hda2 hda3
VFS: Insert ramdisk floppy and press ENTER
-- end quote
Some messages will of course be different on a machine with different hardware. Now, insert the "text" rootdisk and press ENTER. After it is read, the following is displayed on the console, and should also be displayed on the DOS machine (and therefore spoken):
-- begin quote
VFS: Disk change detected on device 2/28
RAMDISK : starting gunzip of rootdisk image... 10
done.
VFS: Mounted root (minix filesystem).
Apr 12 23:00:57 init[1]: version 2.4 booting
none on /proc type proc (rw)
Apr 12 23:00:57 init[1]: Entering runlevel: 4
Welcome to the Slackware Linux installation disk ,version 3.0.0-tty!
### READ THE INSTRUCTIONS BELOW CAREFULLY! ###
You will need one or more partitions of type "Linux native" prepared. It is
also recommended that you create a swap partition (type "Linux swap") prior to
installation. Most users can use the Linux "fdisk" utility to create and tag
the types of all these partitions. OS/2 Boot Manager users, however, should
create their Linux partitions with OS/2 "fdisk", add the bootable (root)
partition to the Boot Manager menu, and then use the Linux "fdisk" to tag the
partitions as type "Linux native".
If you have 4 megabytes or less of RAM, you MUST ACTIVATE a swap partition
before running setup. After making the partition with fdisk, use:
mkswap /dev/<partition> <number of blocks> ; swapon /dev/<partition>
Once you have prepared the disk partitions for Linux, type "setup" to
begin the installation process.
You may now login as "root".
slackware login:
-- end quote
If you don't get this prompt, try the following:
AT
and
a carriage return. You should get a reply of "OK" from the modem.Once you get the above prompt on the DOS machine, you may type root
and a single carriage return to log in, and complete the installation
like any other user. Of course, you must remember to include these
four packages: emacs, emacspeak, tcl, and tclX.
The installation script will offer to prepare a boot floppy. You
should do this, since it is the most foolproof way to boot Linux. You
will probably also want to install lilo
(which is an abbreviation
for "Linux loader") and/or loadlin
(which is an abbreviation for
"load Linux"). The installation script can install lilo. Loadlin is
a DOS program that will let you boot from DOS to Linux. Install it on
a DOS partition, and copy a compressed kernel file (usually named
zImage
) to the same partition. While running DOS, you may boot
Linux with a command like loadlin zimage root=/dev/hda3 ro/
.
(I have assumed here that the kernel image is in the same directory as
the loadlin program. You may find it more convenient to store kernel
images in subdirectories named for the kernel version.)
Reboot the Linux machine with the new boot floppy, with the DOS machine still connected. You should get a login prompt on the DOS machine. Celebrate! After getting this system working, you need to learn emacs (third option) and Unix system administration.
Mostly you will learn system administration as the need arises. First adding a user (yourself), then installing programs, and so forth. The exception to this is making backups, which you should learn before you need them.
You will need to learn these programs:
Create and unpack .tar
files, which are collections of
files (something like .zip
files). To list the contents of an
archive, use tar -tf foobar.tar
. For a more verbose listing, use
tar -tvf foobar.tar
. To unpack an archive, use tar -xf
foobar.tar
.
Search directories recursively. For example, the command
find . -name '*alpha*' -print
means: search starting in the
current directory (.
) for a file whose name contains the string
"alpha" (-name '*alpha*'
), and print its path and name
(-print
). (With GNU find, the -print
is optional.)
Display filesystem capacities, free space, and where they are mounted.
Display filesystems, where they are mounted, and the mount flags.
Transfer files across the Internet.
Here are some programs you may want to install:
Approximate grep searches for approximate, not exact, string matches (also called "fuzzy string searches").
Search Internet archives for files.
Convert text files between Unix and DOS formats.
Fuzzy string searches in large collection of files (uses agrep).
Text mode web browser.
Here are some Web pages related to Unix system administration:
General information http://www.ensta.fr/internet/unix/sys_admin/ or http://www.sai.msu.su/sysadm.html
There is a Unix system administration tutorial at http://www.iem.ac.ru/sysadm.html
UnixWorld Online Magazine Home Page http://www.wcmh.com/uworld/
Internet Essentials for UNIX System Administrators Tutorial http://www.greatcircle.com/tutorials/ieusa.html
Pointers to Unix goodies available on the Internet http://www.ensta.fr/internet/unix/
Pointers to Unix system administration "goodies" available on the Internet http://www.ensta.fr/internet/unix/sys_admin/