% Linux Installation and Getting Started    -*- TeX -*-
% getting.tex
% Copyright (c) 1992-1994 by Matt Welsh <mdw@sunsite.unc.edu>
%
% This file is freely redistributable, but you must preserve this copyright 
% notice on all copies, and it must be distributed only as part of "Linux 
% Installation and Getting Started". This file's use is covered by the 
% copyright for the entire document, in the file "copyright.tex".

\subsection{Getting Slackware}
\namedlabel{sec-slack-getting}{Getting Slackware}

\index{Slackware!getting|(}

\index{Volkerding, Patrick}
Slackware is a popular distribution of Linux maintained by Patrick
Volkerding.\footnote{Patrick Volkerding can be reached on the Internet
at {\tt volkerdi@mhd1.moorhead.msus.edu}.} It is easy to install and
fairly complete, and may be obtained both from the Internet as well
as on CD-ROM from a number of vendors (see Appendix~\ref{app-vendor-num}).

The Slackware distribution consists of a number of ``disk sets'',
each one containing a particular type of software (for example, 
the {\tt d} disk set contains development tools such as the {\tt gcc}
compiler, and the {\tt x} disk set contains the X~Window System 
software). You can elect to install whatever disk sets
you like, and can install new ones later.

The version of Slackware described here is 2.0.0, of 25 June 1994.
Installation of later versions of Slackware should be very similar
to the information given here.

\subsubsection{Slackware disk sets}

Unfortunately, Slackware does not maintain a complete list of 
diskspace requirements for each disk set. You need at least 7 megabytes
to install just the ``{\tt A}'' series of disks; a very rough estimate 
of the required diskspace would be 2 or 2.5 megabytes per disk. 

The following disk sets are available:
\begin{dispitems}
\ditem{{\tt A}}
The base system. Enough to get up and running and have elvis
and comm programs available. Based around the 1.0.9 Linux
kernel, and the new filesystem standard (FSSTND). 

These disks are known to fit on 1.2M disks, although the rest 
of Slackware won't. If you have only a 1.2M floppy, you can 
still install the base system, download other disks you want 
and install them from your hard drive. 

\ditem{{\tt AP}}
Various applications and add ons, such as the manual pages,
{\tt groff}, {\tt ispell} (GNU and international versions), 
{\tt term}, {\tt joe}, {\tt jove}, {\tt ghostscript}, 
{\tt sc}, {\tt bc}, and the quota patches.

\ditem{{\tt D}}
Program development. GCC/G++/Objective C 2.5.8, {\tt make} (GNU and
BSD), {\tt byacc} and GNU {\tt bison}, {\tt flex}, the 
4.5.26 C libraries, {\tt gdb}, kernel source for 1.0.9,
{\tt SVGAlib}, {\tt ncurses}, {\tt clisp}, {\tt f2c}, {\tt p2c},
{\tt m4}, {\tt perl}, {\tt rcs}.

\ditem{{\tt E}}
GNU Emacs 19.25.

\ditem{{\tt F}}
A collection of FAQs and other documentation.

\ditem{{\tt I}}
Info pages for GNU software. Documentation for various programs 
readable by {\tt info} or Emacs.

\ditem{{\tt N}}
Networking. TCP/IP, UUCP, {\tt mailx}, {\tt dip}, {\tt deliver}, 
{\tt elm}, {\tt pine}, {\tt smail}, {\tt cnews}, {\tt nn}, 
{\tt tin}, {\tt trn}.

\ditem{{\tt OOP}}
Object Oriented Programming. GNU Smalltalk 1.1.1, and the
Smalltalk Interface to X (STIX).

\ditem{{\tt Q}}
Alpha kernel source and images (currently contains Linux 1.1.18).

\ditem{{\tt TCL}}
Tcl, Tk, TclX, blt, itcl. 

\ditem{{\tt Y}}
Games. The BSD games collection, and Tetris for terminals.

\ditem{{\tt X}}
The base XFree86 2.1.1 system, with {\tt libXpm}, {\tt fvwm} 1.20, 
and {\tt xlock} added.

\ditem{{\tt XAP}}
X applications: X11 {\tt ghostscript}, {\tt libgr13}, {\tt seyon}, 
{\tt workman}, {\tt xfilemanager}, {\tt xv} 3.01, GNU {\tt chess} 
and {\tt xboard}, {\tt xfm} 1.2, {\tt ghostview}, and 
various X games.

\ditem{{\tt XD}}
X11 program development. X11 libraries, server linkkit, PEX
support.

\ditem{{\tt XV}}
Xview 3.2 release 5. XView libraries, and the Open Look 
virtual and non-virtual window managers.

\ditem{{\tt IV}}
Interviews libraries, include files, and the {\tt doc} and {\tt idraw}
apps. 

\ditem{{\tt OI}}
ParcPlace's Object Builder 2.0 and Object Interface Library
4.0, generously made available for Linux developers according
to the terms in the "copying" notice found in these
directories. Note that these only work with {\tt libc}-4.4.4,
but a new version may be released once {\tt gcc} 2.5.9 is 
available.

\ditem{{\tt T}}
The \TeX\ and \LaTeX\ text formatting systems.

\end{dispitems}


You must get the ``{\tt A}'' disk set; the rest are optional.
We suggest installing the {\tt A}, {\tt AP}, and {\tt D} sets,
as well as the {\tt X} set if you plan to run the X~Window System.

\subsubsection{Getting Slackware from the Internet}

The Slackware release of Linux may be found on any number of FTP sites
worldwide. Appendix~\ref{app-ftp} lists several of the Linux FTP
sites; we suggest that you try to find the software on the FTP
site nearest you, to reduce net traffic. However, two of the major
Linux FTP archives are {\tt sunsite.unc.edu} and {\tt tsx-11.mit.edu}.

The Slackware release may be found at least on the following sites:
\begin{itemize}
\item  {\tt sunsite.unc.edu:/pub/Linux/distributions/slackware}
\item  {\tt tsx-11.mit.edu:/pub/linux/packages/slackware}
\item  {\tt ftp.cdrom.com:/pub/linux/slackware}
\end{itemize}

{\tt ftp.cdrom.com} is Slackware's home site.

\paragraph{Downloading the files}
\label{sec-slack-download}

You should download the following files using FTP. Be sure to use
binary mode when transferring. Appendix~\ref{app-ftp} contains a
complete tutorial on using FTP.
\begin{itemize}
\item The various {\tt README} files, as well as {\tt SLACKWARE\_FAQ}.
Be sure to read these files before attempting to install the
software, to get any updates or changes to this document. 
\item A bootdisk image. This is a file that you will write to a 
floppy to create the Slackware boot disk. If you have a
1.44 megabyte boot floppy (3.5{\tt "}), look in the
directory {\tt bootdsks.144}. 
If you have a 1.2 megabyte boot floppy (5.25{\tt "}), 
look in the directory {\tt bootdsks.12}.

You need one of the following bootdisk files. 
\begin{itemize}
\item {\tt bare.gz}. This is a boot floppy that has only IDE hard
drive drivers. (No SCSI, CD-ROM, or networking support.)
Use this if you only have an IDE hard drive controller and aren't 
going to be installing over the network or from CD-ROM.
\item {\tt cdu31a.gz}. Contains IDE, SCSI, and the Sony CDU31A/33A driver.
\item {\tt mitsumi.gz}. Contains IDE, SCSI, and the Mitsumi CD-ROM driver.
\item {\tt modern.gz}. An experimental boot disk with a newer kernel,
and all drivers except those for network cards and the Sony 535 CD-ROM.
\item {\tt net.gz}. Contains IDE and network drivers.
\item {\tt sbpcd.gz}. Contains IDE, SCSI, and SoundBlaster Pro/Panasonic
CD-ROM drivers.
\item {\tt scsi.gz}. Contains IDE, SCSI, and SCSI CD-ROM drivers.
\item {\tt scsinet.gz}. Contains IDE, SCSI, SCSI CD-ROM, and network
drivers.
\item {\tt sony535.gz}. Contains IDE, SCSI, and Sony 535/531 CD-ROM drivers.
\item {\tt xt.gz}. Contains IDE and XT hard drive drivers.
\end{itemize}

You need only {\em one} of the above bootdisk images, depending on
the hardware that you have in your system.

The issue here is that some hardware drivers conflict with each other
in strange ways, and instead of attempting to debug hardware problems
on your system it's easier to use a boot floppy image with only
certain drivers enabled. Most users should try {\tt scsi.gz} or
{\tt bare.gz}. 

\item A rootdisk image. This is a file that you will write to a
floppy to create the Slackware installation disk. As with 
the bootdisk image, look in {\tt rootdsks.144} or
{\tt rootdsks.12} depending on the type of boot floppy
drive that you have. 

You need one of the following files:
\begin{itemize}
\item {\tt color144.gz}. The menu-based color installation disk
for 1.44 megabyte drives. Most users should use this rootdisk.
\item {\tt umsds144.gz}. A version of the {\tt color144} disk for
installing with the UMSDOS filesystem, which allows you to install
Linux onto a directory of an MS-DOS filesystem. This installation
method is not discussed in detail here, but it will prevent you 
from having to repartition your drive. More on this later.
\item {\tt tty144.gz}. The terminal-based installation disk for
1.44 megabyte drives. If {\tt color144.gz} doesn't work for you, 
try {\tt tty144.gz} instead.
\item {\tt colrlite.gz}. The menu-based color installation disk
for 1.2 megabyte drives. 
\item {\tt umsds12.gz}. A version of the {\tt colrlite} disk for
installing with the UMSDOS filesystem. See the description of
{\tt umsds144.gz}, above.
\item {\tt tty12.gz}. The terminal-based installation disk for
1.2 megabyte drives. Use this rootdisk if you have a 1.2 megabyte boot
floppy and {\tt colrlite.gz} doesn't work for you.
\end{itemize}

Again, you need only {\em one} of the above rootdisk images,
depending on the type of boot floppy drive that you have.

\item {\tt GZIP.EXE}. This is an MS-DOS executable of the 
{\tt gzip} compression program used to compress the boot and
rootdisk files (the {\tt .gz} extension on the filenames 
indicates this). This can be found in the {\tt install} directory.

\item {\tt RAWRITE.EXE}. This is an MS-DOS program that will
write the contents of a file (such as the boot and rootdisk
images) directly to a floppy, without regard to format. You 
will use {\tt RAWRITE.EXE} to create the boot and root floppies.
This can be found in the {\tt install} directory as well.

You only need {\tt RAWRITE.EXE} and {\tt GZIP.EXE} if you plan to
create the boot and root floppies from an MS-DOS system. If you 
have access to a UNIX workstation with a floppy drive instead,
you can create the floppies from there, using the {\tt dd} command.
See the man page for {\tt dd} and ask your local UNIX administrators 
for assistance.

\item The files in the directories {\tt slakware/a1}, 
{\tt slakware/a2}, and {\tt slakware/a3}.
These files make up the ``{\tt A}'' disk set of the Slackware
distribution. They are required. Later, you will copy these files
to MS-DOS floppies for installation (or, you can install from 
your hard drive). Therefore, when you download these files, keep 
them in separate directories; don't mix the {\tt a1} files with
the {\tt a2} files, and so on. 

Be sure that you get the files without periods in the filenames
as well. That is, within FTP, use the command ``{\tt mget *}'' 
instead of ``{\tt mget *.*}''. 

\item The files in the directories {\tt ap1}, {\tt ap2}, etc., 
depending on what disk sets you are installing. For example,
if you are installing the ``{\tt X}'' disk series, get the
files in the directories {\tt x1} through {\tt x5}. As with
the ``{\tt A}'' disk set, above, be sure to keep the files in
separate directories when you download them.
\end{itemize}

\subsubsection{Getting Slackware on CD-ROM}

Slackware is also available on CD-ROM. Most Slackware CD-ROMs
simply contain a copy of the files as they appear on the FTP
archive sites, as described above. Therefore, if you have 
a Slackware CD-ROM, you have all of the files that you need.

You will have to create a boot and root floppy from the files
on the CD-ROM. See Section~\ref{sec-slack-download}, above,
for a discussion on the available boot and root disk images.

First, decide which boot and root disk images you will use.
They should all be on the CD-ROM. Below, we will describe how to
create these floppies.

\subsubsection{Installation methods}

Slackware provides several different means of installing the
software. The most popular is installing from an MS-DOS partition
on your hard drive; another is to install from a set of MS-DOS
floppies created from the disk sets that you downloaded. 

If you have Slackware on a CD-ROM, you can install the files
directly from there. The Slackware Pro distribution, from
Morse Telecommunications, allows you to install Slackware so
that many files are accessed directly on the CD-ROM. This can
save a great deal of space on your hard drive, with the tradeoff
that running certain applications will be slower. 

\paragraph{Creating the boot and root floppies}

You must create floppies from the bootdisk and rootdisk images that
you downloaded (or have on CD-ROM), no matter what type of installation 
you will be doing. 

On an MS-DOS system, you must uncompress the bootdisk and
rootdisk images using {\tt GZIP.EXE}. For example, if you're
using the {\tt bare.gz} bootdisk image, issue the MS-DOS command:
\begin{tscreen}
C:\verb+\+> GZIP -D BARE.GZ 
\end{tscreen}
which will uncompress {\tt bare.gz} and leave you with the file 
{\tt bare}. If you are installing from CD-ROM, you can copy
the bootdisk image (such as {\tt bare.gz}) to you hard drive,
and run {\tt GZIP.EXE} from the CD-ROM to uncompress it.

You must similarly uncompress the rootdisk image. For
example, if you are using the rootdisk {\tt color144.gz}, issue the
command:
\begin{tscreen}
C:\verb+\+> GZIP -D COLOR144.GZ
\end{tscreen}
which will uncompress the file and leave you with {\tt color144}. 


Next, you must have two {\em high-density\/} MS-DOS formatted floppies.
(They must be of the same type; that is, if your boot floppy drive is
a 3.5" drive, both floppies must be high-density 3.5"
disks.) You will use {\tt RAWRITE.EXE} to write the boot and rootdisk
images to the floppies.

Issue the command:
\begin{tscreen}
C:\verb+\+> RAWRITE
\end{tscreen}

Answer the prompts for the name of the file to write (such as {\tt bare},
or {\tt color144})
and the floppy to write it to (such as {\tt A:}). {\tt RAWRITE} will copy
the file, block-by-block, directly to the floppy. Also use {\tt RAWRITE}
for the root disk image. When you're done, you'll
have two floppies: one containing the boot disk, the other containing
the root disk. Note that these two floppies will no longer be readable by
MS-DOS (they are ``Linux format'' floppies, in some sense).

Be sure that you're using brand-new, error-free floppies. The floppies
must have no bad blocks on them. 

Note that you do not need to be running MS-DOS in order to install
Slackware. However, running MS-DOS makes it easier to create the boot and
root floppies, and it makes it easier to install the software (as you can
install directly from an MS-DOS partition on your system). If you are not
running MS-DOS on your system, you can use someone else's MS-DOS system just
to create the floppies, and install from there. 

It is not necessary to use {\tt GZIP.EXE} and {\tt RAWRITE.EXE} under
MS-DOS to create the boot and root floppies, either. You can use the
{\tt gzip} and {\tt dd} commands on a UNIX system to do the same job.
(For this, you will need a UNIX workstation with a floppy drive, 
of course.) For example, on a Sun workstation with the floppy drive on
device {\tt /dev/rfd0}, you can use the commands:
\begin{tscreen}
\begin{verbatim}
$ gunzip bare.gz
$ dd if=bare of=/dev/rfd0 obs=18k
\end{verbatim}
\end{tscreen}

You must provide the appropriate block size argument (the {\tt obs} argument)
on some workstations (e.g., Suns) or this will fail. If you have problems
the man page for {\tt dd} will be instructive.

\paragraph{Preparing for installation from hard drive}

If you're planning on installing the Slackware software directly
from the hard drive (which is often faster and more reliable than a floppy
installation), you will need an MS-DOS partition on the system that you're
installing Slackware to. 

{\bf Note:} If you plan to install Slackware from an MS-DOS partition,
that partition must NOT be compressed with DoubleSpace, Stacker, or any
other MS-DOS drive compression utility. Linux currently cannot read
DoubleSpace/Stacker MS-DOS partitions directly. (You can access them
via the MS-DOS Emulator, but that is not an option when installing
the Linux software.) 

To prepare for hard drive installation, simply create a directory on the
hard drive to store the Slackware files. For example,
\begin{tscreen}
C:\verb+\+> MKDIR SLACKWAR
\end{tscreen}

will create the directory {\tt C:\verb+\+SLACKWAR} to hold the Slackware files.
Under this directory, you should create subdirectories {\tt A1}, 
{\tt A2}, and so on, for each disk set that you downloaded, using
the {\tt MKDIR} command. All of the
files from the {\tt A1} disk should go into the directory 
{\tt SLACKWAR\verb+\+A1}, and so forth. 

\paragraph{Preparing for floppy installation}

If you wish to install Slackware from floppies instead of the hard drive,
you'll need to have one blank, MS-DOS formatted floppy for each Slackware
disk that you downloaded. These disks must be high-density format. 

The {\tt A} disk set (disks {\tt A1} through {\tt A3}) may be either 
3.5" or 5.25" floppies. However, the rest of the disk
sets must be 3.5" disks. Therefore, if you only have a 5.25"
floppy drive, you'll need to borrow a 3.5" drive from someone in
order to install disk sets other than {\tt A}. (Or, you can install 
from the hard drive, as explained in the previous section.) 

To make the disks, simply copy the files from each Slackware directory onto
an MS-DOS formatted floppy, using the MS-DOS {\tt COPY} command. As so:
\begin{tscreen}
C:\verb+\+> COPY A1\verb+\+*.* A:
\end{tscreen}
will copy the contents of the {\tt A1} disk to the floppy in drive {\tt A:}. 
You should repeat this for each disk that you downloaded.

You do {\em not\/} need to modify or uncompress the files on the disks
in any way; you merely need to copy them to MS-DOS floppies. The Slackware
installation procedure takes care of uncompressing the files for you.

\paragraph{Preparing for CD-ROM installation}

If you have Slackware on a CD-ROM, you are ready to install the 
software once you have created the boot and root floppies. The
software will be installed directly from CD.

\index{Slackware!getting|)}
