Build Speakup Modules
Trevor Astrope
astrope at tabbweb.com
Mon Aug 26 19:52:02 EDT 2013
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;
}
}
-------------- next part --------------
ifneq ($(KERNELRELEASE),)
include Kbuild
else
KERNELDIR = /lib/modules/`uname -r`/build
all: build
build:
make -C $(KERNELDIR) M=`pwd` `cat allmodule.mk`
clean:
make -C $(KERNELDIR) M=`pwd` `cat allmodule.mk` $@
modules_install:
make -C $(KERNELDIR) M=`pwd` `cat allmodule.mk` $@
endif
More information about the Speakup
mailing list