Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
HOWTO: Fix Common ACPI Problems (DSDT, ECDT, etc.)
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2, 3, 4, 5, 6 ... 14, 15, 16  Next  
Reply to topic    Gentoo Forums Forum Index Documentation, Tips & Tricks
View previous topic :: View next topic  
Author Message
int2str
Guru
Guru


Joined: 29 Sep 2003
Posts: 362

PostPosted: Fri May 28, 2004 1:36 pm    Post subject: Reply with quote

Great HOWTO!

This helped me solve down my slow-down problem which is common to many Compaq and HP notebooks! See this thread for details:
https://forums.gentoo.org/viewtopic.php?t=170493

Thanks so much for this writeup, jetblack!

Cheers,
André
_________________
Adpot an unanswered post today!
Back to top
View user's profile Send private message
gmichels
Guru
Guru


Joined: 20 Jun 2003
Posts: 480
Location: Brazil

PostPosted: Fri May 28, 2004 4:16 pm    Post subject: Reply with quote

I'm having some problems to patch my kernel (2.6.6-love4). I don't use initrd, so the DSDT must be inside the kernel. Here's the output:
Code:
# patch -Np1 --dry-run < /root/ze4430us/acpi/dsdt_override.patch
patching file drivers/acpi/osl.c
Hunk #2 FAILED at 209.
1 out of 2 hunks FAILED -- saving rejects to file drivers/acpi/osl.c.rej

My osl.c has the following significant part (I guess):
Code:
acpi_os_table_override (struct acpi_table_header *existing_table,
                        struct acpi_table_header **new_table)
{
        if (!existing_table || !new_table)
                return AE_BAD_PARAMETER;

#ifdef CONFIG_ACPI_INITRD
        if (!memcmp(existing_table, "DSDT", 4) && (dsdt_start != NULL)) {
                printk(KERN_INFO "ACPI: Using customized DSDT\n");
                *new_table = (struct acpi_table_header*)dsdt_start;
        } else
#endif
                *new_table = NULL;
        return AE_OK;
}

I don't have much knowledge in this, so maybe someone can help me solve the error here.

Maybe there's a new version of the override patch, as I am using the one listed in the first page. What is the bug number for that attachment?

thanks
Back to top
View user's profile Send private message
Legoguy
Apprentice
Apprentice


Joined: 22 Dec 2003
Posts: 166
Location: Edmonton, Alberta, Canada

PostPosted: Fri May 28, 2004 10:15 pm    Post subject: Reply with quote

Hmm... for some reason, I don't see this problem anymore in Linux - I didn't do any DSDT changes or anything. It may have been the latest BIOS upgrade from HP, released some time ago... haven't throuroughly tested it in Windows but it may still be happening in there.
Kernel 2.6.6-mm4.
Back to top
View user's profile Send private message
robmoss
Retired Dev
Retired Dev


Joined: 27 May 2003
Posts: 2634
Location: Jesus College, Oxford

PostPosted: Thu Jun 03, 2004 8:41 pm    Post subject: Reply with quote

Well, I'm thoroughly pissed off now. I've gone to all this trouble and now I find that the Gigabyte GA-7DX has somewhat incomplete ACPI support! I *think* that the F8 BIOS update fixes this... BUT that's only for Rev 3.0 motherboards and newer; mine is a 2.2. And trying to use that has already caused one reinstall. One is quite enough, thanks... :?

However, I shall persevere. Does anyone have any experience with writing new bits of AML? Can one generally just copy-and-paste things in from a working DSDT from a different board? Or is it much, much more subtle and complicated than that?
_________________
Reality is for those who can't face Science Fiction.

emerge -U will kill your Gentoo
ecatmur, Lord of Portage Bash Scripts
Back to top
View user's profile Send private message
gmichels
Guru
Guru


Joined: 20 Jun 2003
Posts: 480
Location: Brazil

PostPosted: Fri Jun 04, 2004 3:59 am    Post subject: Reply with quote

Ok so I went the other way, decided to try the initrd approach. Before I could get into that, I managed to clean 2 errors and 3 warnings from my original dsdt. Now there's one error left, and I really can't find a solution for this.
Code:
# ./iasl -tc dsdt.dsl

Intel ACPI Component Architecture
ASL Optimizing Compiler / AML Disassembler version 20030918 [Sep 18 2003]
Copyright (C) 2000 - 2003 Intel Corporation
Supports ACPI Specification Revision 2.0b

