This document assumes you have had some experience with kernel
compilation and installation.  If you have not, I recommend you get
the kernel source and read the README and various documents in the
linux/Documentation directory.  In particular the Changes file to make
sure you have the appropriate utilities needed for installing a 2.2.xx
or 2.3xx kernel.  It isn't as difficult as you might think.  The
kernel README is intimidating the first time but once you get the
steps down, it's really pretty easy.  Getting through the "make
config" is the tedious bit.

The first thing to do is to place a copy of the patch in the /usr/src
directory which is the directory the linux tree is located in as well.
To apply the patch if you are using speakup-0.09-v2.2-patch say, type
the following at your shell prompt:

patch -p0 <speakup-0.09-v2.2-patch

Note the less-than sign before the patch file name.  The patch program
will give a running commentary on the patch hunks being applied.  It
will give a summary of the hunks which succeeded or failed in being
applied.  Hopefully all hunks will succeed.  Depending on how
experienced you are with kernel compiling and hacking will determine
whether you should bother looking at any failed patches.  If this
happens, you should probably write to the speakup mailing list for
help or myself.

If all of the patch hunks apply successfully then just continue with
the standard steps to compile the kernel with:

make mrproper
make config

When you get to the section console speech output, answer 'y' to the
CONFIG_SPEAKUP prompt.  You will be given a submenu with the list of
synthesizers which are currently supported.  You can only choose one
of the synths, so just type dtlk or whatever is the correct string for
the synthesizer you have.

We have placed the speakup configuration options in make config just
after the vga console choice.  For the DoubleTalk PC driver included
by Jim Van Zandt.  I recommend you say no to that option.  I have not
tried configuring them both in, but I wouldn't be at all surprised if
it didn't work.

If all goes well up to this point you can continue with the compiling
process by doing:

make dep >dep.file 2>&1 &
make bzImage >cc.file 2>&1 &

I always redirect output to the files dep.file and cc.file so I can
look over the compilation record to make sure there are no errors and
warnings.

Okay, you are ready to install the newly compiled kernel.  Make sure
you make an linux.old entry in your lilo.conf file so you can recover
if it blows up.  next move the bzImage from
/usr/src/linux/arch/i386/boot to wherever your kernel lives.  Also
move the System.map from /usr/src/linux to where your System.map
lives.  On our systems we use debian so we create an vmlinuz-speakup
and System.map-speakup in our /boot directory and set the symbolic
links vmlinuz and System.map in the root (/) directory to point to the
images.  Now type lilo to tell lilo to build the new booter file and
install it.

As of version 0.07, the keymap for speakup is automatically built in
at compile time.  If you have other keymaps installed at boot time,
you might want to consider removing them before you reboot the system.
Also if you have compiled the kernel prior to applying the speakup
patch, you have to remove the defkeymap.c file which is in the
linux/drivers/char directory.  This file is not rebuilt if one already
exists.  So if you find you have no review functions upon rebooting,
you know where to check first.

If everything has gone OK up until now, cross your fingers and type:

shutdown -r now

Your system should start talking to you as soon as it starts booting.
It will talk and talk and ... well, you might want to hit the
keypad-enter key to tell it to shut up.  You should also read the
DefaultKeyAssignments file to learn the various review functions
available.

As of Speakup-0.05, there are accompanying utilities which will allow
you to load and dump speakups configuration information.  These
utilities are in the subdirectory load_spk-version and have their own
README and INSTALL files.  You should read through these files before
building the utilities and installing them.  The utilities are based
on the idea of loadkeys so they work somewhat the same.  The
configuration file commands are a little weird to get used to at
first, but once you understand them you'll hopefully realize they are
very flexible.

I have probably managed to overlook a whole whack of things because
this is the, enter version number here, draft.  Don't worry we'll get
it right eventually.  If you like the package you really should get on
the mailing list and start participating in it's development.

  Kirk

email: kirk@braille.uwo.ca
phone: (519) 679-6845 (home)

