Installing Speakup Mods (Part 2)
Doug
wearable at shawcable.com
Thu Apr 10 20:19:39 EDT 2003
(Installing Speakup mods continued: Part 2)
Installing Speakup
Speakup is a set of patches to the linux kernel. It is assumed
that you are familiar with kernel configuration and compilation.
See the kernel howto for more information on building kernels.
The following instructions explain how to dowload and prepare
both speakup and the speakup modifications for sound card.
The Speakup Home page is here:
http://www.linux-speakup.org/
Get the most recent speakup source code from CVS:
cd /usr/src
cvs -d:pserver:anonymous at linux-speakup.org:/usr/src/CVS login
Password: please
cvs -d:pserver:anonymous at linux-speakup.org:/usr/src/CVS checkout speakup
You will see a new directory /usr/src/speakup
The home page for the speakup modifications for software
synthesiser is here:
http://users.wpi.edu/~blinux/
Get the speakup modifications
http://www.wpi.edu/~blinux/releases/speakup-modifications-20030403.tar.gz
You may want to check if there is a more recent release.
Check this page for updated release information:
http://users.wpi.edu/~blinux/
Extract the speakup modifications
cp speakup-modifications-20030403.tar.gz /usr/src
cd /usr/src
tar xzvf speakup-modifications-20030403.tar.gz
Compile the middleware program
cd middleware
make
The next step is to patch the linux kernel with speakup
and the modifications for sound card, which are already
extracted into the /usr/src/speakup directory.
Download the linux kernel source, for example:
ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.20.tar.gz
Prepare the kernel source
cp linux-2.4.20.tar.gz /usr/src
cd /usr/src
tar xzvf linux-2.4.20.tar.gz
rm linux
ln -s linux-2.4.20 linux
cd linux
make mrproper
Now the kernel needs to be patched with the speakup
and modifications for sound card.
cd /usr/src/speakup
cp install /usr/src
cd /usr/src
./install
Hopefully you will get a message indicating that the
patches were applied without errors. If you get errors
you will need to figure out why before proceeding
further.
After the patches are applied, compile the linux kernel:
cd /usr/src/linux
Configure the linux kernel using
make config or
make menuconfig
If you are not clear on which options to include, you
can compare to a working kernel configuration. There
are working kernel configuration examples here:
ftp://ftp.slackware.com/pub/slackware/slackware-9.0/kernels/
For example, here is the bare.i (default) slackware kernel config
ftp://ftp.slackware.com/pub/slackware/slackware-9.0/kernels/bare.i/config
The speakup patches add some new items in the kernel config.
In the console drivers section, there should be a new item
listed as "Speakup console speech". Then there will be a
list of synthesizers. For the software synthesizer using
sound card, select the "software synth driver, usrdev".
Also set the defauly synthesizer to be "usrdev" rather
than the default value which is "none". Adding these items
in the config tools adds these lines to /usr/src/linux/.config:
CONFIG_SPEAKUP=y
CONFIG_SPEAKUP_USRDEV=y
CONFIG_SPEAKUP_DEFAULT="usrdev"
CONFIG_SPEAKUP_KEYMAP=y
After you've configured your kernel appropriately, proceed
to compile and install the kernel:
cd /usr/src/linux
make dep
make bzImage
make modules
make modules_install
Copy the newly compiled kernel to its boot location
and give it an appropriate name, for example:
cd /usr/src/linux/arch/i386/boot
cp bzImage /boot/vmlinuz-speakup
You will probably need to add the new kernel to your
bootloader configuration. It's recommended that you
leave your working kernel in the bootloader in case
the new kernel doesn't boot. Here's an example of
adding a new kernel in /etc/lilo.conf
image=/boot/vmlinuz-speakup
root= /dev/hda2 (change this to your partition number)
label = Linux-Speakup
read-only
What I do is copy the 4 lines from the working
kernel and modify them for the new kernel. I leave
the old kernel there so it can still be booted:
# this is the original kernel
image=/boot/vmlinuz
root=/dev/hda2
label = Linux
read-only
# this is the new speakup kernel
image=/boot/vmlinuz-speakup
root= /dev/hda2 (change this to your partition number)
label = Linux-Speakup
Execute lilo to install the new bootloader config
/sbin/lilo -v
Check to make sure there are no errors.
Add a new device node for /dev/usrdev
mknod /dev/usrdev c 252 0
Since there is no external synthesizer, the speech will
not work until the sound system is loaded and festival
is started. You will need to add festival somewhere in
the init scripts. Adding these following lines to
/etc/rc.d/rc.local worked for me:
/usr/src/festival/bin/festival --server &
sleep 5
/usr/src/middleware/middleware &
Reboot and you should have console speech!
More information about the Speakup
mailing list