Ok, that wasn't so hard. My system is now a loadable module. I don't ever want to hack the kernel again! At least not directly. A line near the top of my rc.sysinit script now invokes modprobe blinux And my /etc/conf.modules contains the lines: alias blinux jupiter options jupiter synth=votrax port=0 baud=9600 interrupt=n # Configure jupiter with your key bindings etc post-install jupiter talkcfg /etc/blinux.cfg To fix a bug or make a change I just recompile jupiter.o (the module), rmmod jupiter, and modprobe blinux. The interface between the ready-for-blinux kernel and the blinux module is documented in blinux-attach.h. This header file contains only four declarations, and lots of comments. The comments tell you how to write and install a blinux module. A skeleton (C code) is included, so you have something to work with right away. Please look at it and tell me if you think it is general enough to work for everybody. Is there some important functionality that this interface will not support? BTW, I thank you for all your comments over the past week; they have helped me design this interface. Somebody (don't recall who) suggested there might be more functionality that should be in the kernel -- capabilities that almost every blinux module needs -- software that we don't want to all reinvent. Accessing screen memory is a good example, or setting up a periodic timer for continuous reading. I take this suggestion very seriously. I may, at some point, move some of my Jupiter code into the kernel proper, so your blinux module can just call a function and get the screen image with cursor xy. But sometimes you need to crawl before you can walk. I just wanted to get an interface up and working. So take a look, and tell me if it is inadequate (won't support a feature), or if it would benefit from some additional in-built functionality (such as grabbing a copy of screen memory). Along with the aforementioned header file, I am making two patch files available. The first "prepares" the kernel for blinux modules. In other words, it puts in the hooks. The second is my jupiter speech module. Warning, if you download the documentation, from the same directory, you will find it is somewhat out of date. It still talks about Jupiter inside the kernel, and boot parameters, and lilo, and all that. I'll update the documentation as soon as I get round to it. You know how it is -- docs are always last. Patches should be applied from /usr/src/linux via patch -b -p0 <patchfile http://eklhad.hispeed.com/linux/jupiter/blinux_attach.h http://eklhad.hispeed.com/linux/jupiter/blinux-hook.patch http://eklhad.hispeed.com/linux/jupiter/jupiter.patch Karl Dahlke