Mandriva

Return to the main archive index.

Custom Search

Mandriva Linux Archives: cooker@mandrivalinux.org

Mandriva Linux: cooker@mandrivalinux.org


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]


Em Wednesday 28 May 2008 17:00:06 Scott Chevalley escreveu:
> Herton Ronaldo Krzesinski wrote:
> > Em Tuesday 27 May 2008 18:39:44 Scott Chevalley escreveu:
> >> I remember there being an issue with the mouse in X if usbmouse was
> >> loaded before usbhid, but I can't find a way to tell the system to wait
> >> until usbhid is loaded before loading usbmouse.  I have to manually
> >> rmmod it and then modprobe it.
> >>
> >> Also, with the new 2.6.26 kernels, I get to where udev loads, then I get
> >> a message:
> >>
> >> Critical Temperature Reached (65C) shutting down..
> >>
> >> and the system shuts down.
> >>
> >> It's an HP Pavilion dv9500 laptop.  Acpi thermal doesn't work on
> >> previous kernels, but I'm sure the system isn't over heating, so I'm not
> >> sure where that problem is.
> >>
> >> Thanks
> >> Scott
> >
> > Probably your bios is setting a too low critical thermal trip point, or
> > reporting wrong temp, making thermal shutdown the machine. Can you
> > install pmtools package and send attached here the output of acpidump
> > command?
> >
> > A workaround that can work in your case to avoid this is adding "options
> > thermal nocrt=1" to /etc/modprobe.conf, the right fix probably is a bios
> > fix from vendor, if not possible a dmi quirk could be added to thermal
> > module (thermal_dmi_table). You can also blacklist thermal from loading.
> >
> > --
> > []'s
> > Herton
>
> attached is the acpidump output.  With kernels prior to 2.6.26 the
> thermal module doesn't do anything.  If I do acpi -t it says there isn't
> any thermal info.
>
> I'm thinking that it's been updated and now is seeing something but not
> what it wants to.  I did check my bios, but there is no place in there
> to set a critical temperature, or even look at the current temps.

Looking at DSDT of acpidump you provided, and if I correctly checked, these 
are the relevant parts:

...
            Store (0x07D0, OSYS)
            If (CondRefOf (_OSI, Local0))
            {
                If (_OSI ("Linux"))
                {
                    Store (One, LINX)
                }

                If (_OSI ("Windows 2001"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP1"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP2"))
                {
                    Store (0x07D2, OSYS)
                }

                If (_OSI ("Windows 2006"))
                {
                    Store (0x07D6, OSYS)
                }
            }
...
        Name (TPC, 0x78)
        Name (TP85, 0x6E)
...
            Method (_CRT, 0, Serialized)
            {
                If (LLess (OSYS, 0x07D6))
                {
                    If (LEqual (\_SB.TJ85, Zero))
                    {
                        Return (Add (0x0AAC, Multiply (TPC, 0x0A)))
                    }
                    Else
                    {
                        Return (Add (0x0AAC, Multiply (TP85, 0x0A)))
                    }
                }
            }
...

The _CRT object is the one that returns the critical trip point for shutdown.
By the acpi spec, the number returned is in tenths of degrees kelvin (K), 
where K = "temp in celsius" + 273.2

For the case above then, we have
0x0AAC = 2732 = 273.2 K
0x0A = 10
TPC = 0x78 = 120
TP85 = 0x6E = 110

Looking at the Add and Multiply we can see that they are only to convert 
TPC/TP85 to Kelvin result required by acpi spec, the critical trip point for 
shutdown returned should be 110C or 120C in your case, but I guess this is 
happening:
- The bios asks for _OSI ("Windows 2006"), for which Linux will return 
supported, and OSYS will be set to 0x07D6 [1]
- Because OSYS = 0x07D6, LLess check on _CRT will fail, and no value is 
returned, (something undefined is used like 65? I don't know in this case 
what's the expected behaviour when there is no return value).

Based on this, could you try to boot the kernel using the option 
acpi_osi="!Windows 2006" in grub cmdline, and tell the behaviour with it?

Also I'm interested to know the dmesg output in both cases, and if always you 
get 65C reported as critical trip point when not using the option acpi_osi.

[1] linux should return supported for theses strings, from latest git 
sources, "drivers/acpi/utilities/uteval.c":
"Windows 2000",         /* Windows 2000 */
"Windows 2001",         /* Windows XP */
"Windows 2001 SP1",     /* Windows XP SP1 */
"Windows 2001 SP2",     /* Windows XP SP2 */
"Windows 2001.1",       /* Windows Server 2003 */
"Windows 2001.1 SP1",   /* Windows Server 2003 SP1 - Added 03/2006 */
"Windows 2006",         /* Windows Vista - Added 03/2006 */
/* Feature Group Strings */
"Extended Address Space Descriptor"

>
> Thanks!
> Scott

--
[]'s
Herton



Date Index | Thread Index

Looking for a job?



Advertisement (via La Vignette)