Request for HP Laptop Owners

This request is for new HP Laptop Owners whose box comes with “Vista” pre-installed and are running openSUSE 11.0.

Background.

I have a new dv9700z with Vista pre-installed and have been working to improve the DSDT, This has led me to an important discovery regarding: use of a kernel parameter, acpi, thermal, and hardware detection – I think.

Request.

Please boot normally, do “dmesg” in a terminal and copy that to kwrite and save it.

Please re-boot and at the bootsplash, enter


acpi_osi="Linux" 

and boot
then, do “dmesg” in a terminal and copy that to kwrite

Now compare the two.

If you have significant differences as I discuss below please get back & post herein.

Also, look around and see if any new hardware is detected; post that too:)

Discussion.

HP has coded (my) DSDT to detect Vista, VistaSP1, VistaSP2, etc & Linux and treats them differently when detected. This is done in code in Vista, VistaSP1, VistaSP2, etc., but we Linux users must “tell” our kernel. We do that with the kernel parameter acpi_osi=“Linux” at the bootsplash or on the kernel line in menu.lst.

Long story short, when I do that, I get:

line comment/action

148 ACPI Added _OSI(Linux)

232+
flag _OSI(Linux) query honored via DMI
vs
_OSI(Linux) query ignored via DMI

445 ACPI: LNXTHERM:01 is registered as thermal_zone0
446 ACPI: Thermal Zone [THRM] (44 C)
vs
444 ACPI Exception (thermal-0366): AE_BAD_DATA, No critical threshold [20070126]

to name a few.

As you can see, that’s worth doing as it turned on my thermal threshold.
I’ll be interested to see if it works for others & I’ll include that in the howto I’m working on.

Thanks in advance:)

Have you done a cat /proc/apci/dsdt dsdt.dat followed by iasl -d dsdt.dat and looked at the dsdt.dsl?

I have been working on the dsdt files for a dv6772nr and a dv5-1004nr to correct the problems with the thermal.

Oh yes, I’ve been working it, I have all errors solved; 4 warnings remain. This request is related to that where the at boot kernel parameter acpi_osi=“Linux” seeds “OSYS” as in:


    If (_OSI ("Linux")
    {
     Store (0x0358, OSYS)
     }

to start all the DSDT acpi thermal processes and computations among other triggers.

I just would like to see what that does for other users who have not modified their DSDT yet. I may have to go back to the original and start over – should have done that 1st:p

cbr600, could you post your “Method (_HOT, 0, Serialized)” and "Method (_CRT, 0, Serialized) " codes? Mine don’t return a value = my Warnings.

Thanks, jim

This is a major rework of the thermal section of the dsdt…

   Scope (\_TZ)
    {
        Name (TPAS, 0xe1c)
        Name (TPC, 0xe62)
        Name (TPTM, 0xb01)
        ThermalZone (THRM)
        {
            Method (_HOT, 0, Serialized)
            {
                    Return (TPC)
            }

            Method (_CRT, 0, Serialized)
            {
                    Return (TPC)
            }

            Method (_SCP, 1, Serialized)
            {
                Store (0x00, CTYP)
            }

            Method (_TMP, 0, Serialized)
            {
                If (ECON)
                {
                    Acquire (\_SB.PCI0.EC0.MUT0, 0xFFFF)
                    Store (\_SB.PCI0.EC0.RTMP, Local0)
                    Release (\_SB.PCI0.EC0.MUT0)
                    Store ("Current temp is: ", Debug)
                    Return (Add (0x0AAC, Multiply (Local0, 0x0A)))
                }
                Else
                {
                    Return (TPTM)
                }
            }

            Method (_PSL, 0, Serialized)
            {
                Return (Package (0x01)
                {
                    \_PR.CPU0
                })
            }

            Method (_PSV, 0, Serialized)
            {
                Return (TPAS)
            }

            Method (_TC1, 0, Serialized)
            {
                Return (0x02)
            }

            Method (_TC2, 0, Serialized)
            {
                Return (0x03)
            }

            Method (_TSP, 0, Serialized)
            {
                Return (0x64)
            }

            Name (REGN, "Processor Thermal Zone")
            Name (FMAX, 0x1194)
            Name (FMIN, 0x07D0)
            Method (FRSP, 0, NotSerialized)
            {
                Store (0x00, Local2)
                Store (\_SB.PCI0.EC0.RPM1, Local0)
                Store (\_SB.PCI0.EC0.RPM2, Local1)
                ShiftLeft (Local1, 0x08, Local1)
                Or (Local0, Local1, Local0)
                Divide (0x000F4240, Local0, , Local2)
                Return (Local2)
            }

            Method (FSSP, 1, NotSerialized)
            {
                Store (Arg0, \_SB.PCI0.EC0.TFAN)
            }
        }
    }

Thanks for that, gives me something good to go on:)