dsdt.dsl   610:                             If (LNot (LEqual (ShiftRight (And (Local1, 0x10), 0x03), And (Local2, 0x02))))
Error    1013 -                            Method local variable is not initialized ^  (Local1)

ASL Input:  dsdt.dsl - 5313 lines, 187398 bytes, 2576 keywords
Compilation complete. 1 Errors, 0 Warnings, 0 Remarks, 791 Optimizations

I googled and searched the acpi devel archives, no solutions for it. So maybe a good soul here can help me out.

Links for my DSDT and dmesg output.

cheers
Back to top
View user's profile Send private message
int2str
Guru
Guru


Joined: 29 Sep 2003
Posts: 362

PostPosted: Fri Jun 04, 2004 4:01 am    Post subject: Reply with quote

Change "Local1" in that line to "Local2"
_________________
Adpot an unanswered post today!
Back to top
View user's profile Send private message
gmichels
Guru
Guru


Joined: 20 Jun 2003
Posts: 480
Location: Brazil

PostPosted: Fri Jun 04, 2004 1:05 pm    Post subject: Reply with quote

Success!
Code:
ACPI: Using customized DSDT
    ACPI-0196: *** Warning: Invalid checksum in table [DSDT] (A5, sum 45 is not zero)
    ACPI-0299: *** Info: Table [DSDT] replaced by host OS

Should I worry about that 0196 warning?

Thanks a lot for all the help guys.
Back to top
View user's profile Send private message
Mattwolf7
n00b
n00b


Joined: 14 Mar 2004
Posts: 73

PostPosted: Tue Jun 29, 2004 9:57 pm    Post subject: Compile Error Reply with quote

I cannot get the intel iasl to compile...

Intels Instructions:
Code:
$ wget http://www.intel.com/technology/iapc/acpi/downloads/acpica-unix-20040527.tar.gz
$ tar xzf acpica-unix-20040527.tar.gz
$ cd acpica-unix-20040527/compiler
$ make


My output...

Code:
bison -v -d -y -pAslCompiler aslcompiler.y
conflicts: 33 shift/reduce, 47 reduce/reduce
aslcompiler.y:882.7-81: warning: rule never reduced because of conflicts: TermArg: Type2IntegerOpcode
aslcompiler.y:883.7-81: warning: rule never reduced because of conflicts: TermArg: Type2StringOpcode
aslcompiler.y:884.7-81: warning: rule never reduced because of conflicts: TermArg: Type2BufferOpcode
aslcompiler.y:885.7-81: warning: rule never reduced because of conflicts: TermArg: Type2BufferOrStringOpcode
aslcompiler.y:1473.7-38: warning: rule never reduced because of conflicts: CaseTermList: CaseTerm
aslcompiler.y:1482.7-38: warning: rule never reduced because of conflicts: DefaultTermList: CaseTerm
cp y.tab.c aslcompilerparse.c
cp y.tab.h aslcompiler.y.h
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslcompilerparse.o aslcompilerparse.c
flex -i -PAslCompiler -oaslcompilerlex.c aslcompiler.l
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslcompilerlex.o aslcompilerlex.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslanalyze.o aslanalyze.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslcodegen.o aslcodegen.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslcompile.o aslcompile.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslerror.o aslerror.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslfiles.o aslfiles.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o asllength.o asllength.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o asllisting.o asllisting.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslload.o aslload.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o asllookup.o asllookup.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslmain.o aslmain.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslmap.o aslmap.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslopcodes.o aslopcodes.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o asloperands.o asloperands.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslresource.o aslresource.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslrestype1.o aslrestype1.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslrestype2.o aslrestype2.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o asltree.o asltree.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslutils.o aslutils.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o asltransform.o asltransform.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslfold.o aslfold.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslstubs.o aslstubs.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o aslopt.o aslopt.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o ../common/getopt.o ../common/getopt.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o ../utilities/utalloc.o ../utilities/utalloc.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o ../utilities/utcopy.o ../utilities/utcopy.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o ../utilities/utdebug.o ../utilities/utdebug.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o ../utilities/utdelete.o ../utilities/utdelete.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o ../utilities/utglobal.o ../utilities/utglobal.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o ../utilities/utobject.o ../utilities/utobject.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o ../utilities/utmisc.o ../utilities/utmisc.c
gcc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include    -c -o ../utilities/utmath.o ../utilities/utmath.c
make: *** No rule to make target `../namespace/nsaccess.o', needed by `aslmain'.  Stop.


