Friday, July 13, 2007

American Way v/s Russian Way

The joke is that America [NASA] spent millions of dollars on developing a pen that would write in outer space, while the Russian Cosmonauts simply used pencils.

The below mail conversation would tell why I mentioned the above joke.
[American Way]


After several installations of SuSE Linux Enterprise Server-10 Service Pack-1 on the new test machine, still the system hangs.
I analyzed the error and found that it is a problem with the ACPI [Advanced Configuration and Power Interface].

Below is my analysis and a pointer to resolving it.

Error found in /var/log/messages [ command is dmesg ]
ACPI: DSDT (v001 INTEL DQ965GF 0x000016f2 MSFT 0x01000013) @ 0x0000000000000000

The above message says there is a bug in DSDT.

what is DSDT ?
Differentiated System Description Table (DSDT)
An OEM must supply a DSDT to an ACPI-compatible OS. The DSDT contains the Differentiated Definition Block,
which supplies the implementation and configuration information about the base system.
The OS always inserts the DSDT information into the ACPI Namespace at system boot time and never removes it.

Basically, what this boils down to is that the DSDT describes the configuration of your system.
It has definitions of all of the devices that ACPI supports, and describes their capabilities.

The above problem can be resolved as follows :

#cat /proc/acpi/dsdt > /home/yourname/dsdt.dat
#cd /usr/bin
#./iasl -d /home/yourname/dsdt.dat

This will create a file called dsdt.dsl, which contains the disassembled DSDT.
Copy this file from /usr/sbin to /home/yourname as we are going to work on it.

Recompile the DSDT.
# cd /usr/bin
# ./iasl -tc /home/yourname/dsdt.dsl

While compilation 1 error appears as below:
XXXTSTMC1:/usr/bin # ./iasl -tc /home/XXX/dsdt.dsl

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20060127 [Jun 16 2006]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a

/home/XXX/dsdt.dsl 90: Store (0x01, \_SB.TCOI.IGFX.SCIS)
Error 1061 - Object does not exist ^ (\_SB.TCOI.IGFX.SCIS)

ASL Input: /home/XXX/dsdt.dsl - 5195 lines, 178611 bytes, 1658 keywords
Compilation complete. 1 Errors, 0 Warnings, 0 Remarks, 566 Optimizations
which can be fixed by removing the line 90 in the file. [ not sure about the fix, but works fine].

We get 2 files namely, dsdt.hex and dsdt.aml

There are 2 methods to incorporate the files built above into the kernel which is best described
at this Discussion Forum

Basically, we have to recompile the kernel every time we install it, which is not usually recommended.


Reply to this mail : [Russian Way]

My 2 cents here:

What if we pass "acpi=off" to the kernel command line? :)

Hope this helps.


Passing commands to Kernel on Linux.

1 comment:

Puthali said...

lol....u wud think that everyone would have tried the latter option first... :)