Meanwhile, I have gone back to the basic install and find:
whereas it’s set up for VistaSP1, my /proc/acpi/thermal_zone is not populated and neither is “fan”:mad: – although my fan is running thank the good Lord.

If I boot with the acpi_osi=“Linux” kernel parameter, my /proc/acpi/thermal_zone is populated and I get:


jim@linux-wwgh:~> cat /proc/acpi/thermal_zone/THRM/trip_points
critical (S5):           95 C
passive:                 88 C: tc1=2 tc2=3 tsp=100 devices=CPU0
jim@linux-wwgh:~> cat /proc/acpi/thermal_zone/THRM/temperature
temperature:             40 C

(although I seem to be missing "Active[0])
“fan” is again not populated

Here are my dsdt warning problems:


                Method (_HOT, 0, Serialized)
                {
                    If (LEqual (OSYS, 0x07D6))
                    {
                        Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
                    }
                }
and
                Method (_CRT, 0, Serialized)
                {
                    If (LLess (OSYS, 0x07D6))
                    {
                        Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
                    }
                }

where (Add (0x0AAC, Multiply (TPC, 0x0A))) is in tenths of Kelvin – I think

I have tried adding:


Else
{
Return (Zero)
}

and the box would just reboot.

Based on your post, I’ll try adding:


                Method (_HOT, 0, Serialized)
                {
                    If (LEqual (OSYS, 0x07D6))
                    {
                        Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
                    }
                    Else
                    {
                    Return (TPC)
                     }
                }
and
                Method (_CRT, 0, Serialized)
                {
                    If (LLess (OSYS, 0x07D6))
                    {
                        Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
                    }
                    Else
                    {
                    Return (TPC)
                     }
                }

then see if it compiles w/o error & then what happens when I boot it.
I may have to convert those “Returns” to Kelvin (as, on mine, TPC = 95) we’ll see.

Lastly, I sure would like to get /proc/acpi/fan populated somehow.

Have fun:)

I checked a GW ml-3109 intel based machine and there are no entries in /proc/acpi/fan.

Well that didn’t work either; just turned off – back to the drawing board.