Tried it on another computer, same response.

The error looks like they messed up the make file.

----
Extra info for fun:

HP Pavilion ze4610US Laptop
AMD 2500+ Mobile
BIOS Version: KA.M1.59

I assume these are the right steps to follow because when I compile ACPI (everything modular) the system hangs on boot.


Thanks
Back to top
View user's profile Send private message
int2str
Guru
Guru


Joined: 29 Sep 2003
Posts: 362

PostPosted: Tue Jun 29, 2004 10:07 pm    Post subject: Reply with quote

After you unpack the tar.gz file, many direcotries are going to be all uppercase. You have to rename them all to lowercase. namespace is one of those directories.
_________________
Adpot an unanswered post today!
Back to top
View user's profile Send private message
Mattwolf7
n00b
n00b


Joined: 14 Mar 2004
Posts: 73

PostPosted: Tue Jun 29, 2004 10:29 pm    Post subject: Reply with quote

wow... good job Intel.



Ok so now what am i supposed to do since I cannot boot with my ACPI compiled in the kernel?

*EDIT* - 7/2/04
Got it working! I found out th at my hardware on the HP ze4610us is exactly the same as the Compaq 2100. There was a working ACPI fix on http://acpi.sourceforge.net/

Compaq Presario 2100 and HP Pavilion ze4610us
http://acpi.sourceforge.net/dsdt/view.php?id=207


Last edited by Mattwolf7 on Fri Jul 02, 2004 1:42 pm; edited 1 time in total
Back to top
View user's profile Send private message
neuron
Advocate
Advocate


Joined: 28 May 2002
Posts: 2371

PostPosted: Fri Jul 02, 2004 12:24 pm    Post subject: Reply with quote

Code:

dsdt.dsl  1883:                             Store (Arg2, DAT3)
Error    1014 -    Method argument is not initialized ^  (Arg2)

dsdt.dsl  1883:                             Store (Arg2, DAT3)
Remark   3041 -   Not a parameter, used as local only ^  (Arg2)


can anyone help me figure this one out?

