speakup

Geoff Shang gshang at uq.net.au
Mon Feb 5 03:48:26 EST 2001


On Sun, 4 Feb 2001, Brent Harding wrote:

> How can I upgrade an already patched kernel to the new speakup? I'm running
> rh 6.2, and my kernel source is already patched.

To answer your question literally, you can't.  You have to unpack a fresh
tree and repatch.  This is the way it goes, sorry.  speakup is designed to
patch against a fresh tree, not against older versions of itself.

Here's what you need to do.  Note that if you're upgrading from 0.09 to
0.10 then the procedure will be different than if you're upgrading from
0.10 to CVS.  I'm assuming you're upgrading from 0.09 to 0.10 because of
how old your system install is.  Let me know if this is not the case.

OK, you're probably running redhat's kernel 2.2.16 (or something older) and
speakup 0.09.  Speakup 0.10 requires that you be running kernel 2.2.18 or
above or kernel 2.4.0test10 or above.  I'd recommend 2.2.18 unless 2.2.19
is out.  Now you can get 2.2.18 from ftp.kernel.org or you can get one of
the redhat packaged sources (if there are any for 2.2.18).  I'm not certain
of how to compile with the redhat sources, though bill assures me that this
is definitely possible.  If you choose to go this route and something
listed below doesn't work, consult with bill.

Get linux-2.2.18.tar.gz or linux-2.2.18.tar.bz2 from kernel.org or mirror.

Place the file in /usr/src.

If you have previously compiled a kernel and would like to keep your
current settings, move /usr/src/linux/.config (that's dot config in the
linux sources directory) out of the way, somewhere safe.  If you want to
keep this source tree (see next point), you may just want to copy it
somewhere else rather than move it, as you will then have the settings
still in place for that tree.

If you wish to retain your previous source tree for whatever reason, move
the /usr/src/linux directory somewhere else so that it doesn't get written
over (e.g. mv linux linux-2.2.16 or whatever).  If you don't want to keep
it, delete it.  The unpack will not replace what is already there, so
either way it needs to be out of the way or you get ummm. a mess.

Unpack the kernel source.  If you got the gz file type:

tar -zxf linux-2.2.18.tar.gz

If you got the bzip2 version type:

tar -Ixf linux-2.2.18.tar.bz2

Note that recent versions of tar use j or J instead of I apparently, though
mine uses I still.

If you want to see a list of files as they unpack, add the 'v' option.
Note that this is a *lot* of files so you might be quite happy not to watch
them scroll by.

Next, read /usr/src/linux/READMe if you haven't already.

Now download speakup-0.10a.tar.gz from ftp.linux-speakup.org.

Place speakup-0.10a.tar.gz in /usr/src.

Unpack speakup with

tar -zxf speakup-0.10a.tar.gz

Again, add the -v option if you want to see what gets unpacked.  This will
unpack files to /usr/src/speakup-0.10/

Now read the file INSTALLATION and possibly README in the speakup-0.10
directory (if you haven't read
them already).  Read INSTALLATION anyway, since it has changed from
previous versions.  This is in case I forget something important.

Next, run the install script that is in /usr/src/speakup-0.10.  If you are
in that directory, type:

./install

If not, type:

speakup-0.10/install

This will go and patch the kernel.  If hunks fail then you have a problem
and we need to see the exact output of this.

Assuming all hunks succeed, change to /usr/src/linux and type:

make mrproper

Now, get that .config file you saved (if you saved one) and move it back
into /usr/src/linux.  Now type:

make oldconfig

If you want to make substantial changes to your answers since last time, do
'make config' instead and change as necessary.  Now go ahead and do:

make dep
make clean
make bzImage
make modules
make modules_install

What you do next depends on your preference and what school you went to.  I
do 'make bzlilo' and I'm done.  Depending on your distro or the phases of
the moon, you may want or need to do something else.  consult with other
redhat gurus at this point.  Either way, make sure you have your old image
to fall back on if it fails.

Now, make an entry in your lilo.conf for your old image in case it all
blows up if there isn't one there already.  Run lilo again to install the
changes you made to /etc/lilo.conf (if you made any).  Then cross your
fingers and reboot.

Geoff.






More information about the Speakup mailing list