I may well live with those 4 warnings and wait and see if something comes along; or, I could just delete Method (_HOT & Method (_CRT as they aren’t returning anything anyway the way they are currently written. We will see.

I checked a GW ml-3109 intel based machine and there are no entries in /proc/acpi/fan.

Yes, but my desktop reads: /proc/acpi/fan/FAN/state, where:


jim@linux-3obf:~> cat /proc/acpi/fan/FAN/state
status:                  on
jim@linux-3obf:~>

I’d like to get the laptop to look like that too:)

I have HP Pavilion dv5-1030en
It’s 15" noubook AMD+ATI based
(official specifications from hp.com)

It comes with Vista :frowning:
Unfortunately I was unable to boot openSUSE 11.0 i386 at all
And the boot of 11.1 beta2 i386 hangs at some stage

I have no dmesg since the notebook doesn’t respond and there is no access to a shell. I’m attaching only fotos of display:

http://photofile.ru/photo/tos4/2581593/middle/80898503.jpg](http://photofile.name/photo/tos4/2581593/80898503.jpg)http://photofile.ru/photo/tos4/2581593/middle/80898509.jpg](http://photofile.name/photo/tos4/2581593/80898509.jpg)http://photofile.ru/photo/tos4/2581593/middle/80898514.jpg](http://photofile.name/photo/tos4/2581593/80898514.jpg)

try putting pci=noacpi on the boot line when you boot the install cd/dvd. Once you update the kernel to the current version, change the pci=noacpi to nohept in /boot/grub/menu.list

HP dv6815. Lots of subtle differences between dmesg runs. Only new thing I can see so far is thermal. It never worked before. A lot of hardware seems to be detected better instead of being virtualized like USB ports. Suspend to disk worked for the first time through kpowersave. Suspend to ram still throws an error at me. Fan still not populated. I wonder what would happen if you could pass this to the boot options before an install? I will post the dmesg changes if you want them. I’m going to go try this on my desktop now!

shawnr@fastback:~> cat /proc/acpi/thermal_zone/THRM/trip_points
critical (S5):           95 C
passive:                 88 C: tc1=2 tc2=3 tsp=100 devices=CPU0
shawnr@fastback:~> cat /proc/acpi/thermal_zone/THRM/temperature
temperature:             49 C

I have also noticed that the proc speeds are measured a little differently. Without the option added at boot they are reported as dual 2000.237 MHz. With the option added they are 2000.229 MHz each.

I have experienced the same differences for my HP m8100n desktop. I have a new “Standby” entry in the kpowersave dialog that wasn’t there before.

if I use pci=noacpi boot hangs “Failed to detect CD!”

http://photofile.ru/photo/tos4/2581593/middle/81026745.jpg](http://photofile.name/photo/tos4/2581593/81026745.jpg)

if I try “Failsafe” boot I get:

http://photofile.ru/photo/tos4/2581593/middle/81026744.jpg](http://photofile.name/photo/tos4/2581593/81026744.jpg)

Still no luck :frowning:

Try pci=nommconf

that helped!
Still no valid video, but I was able to logon from tty/1 and got dmesg: Download external link (Deposit Files)

and here is one more “screen shot”:

http://photofile.ru/photo/tos4/2581593/middle/81044146.jpg](http://photofile.name/photo/tos4/2581593/81044146.jpg)

>:(>:(>:(

Does anyone know why this only works with Opensuse? I’ve tried it with Ubuntu, Mint, Mandriva, PCLinuxOS, Mepis, and Debian with no results. Is Opensuse that much more advanced?

I have tried: Mandriva 2008, Mandriva 2009, and even Grml (a LiveCD for sysadmins) - all correctly works with graphics out-of-the-box

I had the same issues on my dv9720 laptop with all of the new kernels. I always suspected it had something to do with acpi since it is something I can not do anything with in the bios. The fan always seems to work fine though. In fact it runs very cool. Cooler than vista :\ Makes me wonder if there is a setting in bios that hard sets options.

Specs of my machine:

AMD Turion 64
Nvidia GPU (go 7150M)
2 gigs of ram
2 sata hdds
Age isn’t older than a year.
running f.30 bios

Been running linux on it since febuary

snakedriver

Did you ever finish the “how to” you said you were working on?

I have a HP Pavilion dv6645 laptop, and I tried adding the acpi_osi=“Linux” option on the boot line.

I did get extra stuff appearing in /proc/acpi/(whatever), but not too sure what it actually does.

I can’t seem to see any difference.

WOW!

Actually it did do something, the “powerdevil” daemon now works lol!.

Before I added that line, I got an error message about powerdevil (part of KDE4?) not running and some other power manager had taken control. Now it gives me access to several settings pages and power profiles.

Hmm, wonder if “suspend to RAM” now works, that would be nice ;).

…only one way to find out I guess :expressionless: