(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!