You mentioned using a laptop and then later attaching an external keyboard. I have no experience with GNU/Linux and laptops, but my guess is that the boot process is not finding the laptop keyboard but is instead looking at the usual external ports for the keyboard.
Why the keyboard functions properly in X/KDE likely is related to the fact that X includes a lot of keyboard support and probably finds the laptop keyboard with no issues.
So the problem seems to be in why the Linux kernel is not finding the internal keyboard.
Hopefully some other experience people here can pitch in and help, but for starters, boot into X/KDE. Then, using a text editor, inspect the various logs located at
/var/log. Some important logs to browse are
dmesg,
messages, and
syslog. Look for any obvious error messages about the keyboard. Start from the end of each log file as the end of the file will be the most recent. Work your way backwards into the log file to look for repeating error messages. From there you should be able to search the web for the error message found.
A quick
Google search revealed several possible solutions. One potential solution is disabling of legacy usb support in the BIOS.
I also found this thread here at linux questions:
Presario 2100