Trevor, I presume your modification to serialio.c will get hardware synths working, but only for on-board serial ports and not add-on PCI serial ports. Is that a correct assumption? From what I've both heard and found for myself in the Speakup source, add-on serial port support takes more than what you've done, but I could be wrong. Keith -----Original Message----- From: Speakup [mailto:speakup-bounces@xxxxxxxxxxxxxxxxx] On Behalf Of Trevor Astrope Sent: Monday, August 26, 2013 6:52 PM To: speakup at linux-speakup.org Subject: Build Speakup Modules Here is how I built speakup as modules for my distribution kernel (Debian Jessie 3.10-2-amd64) without having to configure and compile the kernel. The below requires that you have the kernel headers for your distribution's kernel installed. You should have some files and directories under /lib/modules/<kernel_ver>/build. On my system, `ls /lib/modules/3.10-2-amd64/build' shows the following: arch include Makefile Module.symvers scripts First, download the speakup source code if you don't already have it. $ git clone http://linux-speakup.org/speakup.git Change to the actual source directory: $ cd speakup/drivers/staging/speakup Rename Makefile to Kbuild: $ mv Makefile Kbuild Save the attached Makefile to speakup/drivers/staging/speakup/Makefile and follow the instructions in speakup/INSTALLATION for building speakup as modules. The modules will be installed in /lib/modules/<kernel_ver>/extra. If your distribution kernel includes speakup, you will need to move them to /lib/modules/<kernel_ver>/kernel/drivers/staging/speakup to avoid any confusion with the version installed by your distribution. # mv /lib/modules/<kernel_ver>/extra/*.ko \ /lib/modules/<kernel_ver>/kernel/drivers/staging/speakup Run depmod to update module dependencies: # depmod <kernel_ver> Lastly, update the init image with the new speakup modules and boot your kernel. In Debian you can run: # update-initramfs -u If you are using a hardware synth, you may need to modify the speakup source in order to get speech. If this is the case for you, edit speakup/drivers/staging/speakup/serialio.c and remove the below around line 37. Then repeat these instructions. if (synth_request_region(ser->port, 8)) { /* try to take it back. */ printk(KERN_INFO "Ports not available, trying to steal them\n"); __release_region(&ioport_resource, ser->port, 8); err = synth_request_region(ser->port, 8); if (err) { pr_warn("Unable to allocate port at %x, errno %i", ser->port, err); return NULL; } }