辛い戦いだった…
ACPIのDSDTが02のデバイス(945G)のIRQは17番設定してあった。(ACPIのDSDT読む知識が役立つ日が来るとは…)
Package (0x04) { 0x0002FFFF, → bus=02 のデバイス Zero, Zero, 0x11 → IRQ },
Vistaの場合は、16になるように書いてあるのだが、Vista以外の場合はわざわざ場合分けして17番になるようになっている。どういう意図だろうか?
http://www.lesswatts.org/projects/acpi/overridingDSDT.php
この手順で修正したDSDTを使って完了。ただし、このカーネルは他では使えなくなる。
CPU0 CPU1 0: 12860 0 IO-APIC-edge timer 1: 2301 0 IO-APIC-edge i8042 9: 836 0 IO-APIC-fasteoi acpi 12: 5011 0 IO-APIC-edge i8042 14: 0 0 IO-APIC-edge ata_piix 15: 0 0 IO-APIC-edge ata_piix 16: 3836 0 IO-APIC-fasteoi i915 20: 0 0 IO-APIC-fasteoi uhci_hcd:usb4 21: 55 0 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb2 22: 0 0 IO-APIC-fasteoi uhci_hcd:usb3 23: 0 0 IO-APIC-fasteoi uhci_hcd:usb5 26: 3157 0 PCI-MSI-edge ahci
あとはキーリピートか…あとフォントが少し足りてない。