Monday, December 28, 2009

Linux: random shutdown and keyboard issues with Ubuntu 9.10 (Karmic Koala)

After upgrading from Ubuntu 9.04 to 9.10 several days ago, my laptop experienced random shutdowns -- or more precisely, sudden power-offs. It turned out to be a known issue of ACPI and i8042 controller conflicts. By adding the parameter of acpi=off to the kernel boot options in grub, the issue of random shutdowns went away.

However, the keyboard would stop working after the laptop ran for some time, or sometimes a key got stuck and repeatedly input the same character after I pressed it. And the touchpad never worked. Command dmesg showed a message of
PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
So I followed the instruction and add one more boot parameter of i8042.nopnp. Now it looks like this in my /boot/grub/menu.lst:
kernel          /boot/vmlinuz-2.6.31-16-generic root=UUID=... ro quiet splash acpi=off i8042.nopnp
Saved the file and reboot. The touchpad started to work and the keyboard seemed working properly so far.

However (again), turning off ACPI made the computer sluggish. With the system monitor, I could see the load of the dual CPU's are extremely not balanced. It seemed the system did not perform the multi-threading properly. I tried to change the boot parameter acpi=off to acpi=ht, but no luck.

By reading the change-log of the coming new Linux kernel 2.6.33, I found there are a lot of fixes regarding to ACPI. Hopefully the new release can fix all these issues of ACPI and i8042 controllers. After all, it is already in the test phase so it is worth waiting.

Read an update here.

1 comment:

Sumit said...

I am using HP Z400 workstation and I am facing hanging issue. I am using 4 channel pcie video card with it.
If I use acpi=off option then my machine only detect 3 channel out of 4[/dev/video0..3]
But if I use acpi=off noapic nolapic then all 4 channel are detected,but machine hangs sometime or wents black when I open startx.
OS:open suse 10.3

Get This <