The title really says it all. When booting the XEN Hypervisor kernel, everything works flawlessly, except that the keyboard is not seen at all.
If I plug a USB keyboard, it is recognized and I can type normally. The built-in keyboard does not work, and does not even bring the PC out of "lights out" power-saving mode, nor does it react to a REISUB.
I have googled for similar problems on other XEN versions and different hardware, and found that indeed "keyboard not working on laptop" was a documented bug in XEN 4.0.1, having to do with IOAPIC programming. Unfortunately, I am already using a newer version, so the "update to newer XEN" solution wouldn't work (and, indeed, didn't).
I will now investigate APIC/XEN interactions, but I would be grateful if anyone could share some pointers on the matter.
OK, so it's definitely something having to do with IRQ management. If I add to GRUB parameters
not only does the keyboard get correctly seen, but the strange video refresh lag that I noticed before (and dismissed... I could live with that) disappears.
I'm not posting this as a solution since it was pure voodoo - "try any boot loader parameter smelling of 8042, ACPI, or IRQ, in random order". But I'm posting now from the XEN laptop with a VM running, so - at least for now - it is working.
An annoying side effect of the "solution" is that, unsurprisingly, interrupt management gets borked. For example, I can type a lengthy
ls -la > dummyfile command in the Terminal and let it rip, and the command runs... but prompt does not reappear. I wait, say, half a minute, and then move the mouse; and lo and behold, the prompt reappears, and
dummyfile has the timestamp of one minute before, when the command did complete and presumably the prompt did reappear, only the video was not updated. The same problem manifests itself in the system apparently lagging, unless a source of interrupts (the mouse works, the keyboard, network, WiFi and disk drive do not) keeps prodding it.
(This may or may not be related to a "XEN Dom0 interrupt problem" I've been googling).