For those following along in the ongoing saga of Trevor versus speakup and the pci express card, here is the latest chapter: I last left you after modifying serialio.h and hard coding the values for my pci express card. This had no effect. Well, after checking a little closer, the hard coded values for SERIAL_PORT_DFNS is in an #ifndef, so it seems it is defined elsewhere. Trevor not being a C programmer, let alone a kernel developer, changed that #ifndef to a #ifdef to see where it is defined. Turns out, in my case, it is defined in /usr/src/kernels/2.6.31.9-174.fc12.x86_64/arch/x86/include/asm/serial.h, and what is more, it is defined the same way as it is in serialio.h. Taking up thy keyboard, I carefully change the first entry to look like this: { 0, BASE_BAUD, 0xCC00, 16, STD_COM_FLAGS }, /* ttyS0 */ \ I then do the ever so familiar, make clean; make; make modules_install; and add another depmod -a, just for luck. But alas, it is all for not. I still only hear silence after connecting my dectalk express and invoking the modprobe speakup_dectlk command. Desperate times, calling for desperate measures, I once again roll up my sleeves, take a deep breath, and once again delve into the speakup source code... I notice some print statements that are commented out in serialio.c, so I uncomment them in hopes of getting some more information in the logs. For those who are still following along and are just dieing to know what they are, I won't keep you in suspense... 75 /*printk(KERN_ERR "in irq\n"); */ 76 /*pr_warn("in IRQ\n"); */ There are some others, but they aren't important for now. At first, I did not see anything else being printed in the logs. In the time honoured tradition of, "what happens when I do this," I commented out these lines in serialio.c: 41 if (synth_request_region(ser->port, 8)) 42 return NULL; Once again, after the make clean; make; make modules_install; ritual, followed by the modprobe speakup_dectlk invocation, with the depmod -a thrown in there for luck, you'll never guess what happened... I heard the following in a slow and drawn out, but still familiar voice, "Dectalk Express found." But where is the rest? No prompt, no nothing. Hit enter a few times, but only my old friend, silence. I told you that you wouldn't guess. I did find those print statements I told you about in the logs though, so I do feel I'm getting closer. I feel I only need to figure out what synth_request_region(ser->port, 8) means, and I'll be a little closer... I will beg upon the mercy of the speakup developers and offer them a gift in the form of my logs and hopefully I will be rewarded with some enlightenment. Jan 22 15:10:05 trevor kernel: speakup: unregistering synth device /dev/synth Jan 22 15:10:54 trevor kernel: speakup 3.1.3: initialized Jan 22 15:10:54 trevor kernel: synth name on entry is: <NULL> Jan 22 15:10:54 trevor kernel: initialized device: /dev/synth, node (MAJOR 10, $ Jan 22 15:10:54 trevor kernel: synth probe Jan 22 15:10:54 trevor kernel: Ports not available, trying to steal them Jan 22 15:10:54 trevor kernel: Trying to free nonexistent resource <00000000000$ Jan 22 15:10:54 trevor kernel: in irq Jan 22 15:10:54 trevor kernel: in IRQ These last two lines are repeated a few times Jan 22 15:10:54 trevor kernel: Jan 22 15:10:54 trevor kernel: Dectalk Express: $ And then about a hundred more of the irq lines, followed by this, likely after I disconnected the synth Jan 22 15:11:27 trevor kernel: Dectalk Express: too many timeouts, deactivating$ As usual, any help is appreciated. I hope you at least enjoyed my ramblings as I slowly, but surely lose my mind. Thanks, Trevor