The assumption is that kernel is in memory and running. The difference being there are no usb modules to load, because they are statically already in the kernel. Luke Yelavich wrote: This would not be possible, as the PCI subsystem is not initialized until the kernrel is in memory and running. Speech output would only work once the PCI subsystem is up, and the USB controller located, as well as the USB devices connected to it are identified. You're not getting speech now before the kernel is in memory and running, are you? Let's say I take a doubletalk lite RS232 synth and plug it into a USB serial dongle. I compile a kernel with usb core, usb-serial, the appropriate host controller driver for the hardware (uhci etc), and whatever dongle specific driver, all set to y insted of m for static compile. As soon as the kernel loads those usb systems should be available. Now if I create a USB tty port like this: mknod -m 0666 /dev/ttyUSB0 c 188 0 chmod a+rw /dev/ttyUSB0 That port is supposed to behave just like any standard serial port, wouldn't it just be a matter of making sure speakup points to /dev/ttyUSB0?