Terje J. Hanssen schrieb:
Carl-Daniel Hailfinger wrote:
Terje J. Hanssen schrieb: /> The initial OpenSuse 10.0 release was the first Suse Linux distro (tried / /> Suse 9.0-9.3 Pro and SLES9 before) that has been capable to PowerOff my / /> K7 PC using Shutdown. (Win9x/2k and Ubuntu 5.10 managed also this). / /> / /> But after installing a recommended kernel update for OpenSuse 10.0, / /> poweroff didn't work any more. Trying now OpenSuse 10.1 beta2, I notice / /> the same. Is the PowerOff function gone? /
The initial x86 kernel that worked with regards to power off was version 2.6.13-15-default. The file /boot/grub/menu.lst didn't yet contain any "acpi" or "acpi=force" parameter
The Online update kernel where Power Off was gone is version 2.6.13-15.8-default
I noticed especially the following ACPI lines in the boot messages from the last kernel 2.6.13-15.8-default
ACPI: BIOS age (2000) fails cutoff (2001), acpi=force is required to enable ACPI ACPI: Disabling ACPI support
I added "acpi=force" into the file /boot/grub/menu.lst and then Power Off worked again.
OK, so we know why it worked. The early SUSE 10.0 kernels unconditionally enabled ACPI, while the later ones complained your BIOS was too old.
The question is lastly, why this change was introduced in the 10.0 kernel update and also in 10.1 beta2? As I wrote above, acpi=force wasn't necessary for the 2.6.13-15-default kernel.
Short bit of history: Old ACPI BIOSes were very buggy because vendors had no experience writing correct code. Additionally, the early Linux ACPI implementation was very sensitive to such bugs. Back then, it was decided not to enable ACPI on BIOSes from before 2001. The situation has now changed considerably. The current Linux ACPI code can handle very crappy BIOS code without major problems and so the hardcoded limit of 2001 was made a configuration option. This option was NOT set in the earlier kernels of SUSE Linux 10.0, but the oversight was corrected later. What can you do now? Open a bug against the kernel and ask for CONFIG_ACPI_BLACKLIST_YEAR=2000 instead of CONFIG_ACPI_BLACKLIST_YEAR=2001 as it is now. Probably the best argument you have is that the initial SUSE Linux 10.0 kernels worked for many people despite CONFIG_ACPI_BLACKLIST_YEAR=0 and the conservative estimates of the early Linux ACPI code are no longer needed.
Thanks for the tip,
You're welcome. Regards, Carl-Daniel -- http://www.hailfinger.org/