Well, I got it working. All I did was comment out the return in serialio.c on line 46. So it still generates a warning from __release_region and another from synth_request_region but it ignores the error returned and just goes on. This appears to work. # diff linux-2.6.37/drivers/staging/speakup/serialio.c linux-3.2.2/drivers/staging/speakup/serialio.c 46c46 < return NULL; --- > /* return NULL; */