the code in question:
Code:

                    Method (RAMW, 2, NotSerialized)
                    {
                        Acquire (MUTX, 0xFFFF)
                        If (LGreater (Arg0, 0x7F))
                        {
                            Store (Arg2, DAT3)
                        }

                        Store (Arg0, DAT2)
                        Store (Arg1, DAT1)
                        Store (0xBB, CMCD)
                        Store (0x64, Local1)
Back to top
View user's profile Send private message
Quantumstate
Apprentice
Apprentice


Joined: 26 May 2004
Posts: 270
Location: Dallas

PostPosted: Sun Jul 04, 2004 1:36 pm    Post subject: Reply with quote

int2str wrote:
After you unpack the tar.gz file, many directories are going to be all uppercase. You have to rename them all to lowercase.


Man, thank you Int2str, and especially Jetblack.

Made changes to my dsdt.dsl, which compiles fine now (excepting the Remark at bottom hereto); only had to add Jetblack's RETURN in 7 places. (IBM Stinkpad A22p)

But after compiling the .hex into the kernel (/usr/src/linux/include/acpi/dsdt_table.h) and rebooting, my dsdt table is unchanged. (tested by re-dumping/disassembling/compiling) This is gentoo kernel 2.6.5-r1, which appears to already have the patch.

In looking at the drivers/acpi/system.c file, it seemed plausible that the .hex file should actually be named dsdt.h
(#define ACPI_SYSTEM_FILE_DSDT "dsdt")
, but this doesn't work either. I'll try the dynamic method now.

Be advised that on the patch site it says:
After compiling the kernel, prepare your initrd:

echo -n "INITRDDSDT123DSDT123" >> /boot/initrd # magic signature
cat DSDT.aml >> /boot/initrd

Version 0.4 for 2.6 kernels also needs an end-signature:
echo -n "INITRDDSDT321DSDT321" >> /boot/initrd



I should also note that if you are seeing something like:
dsdt.dsl 5401: \_SB.PCI0.CBS0.PWDN ()
Remark 3040 - Recursive method call ^ (\_SB.PCI0.CBS0.PWDN)

... don't worry.

The compiler developer sez:
There's nothing in the ACPI spec that precludes recursive methods.
However, I agree that it is a very scary thing to do.
For this reason, I have the iASL compiler issue a remark when it detects a recursive method call.
Back to top
View user's profile Send private message
Quantumstate
Apprentice
Apprentice


Joined: 26 May 2004
Posts: 270
Location: Dallas

PostPosted: Mon Jul 05, 2004 2:02 am    Post subject: Reply with quote

OK, it's clear that the corrected dsdt is not compiled into the kernel, but it does work in initrd. ACPI devices are identified and no apparent errors.

However the klaptop applet is no longer responsive. Does not respond to right- or left-click; this is what I need to suspend. Anyone found the answer?
Back to top
View user's profile Send private message
Quantumstate
Apprentice
Apprentice


Joined: 26 May 2004
Posts: 270
Location: Dallas

PostPosted: Wed Jul 07, 2004 4:09 pm    Post subject: Reply with quote

OK, just recompiled kdebase & kdeutils, and it works now.
Back to top
View user's profile Send private message
pjv
Guru
Guru


Joined: 02 Jul 2003
Posts: 353
Location: Belgium

PostPosted: Wed Jul 07, 2004 8:51 pm    Post subject: Reply with quote

Shame on Intel !!!! :evil:
Back to top
View user's profile Send private message
MighMoS
Guru
Guru


Joined: 24 Apr 2003
Posts: 416
Location: @ ~

PostPosted: Thu Jul 08, 2004 1:59 am    Post subject: Reply with quote

I feel bad for asking this, but I don't feel right blindly changing things, so I'll ask. iASL gives me:
Code:
dsdt.dsl  1767:                     Method (_STA, 0, NotSerialized)
Warning  2019 -                                ^ Not all control paths return a value (_STA)

dsdt.dsl  1767:                     Method (_STA, 0, NotSerialized)
Warning  2026 -                                ^ Reserved method must return a value (_STA)
What should it return? The relavent areas appear to be:
Code:
                Device (ECP)
                {
                    Name (_HID, EisaId ("PNP0401"))
                    Method (_STA, 0, NotSerialized)
                    {
                        ENFG ()
                        Store (LDLP, LDN)
                        And (OPT1, 0x02, Local0)
                        EXFG ()
                        If (Local0)
                        {
                            If (LPST)
                            {
                                Return (GSTA (LDLP))
                            }
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }

_________________
jabber: MighMoS@jabber.org

localhost # export HOME=`which heart`
Back to top
View user's profile Send private message
c_t
n00b
n00b


Joined: 29 Oct 2003
Posts: 36
Location: Berlin, Germany

PostPosted: Sat Jul 10, 2004 12:36 pm    Post subject: Reply with quote

Thanks to your GREAT HOWTO I was able to fix the DSDT and to get ACPI completely working on my Samsung X30 Laptop!

Especially the FF-PowerButton-Patch is great! It works perfectly with my gentoo-dev-sources-2.6.7-r9 !!

cya, christoph
Back to top
View user's profile Send private message
phuber
Tux's lil' helper
Tux's lil' helper


Joined: 19 Aug 2003
Posts: 106
Location: switzerland

PostPosted: Mon Jul 12, 2004 3:41 pm    Post subject: Reply with quote

Thanks for this nice HowTo. I just fixed the compilation errors for my T41p.

I went with 9c and I get some strange output in dmesg:

Code:
ACPI: Looking for DSDT in initrd ... found (at offset 497877)!
 not found!


So I had a look at the patch and the output basically means, that a DSDT was found but it's not valid...
What can I do about that?

EDIT

Ok, I just found the explanation: http://gaugusch.at/kernel.shtml
Starting from Version 0.4 of the patch:
- The DSDT requires an end signature which is the same as the start signature
- the echo command now requires a "-n"
Back to top
View user's profile Send private message
phuber
Tux's lil' helper
Tux's lil' helper


Joined: 19 Aug 2003
Posts: 106
Location: switzerland

PostPosted: Mon Jul 12, 2004 4:47 pm    Post subject: Reply with quote

Ok, I'm still at the same place where I've been before patching the DSDT. According to dmesg the ECDT can be found.

When I throw the system to S3 and wake it up again, the screen does not turn on again (trying a minimum w/o X, and neither fb nor resolution selection for text consoles).

This is what's written to the log when I go to S3. The only thing that doesn't look so good is this "Back to C!" yet I have no idea what it means. It's been there before patching the DSDT.

Code:
Jul 12 18:29:50 deadbeef PM: Preparing system for suspend
Jul 12 18:29:50 deadbeef Stopping tasks: =========================|
Jul 12 18:29:50 deadbeef PM: Entering state.
Jul 12 18:29:50 deadbeef hwsleep-0304 [188] acpi_enter_sleep_state: Entering sleep state [S3]
Jul 12 18:29:50 deadbeef Back to C!
Jul 12 18:29:50 deadbeef Warning: CPU frequency out of sync: cpufreq and timingcore thinks of 600000, is 1700000 kHz.
Jul 12 18:29:50 deadbeef PM: Finishing up.
Jul 12 18:29:50 deadbeef ACPI: PCI interrupt 0000:00:1d.0[A] -> GSI 11 (level, low) -> IRQ 11
Jul 12 18:29:50 deadbeef PCI: Setting latency timer of device 0000:00:1d.0 to 64
Jul 12 18:29:50 deadbeef ACPI: PCI interrupt 0000:00:1d.1[B] -> GSI 11 (level, low) -> IRQ 11
Jul 12 18:29:50 deadbeef PCI: Setting latency timer of device 0000:00:1d.1 to 64
Jul 12 18:29:50 deadbeef ACPI: PCI interrupt 0000:00:1d.2[C] -> GSI 11 (level, low) -> IRQ 11
Jul 12 18:29:50 deadbeef PCI: Setting latency timer of device 0000:00:1d.2 to 64
Jul 12 18:29:50 deadbeef ACPI: PCI interrupt 0000:00:1d.7[D] -> GSI 11 (level, low) -> IRQ 11
Jul 12 18:29:50 deadbeef PCI: Setting latency timer of device 0000:00:1d.7 to 64
Jul 12 18:29:50 deadbeef ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 11 (level, low) -> IRQ 11
Jul 12 18:29:50 deadbeef ACPI: PCI interrupt 0000:00:1f.5[B] -> GSI 11 (level, low) -> IRQ 11
Jul 12 18:29:50 deadbeef PCI: Setting latency timer of device 0000:00:1f.5 to 64
Jul 12 18:29:50 deadbeef PCI: Enabling device 0000:02:01.0 (0000 -> 0003)
Jul 12 18:29:50 deadbeef ACPI: PCI interrupt 0000:02:01.0[A] -> GSI 11 (level, low) -> IRQ 11
Jul 12 18:29:50 deadbeef ACPI: PCI interrupt 0000:02:02.0[A] -> GSI 11 (level, low) -> IRQ 11
Jul 12 18:29:50 deadbeef Restarting tasks...<6>e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex
Jul 12 18:29:50 deadbeef MCE: The hardware reports a non fatal, correctable incident occurred on CPU 0.
Jul 12 18:29:50 deadbeef Bank 1: f2000000000001b5
Jul 12 18:29:50 deadbeef done
Jul 12 18:29:50 deadbeef Warning: CPU frequency out of sync: cpufreq and timing core thinks of 600000, is 1700000 kHz.



Searching for the _OS Variable, I found the following. Does anyone know what this is doing? It sets some values depending on the Operating System (Note: Windows 2001) but what does that mean for me?

[EDIT] This here http://www.microsoft.com/whdc/system/pnppwr/powermgmt/_OSI-method.mspx explains the 2001 - it means Windows XP - and pointed out the _OSI Method. I didn't see that before [/EDIT]

Code:
    Scope (\_SB)
    {
        Method (_INI, 0, NotSerialized)
        {
            If (LEqual (\SCMP (\_OS, "Microsoft Windows"), Zero))
            {
                Store (0x01, \W98F)
            }
            Else
            {
                If (CondRefOf (\_OSI, Local0))
                {
                    If (\_OSI ("Windows 2001"))
                    {
                        Store (0x02, \WNTF)
                    }
                }
                Else
                {
                    If (LEqual (\SCMP (\_OS, "Microsoft Windows NT"), Zero))
                    {
                        Store (0x01, \WNTF)
                    }
                    Else
                    {
                        If (LEqual (\SCMP (\_OS, "Microsoft WindowsME: Millennium Edition"), Zero))
                        {
                            Store (0x01, \WMEF)
                            Store (0x01, \W98F)
                        }
                    }
                }
            }

            If (LNot (LLess (\_REV, 0x02)))
            {
                Store (0x01, \H8DR)
            }

            Store (0x01, \OSIF)
            \_SB.PCI0.LPC.MOU.MHID ()
            Store (\SRP0, \_SB.PCI0.RID)
            Store (\SRAG, \_SB.PCI0.AGP.RID)
        }
Back to top
View user's profile Send private message
dambacher
Apprentice
Apprentice


Joined: 11 Feb 2003
Posts: 289
Location: Germany

PostPosted: Fri Jul 23, 2004 8:19 pm    Post subject: DSDT-Patch for kernel 2.6.7 Reply with quote

If someone is interested in using a custom dsdt in kernel 2.6.7. I just made a little patch for this.
Code:

--- linux-2.6.7/drivers/acpi/Kconfig.orig   2004-07-17 10:34:39.000000000 +0200
+++ linux-2.6.7/drivers/acpi/Kconfig   2004-07-17 10:28:11.000000000 +0200
@@ -204,6 +204,23 @@
      If you have a legacy free Toshiba laptop (such as the Libretto L1
      series), say Y.
 
+config ACPI_CUSTOM_TABLE
+   bool "Include Custom ACPI Table"
+   depends on X86
+   depends on ACPI_INTERPRETER
+   default ""
+   help
+     Thist option is to load a custom acpi dsdt table, e.g. for buggy acpi
+     implementations like on DELL inspiron 5100
+
+config ACPI_CUSTOM_TABLE_FILE
+   string "Custom ACPI Table file to include"
+   depends on ACPI_CUSTOM_TABLE
+   default ""
+   help
+     please enter the full path name to the file wich includes the AmlCode delclaration
+
+
 config ACPI_DEBUG
    bool "Debug Statements"
    depends on ACPI_INTERPRETER
--- linux-2.6.7/drivers/acpi/osl.c.orig   2004-07-17 08:39:55.000000000 +0200
+++ linux-2.6.7/drivers/acpi/osl.c   2004-07-17 10:31:51.000000000 +0200
@@ -55,6 +55,9 @@
     void          *context;
 };
 
+#ifdef CONFIG_ACPI_CUSTOM_TABLE
+#include CONFIG_ACPI_CUSTOM_TABLE_FILE
+#endif
 
 #ifdef ENABLE_DEBUGGER
 #include <linux/kdb.h>
@@ -235,7 +238,14 @@
    if (!existing_table || !new_table)
       return AE_BAD_PARAMETER;
 
+#ifdef CONFIG_ACPI_CUSTOM_TABLE
+   if (strncmp(existing_table->signature, "DSDT", 4) == 0)
+      *new_table = (struct acpi_table_header*)AmlCode;
+   else
+      *new_table = NULL;
+#else
    *new_table = NULL;
+#endif
    return AE_OK;
 }
 


It works with my DELL inspiron 5100 custom dsdt.
Back to top
View user's profile Send private message
X-Drum
Advocate
Advocate


Joined: 24 Aug 2003
Posts: 2517
Location: ('Modica','Trieste','Ferrara') Italy

PostPosted: Sun Jul 25, 2004 3:53 pm    Post subject: Reply with quote

neuron wrote:

can anyone help me figure this one out?

the code in question:
Code:

                    Method (RAMW, 2, NotSerialized)
                    {
                        Acquire (MUTX, 0xFFFF)
                        If (LGreater (Arg0, 0x7F))
                        {
                            Store (Arg2, DAT3)
                        }

                        Store (Arg0, DAT2)
                        Store (Arg1, DAT1)
                        Store (0xBB, CMCD)
                        Store (0x64, Local1)


i had the same problem try this:
put Store (2, DAT3)
instead of Store (Arg2, DAT3)

now for the compiler this piece of code works!

i hope that it works also for you
bye
:wink:
_________________
"...There are two sort of lies, lies and benchmarks..."
Back to top
View user's profile Send private message
tiv
n00b
n00b


Joined: 14 Jan 2004
Posts: 16
Location: Nashville, TN

PostPosted: Fri Jul 30, 2004 11:13 pm    Post subject: Reply with quote

OK, another Compaq Presario 1700T user here.

I did the prescribed steps (including commenting out the blacklist), and finally
this is what I get:
Code:

Jul 29 23:36:07 backpack tbget-0291: *** Info: Table [DSDT] replaced by host OS
Jul 29 23:36:07 backpack tbrsdt-0227: *** Error: Invalid signature where RSDP in
dicates RSDT/XSDT should be located
Jul 29 23:36:07 backpack RSDT/XSDT signature at 1FFFBABF (1fffbabf) is invalid
Jul 29 23:36:07 backpack tbrsdt-0237: *** Error: Looking for RSDT (RSDP->Rev < 2
)
Jul 29 23:36:07 backpack tbxface-0104: *** Error: acpi_load_tables: Could not lo
ad RSDT: AE_BAD_SIGNATURE
Jul 29 23:36:07 backpack tbxface-0134: *** Error: acpi_load_tables: Could not lo
ad tables: AE_BAD_SIGNATURE


Interestingly, if I just comment out the blacklist and don't override the DSDT, it boots up and the (presumably buggy) ACPI works (seemingly) fine.

Any comments on this ?

Thanks,

Tiv
Back to top
View user's profile Send private message
Cabalist
n00b
n00b


Joined: 17 Feb 2004
Posts: 32

PostPosted: Fri Aug 06, 2004 1:21 am    Post subject: Reply with quote

gmichels, You have the same problem I have currently with the patch that is supplied in the HOWTO.

I screwed around with dambacher's patch and am getting an error on line 27. The error is "Malformed Patch Erro on Line 27: @@ -55,6 +55,9 @@ " I really want the DSDT to be static. Anyone willing to update the HowTo with new information regarding the 2.6.x kernels? I will try dambacher's patch some more ( I really like that idea.) but if some other people wouldn't mind sharing thier experiences with it that would be SUPER! :lol:
Back to top
View user's profile Send private message
izomorfix
Tux's lil' helper
Tux's lil' helper


Joined: 18 Jun 2003
Posts: 81
Location: Romania

PostPosted: Sun Aug 15, 2004 7:27 pm    Post subject: Reply with quote

HI, I have a serious problem which is very common, but seems incorrectable:

Code:

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
 exfldio-0158 [41] ex_setup_region       : Field [NPS2] access width (1 bytes) too large for region [FSEG] (length 0)
 exfldio-0170 [41] ex_setup_region       : Field [NPS2] Base+Offset+Width 6+0+1 is beyond end of region [FSEG] (length 0)
 dswexec-0435 [33] ds_exec_end_op        : [And]: Could not resolve operands, AE_AML_REGION_LIMIT
 psparse-1133: *** Error: Method execution failed [\_SB_.PCI0.PX40.SYS3._STA] (Node c113cc88), AE_AML_REGION_LIMIT
 exfldio-0158 [56] ex_setup_region       : Field [ACPR] access width (1 bytes) too large for region [FSEG] (length 0)
 exfldio-0170 [56] ex_setup_region       : Field [ACPR] Base+Offset+Width 0+0+1 is beyond end of region [FSEG] (length 0)
 psparse-1133: *** Error: [NULL NAME], AE_AML_REGION_LIMIT
 psparse-1133: *** Error: Method execution failed [\ISMI] (Node c7fe5c08), AE_AML_REGION_LIMIT
 psparse-1133: *** Error: Method execution failed [\_SB_.PCI0.PX40.FDC0._STA] (Node c113b988), AE_AML_REGION_LIMIT
 exfldio-0158 [56] ex_setup_region       : Field [ACPR] access width (1 bytes) too large for region [FSEG] (length 0)
 exfldio-0170 [56] ex_setup_region       : Field [ACPR] Base+Offset+Width 0+0+1 is beyond end of region [FSEG] (length 0)
 psparse-1133: *** Error: [NULL NAME], AE_AML_REGION_LIMIT
 psparse-1133: *** Error: Method execution failed [\ISMI] (Node c7fe5c08), AE_AML_REGION_LIMIT
 psparse-1133: *** Error: Method execution failed [\_SB_.PCI0.PX40.LPT_._STA] (Node c113bc08), AE_AML_REGION_LIMIT
 exfldio-0158 [56] ex_setup_region       : Field [ACPR] access width (1 bytes) too large for region [FSEG] (length 0)
 exfldio-0170 [56] ex_setup_region       : Field [ACPR] Base+Offset+Width 0+0+1 is beyond end of region [FSEG] (length 0)
 psparse-1133: *** Error: [NULL NAME], AE_AML_REGION_LIMIT
 psparse-1133: *** Error: Method execution failed [\ISMI] (Node c7fe5c08), AE_AML_REGION_LIMIT
 psparse-1133: *** Error: Method execution failed [\_SB_.PCI0.PX40.ECP_._STA] (Node c113a788), AE_AML_REGION_LIMIT
 exfldio-0158 [56] ex_setup_region       : Field [ACPR] access width (1 bytes) too large for region [FSEG] (length 0)
 exfldio-0170 [56] ex_setup_region       : Field [ACPR] Base+Offset+Width 0+0+1 is beyond end of region [FSEG] (length 0)
 psparse-1133: *** Error: [NULL NAME], AE_AML_REGION_LIMIT
 psparse-1133: *** Error: Method execution failed [\ISMI] (Node c7fe5c08), AE_AML_REGION_LIMIT
 psparse-1133: *** Error: Method execution failed [\_SB_.PCI0.PX40.UAR1._STA] (Node c113a988), AE_AML_REGION_LIMIT
 exfldio-0158 [56] ex_setup_region       : Field [ACPR] access width (1 bytes) too large for region [FSEG] (length 0)
 exfldio-0170 [56] ex_setup_region       : Field [ACPR] Base+Offset+Width 0+0+1 is beyond end of region [FSEG] (length 0)
 psparse-1133: *** Error: [NULL NAME], AE_AML_REGION_LIMIT
 psparse-1133: *** Error: Method execution failed [\ISMI] (Node c7fe5c08), AE_AML_REGION_LIMIT
 psparse-1133: *** Error: Method execution failed [\_SB_.PCI0.PX40.UAR2._STA] (Node c1139488), AE_AML_REGION_LIMIT
 exfldio-0158 [56] ex_setup_region       : Field [ACPR] access width (1 bytes) too large for region [FSEG] (length 0)
 exfldio-0170 [56] ex_setup_region       : Field [ACPR] Base+Offset+Width 0+0+1 is beyond end of region [FSEG] (length 0)
 psparse-1133: *** Error: [NULL NAME], AE_AML_REGION_LIMIT
 psparse-1133: *** Error: Method execution failed [\ISMI] (Node c7fe5c08), AE_AML_REGION_LIMIT
 psparse-1133: *** Error: Method execution failed [\_SB_.PCI0.PX40.IRDA._STA] (Node c1139708), AE_AML_REGION_LIMIT
 exfldio-0158 [41] ex_setup_region       : Field [NPS2] access width (1 bytes) too large for region [FSEG] (length 0)
 exfldio-0170 [41] ex_setup_region       : Field [NPS2] Base+Offset+Width 6+0+1 is beyond end of region [FSEG] (length 0)
 dswexec-0435 [33] ds_exec_end_op        : [And]: Could not resolve operands, AE_AML_REGION_LIMIT
 psparse-1133: *** Error: Method execution failed [\_SB_.PCI0.PX40.PS2M._STA] (Node c1139f88), AE_AML_REGION_LIMIT
 exfldio-0158 [42] ex_setup_region       : Field [MMSZ] access width (1 bytes) too large for region [FSEG] (length 0)
 exfldio-0170 [42] ex_setup_region       : Field [MMSZ] Base+Offset+Width 4+0+1 is beyond end of region [FSEG] (length 0)
 psparse-1133: *** Error: Method execution failed [\_SB_.MEMS] (Node c7fe4d08), AE_AML_REGION_LIMIT
 psparse-1133: *** Error: Method execution failed [\_SB_.MEM1._CRS] (Node c7fe4e08), AE_AML_REGION_LIMIT
  uteval-0158: *** Error: Method execution failed [\_SB_.MEM1._CRS] (Node c7fe4e08), AE_AML_REGION_LIMIT

I am desperate, please tell me what to post, dsdt.dsl ,etc
_________________
0100100100100000011011000110111101110110
0110010100100000010001110110010101101110
01110100011011110110111100100001
Back to top
View user's profile Send private message
YR
n00b
n00b


Joined: 08 Sep 2004
Posts: 2

PostPosted: Wed Sep 08, 2004 10:57 am    Post subject: About initrd override with bootsplash method Reply with quote

Gentelmen!
One guestion: can I interpret your frase
>If you are already using an initrd for something, like bootsplash,
>you can still use this method

for /boot/initrd-number_of_linux_version.img" ? Or I cannot use initrd IMAGE file for this method?
:?:
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Documentation, Tips & Tricks All times are GMT
Goto page Previous  1, 2, 3, 4, 5, 6 ... 14, 15, 16  Next
Page 5 of 16

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum