ProjectOSX

Welcome Guest!

Returning User? Login here.

Want membership privileges? Register here.

6 Pages V  « < 3 4 5 6 >  
Start a new topic Add Reply
> Acpimonitor, ACPIMonitor Plug-In Topic
THe KiNG
post Sep 1 2011, 06:56 PM
Post #81
QUOTE (Slice @ Sep 1 2011, 09:31 PM) *
Fraction shift 4 because it is less then 1000 (1024=10bits). 10+4=14.

Format fp2e defined for AppleSMC. If you want to implement something new you should know original implementation unsure.gif
OK. Try to implement fp4c. 12bits for fraction

CODE
inline UInt16 encode_fp2e(UInt16 value)
{
    UInt16 dec = (float)value / 1000.0f;
    UInt16 frc = value - (dec * 1000);
    
    return swap_value((dec << 12) | (frc << 2) /*| 0x3*/);
}


sp78 with sign.... as I see no conversion needed.

I tried, but result is not good, what is weird if i try this:

CODE
inline UInt16 encode_fp4c(UInt16 value)
{
    UInt16 dec = (float)value / 1000.0f;
    UInt16 frc = value - (dec * 1000);
    
    return swap_value((dec << 12) | (frc << 8));
}

I get the exact same value(OK IMHO 11.xx V for 12V voltage) as if I just declare the fp4c type.
This adds more confusion LOL.

BTW ACPIMonitor needs to be fixed for Lion, Temperatures are OK, FAN's not(negative values) and Voltages are wrong(less values). :|
They changed something that I could't find yet, instead Super I/O plug-ins still works.
Slice
post Sep 1 2011, 07:01 PM
Post #82
QUOTE (THe KiNG @ Sep 1 2011, 10:56 PM) *
I tried, but result is not good, what is weird if i try this:

CODE
inline UInt16 encode_fp4c(UInt16 value)
{
    UInt16 dec = (float)value / 1000.0f;
    UInt16 frc = value - (dec * 1000);
    
    return swap_value((dec << 12) | (frc << 8));
}

I get the exact same value(OK IMHO 11.xx V for 12V voltage) as if I just deckare the fp4c type.
This adds more confusion LOL.

(frc << 8));
(frc << 2));
Пожалуйста, прочитайте ЧаВо!
i3-2120 GA-H61M-S1, Radeon HD6670, ALC887(VoodooHDA 2.8.4), OS⌘10.9.1, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
THe KiNG
post Sep 1 2011, 07:36 PM
Post #83
QUOTE (Slice @ Sep 1 2011, 10:01 PM) *
(frc << 8));
(frc << 2));

Hmn?
I tried what you suggested and I get wrong value as result.
encodefp4c with (frc << 8)); = with just declaring the type and not using the encodefp4c.
You can test and see.
Slice
post Sep 1 2011, 07:54 PM
Post #84
How can I test? Where can I get appropriate value?
What is the specification for the format?
Propose Value=11874
dec=11
frc=874
(frc<<8)=223744 that exceeds (dec<<12)=69632 and exceeds 1<<12
Пожалуйста, прочитайте ЧаВо!
i3-2120 GA-H61M-S1, Radeon HD6670, ALC887(VoodooHDA 2.8.4), OS⌘10.9.1, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
THe KiNG
post Sep 1 2011, 08:40 PM
Post #85
QUOTE (Slice @ Sep 1 2011, 10:54 PM) *
How can I test? Where can I get appropriate value?

Take a voltage sensor that you monitor with fp2e encoding, first test use fp4c w/o formula and look on result, then use your formula and compare, then use mine and you will see the result is identical with fp4c w/o formula.
dmazar
post Sep 1 2011, 10:03 PM
Post #86
sorry to jump in, but is this fixed point format decimal or binary?
from KiNG's ascii drawing it looks like binary, and then frc calculation looks wrong to me: storing decimal fraction (power of 10) instead of binary fraction (power of 2).

It looks to me that float number 1.5 (UInt16 value 1500 ?) should be stored as
fp2e: 01 10000000000000
and not: 01 <bin value of 500>
HW: Asus P8P67-M, Intel Core i5-2300, 4GB, XFX HD-567X-ZHH3 SW: SL, L, ML: Clover UEFI boot
THe KiNG
post Sep 2 2011, 02:56 AM
Post #87
@ dmazar look on attached pdf, I understand it but I am not so good putting the stuff into the code, and was the reason i asked for help smile.gif

Attached File  fp.pdf ( 756.69K ) Number of downloads: 33
dmazar
post Sep 2 2011, 12:41 PM
Post #88
This doc describes binary fixed point.

CODE
UInt16 encode_fp2e(UInt16 value)
{
    UInt32 tmp = value;
    tmp = (tmp << 14) / 1000;
    value = (UInt16)(tmp & 0xffff);
    return value;
}

UInt16 encode_fp4c(UInt16 value)
{
    UInt32 tmp = value;
    tmp = (tmp << 12) / 1000;
    value = (UInt16)(tmp & 0xffff);
    return value;
}

UInt16 encode_sp78(UInt16 value)
{
    Int32 tmp = (Int16)value;
    tmp = (tmp << 8) / 1000;
    value = (UInt16)(tmp & 0xffff);
    return value;
}


Notes:
- assumes that the float num F is given in UInt16 value as F * 1000
- that the result should be as described in this PDF
- not sure if swap_value is needed
- not sure if sp78 is correct
- and I'm definitely not sure if this is what is needed at all (do not nothing about applesmc)

Anyway, hope it helps.
HW: Asus P8P67-M, Intel Core i5-2300, 4GB, XFX HD-567X-ZHH3 SW: SL, L, ML: Clover UEFI boot
Slice
post Sep 2 2011, 01:55 PM
Post #89
QUOTE (THe KiNG @ Sep 2 2011, 12:40 AM) *
Take a voltage sensor that you monitor with fp2e encoding, first test use fp4c w/o formula and look on result, then use your formula and compare, then use mine and you will see the result is identical with fp4c w/o formula.

I have no voltage sensor sad.gif
Пожалуйста, прочитайте ЧаВо!
i3-2120 GA-H61M-S1, Radeon HD6670, ALC887(VoodooHDA 2.8.4), OS⌘10.9.1, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
THe KiNG
post Sep 2 2011, 02:47 PM
Post #90
QUOTE (dmazar @ Sep 2 2011, 03:41 PM) *
This doc describes binary fixed point.

CODE
UInt16 encode_fp2e(UInt16 value)
{
    UInt32 tmp = value;
    tmp = (tmp << 14) / 1000;
    value = (UInt16)(tmp & 0xffff);
    return value;
}

UInt16 encode_fp4c(UInt16 value)
{
    UInt32 tmp = value;
    tmp = (tmp << 12) / 1000;
    value = (UInt16)(tmp & 0xffff);
    return value;
}

UInt16 encode_sp78(UInt16 value)
{
    Int32 tmp = (Int16)value;
    tmp = (tmp << 8) / 1000;
    value = (UInt16)(tmp & 0xffff);
    return value;
}


Notes:
- assumes that the float num F is given in UInt16 value as F * 1000
- that the result should be as described in this PDF
- not sure if swap_value is needed
- not sure if sp78 is correct
- and I'm definitely not sure if this is what is needed at all (do not nothing about applesmc)

Anyway, hope it helps.


Starting to make sense for me in both implemementations, I will test and see what happen, thanks for input.
The sp78 encode needs to be expanded to set the sign bit if is about a negative value, eg -12V
Got big headache on this voltages thing, and after this comes the power values, and last is simple to calculate the amps once we have voltage and power...

QUOTE (Slice @ Sep 2 2011, 04:55 PM) *
I have no voltage sensor sad.gif

At least on CPU you should have one.
BTW who did the encode_fpe2 code?

You tried ACPIMonitor on Lion?
dmazar
post Sep 2 2011, 04:41 PM
Post #91
QUOTE (THe KiNG @ Sep 2 2011, 04:47 PM) *
The sp78 encode needs to be expanded to set the sign bit if is about a negative value, eg -12V


This should be passed in encode_sp78(-12000)
HW: Asus P8P67-M, Intel Core i5-2300, 4GB, XFX HD-567X-ZHH3 SW: SL, L, ML: Clover UEFI boot
THe KiNG
post Sep 2 2011, 05:50 PM
Post #92
QUOTE (dmazar @ Sep 2 2011, 07:41 PM) *
This should be passed in encode_sp78(-12000)

Not good since the value is what we read from voltage sensor, is not static.
Slice
post Sep 2 2011, 06:01 PM
Post #93
QUOTE (THe KiNG @ Sep 2 2011, 06:47 PM) *
At least on CPU you should have one.
No, CPU voltage is defined by P-states as number of steps by 12.5mV
QUOTE
BTW who did the encode_fpe2 code?
mojodojo based on Linux
QUOTE
You tried ACPIMonitor on Lion?

I have no Lion yet.
Пожалуйста, прочитайте ЧаВо!
i3-2120 GA-H61M-S1, Radeon HD6670, ALC887(VoodooHDA 2.8.4), OS⌘10.9.1, OS⌘ 10.7.5 Clover FakeSMC_plugins_3.3.1 Realtek LAN v3.1.2
tmacyunn1
post Sep 7 2011, 01:41 PM
Post #94
Great job guys, thanks a lot. By using some method from this topic, my laptop fan issue has been solved. I think people have this issue can use this to fix that.

So, i write what i have done to get who need it, also maybe there is something wrong if it exist, please point it out.

First: I use RW-everthing to get some register of hardware, at last i find some. There is a register about fan control, by writing some value to it can open or stop fan, or change the speed. As the picture shows below,
http://cl.ly/2p3x190z0q3Z240b233a

Then, create the Device (SMCD) under Scope (_SB) to get istat menu work.

Next, add the register location under EC device. like this:
CODE
OperationRegion (ECOR, EmbeddedControl, Zero, 0xFF)
                    Field (ECOR, ByteAcc, Lock, Preserve)
                    {                        
                                Offset (0xB0),  //cpu temp by add
                        FNTS,   8,
                                Offset (0xB1),  //northbridge temp by add
                        TSYS,   8,                         
                                Offset (0xB5),  // fan  rotate speed add by The king
                        F1FH,   8,
                        F1FL,   8,                         
                    }

Another part of EC about SKTA, it exists in the ERAM and TZ00, like:
CODE
ThermalZone (TZ00)
        {
            Method (_CRT, 0, Serialized)
            {
                Return (0x0E94)
            }
            Method (_TMP, 0, Serialized)
            {
                If (\_SB.PCI0.LPCB.ECOK ())
                {
                    If (DTSE)
                    {
                        Return (Add (0x0AAC, Multiply (\_SB.PCI0.LPCB.EC.SKTA, 0x0A)))   //It should be a register of cpu temp ?
                    }
                    Else
                    {
                        Return (Add (0x0AAC, Multiply (\_SB.PCI0.LPCB.EC.CTMP, 0x0A)))
                    }
                }
                Return (0x0BB8)
            }
       }

CODE
OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)
                    Field (ERAM, ByteAcc, Lock, Preserve)
                    {
                      // code omit
                      DCKE,   1,
                                Offset (0xB2),
                        SKTX,   8,
                        SKTB,   8,
                        SKTC,   8,
                        SKTA,   8,   //this is the 0xB5,
                        EVTS,   8,
                        EVTC,   8,
                        BTDT,   1,
                        BTPW,   1,
                        BTDS,   1,
                        BTPS,   1,
                        BTSW,   1,
                        BTWK,   1,
                        BTLD,   1,
                                Offset (0xB9),
                        BRTS,   8,
                        // code omit


Second, i found the register 0xB5 can be write value, so i think just need write the real value to it OSX can be read it. Last i use and modify the code from thinkpad forum by a person to do so.
CODE
Method (TCPU, 0, NotSerialized)
            {
                Store (^^PCI0.LPCB.EC.FNTS, Local0)  // cpu temp register
                If (LLessEqual (Local0, 0x28))
                {
                    Store (0x28, ^^PCI0.LPCB.EC.SKTA) //SKTA is offset 0xB5, fan control register, the store value is the real fan speed value.
                }
                If (LGreaterEqual (Local0, 0x63))
                {
                    Store (0x63, ^^PCI0.LPCB.EC.SKTA)
                }
                Else
                {
                    If (LGreaterEqual (Local0, 0x61))
                    {
                        Store (0x61, ^^PCI0.LPCB.EC.SKTA)
                    }
                    Else
                    {
                        If (LGreaterEqual (Local0, 0x53))
                        {
                            Store (0x53, ^^PCI0.LPCB.EC.SKTA)
                        }
                        Else
                        {
                            If (LGreaterEqual (Local0, 0x47))
                            {
                                Store (0x47, ^^PCI0.LPCB.EC.SKTA)
                            }
                            Else
                            {
                                If (LGreaterEqual (Local0, 0x40))
                                {
                                    Store (0x40, ^^PCI0.LPCB.EC.SKTA)
                                }
                                Else
                                {
                                    If (LGreaterEqual (Local0, 0x39))
                                    {
                                        Store (0x39, ^^PCI0.LPCB.EC.SKTA)
                                    }
                                    Else
                                    {
                                        If (LGreaterEqual (Local0, 0x30))
                                        {
                                            Store (0x30, ^^PCI0.LPCB.EC.SKTA)
                                        }
                                        Else
                                        {
                                            If (LGreaterEqual (Local0, 0x2D))
                                            {
                                                Store (0x2D, ^^PCI0.LPCB.EC.SKTA)
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                Return (Local0)
            }

Also I use The king's method to get fan rotate speed. And it is not correct for me, the speed increase while the temp decrease, one of my friend help me to correct it.
CODE
Method (FAN0, 0, NotSerialized)
            {
                Store (^^PCI0.LPCB.EC.F1FH, Local0)
                Store (^^PCI0.LPCB.EC.F1FL, Local1)
                XOr (Local0, 0xFF, Local0)
                And (Local0, 0xFFFF, Local0)
                XOr (Local1, 0xFF, Local1)
                And (Local1, 0xFFFF, Local1)
                If (LNotEqual (Local0, Zero))
                {
                    If (LEqual (Local0, 0xFFFF))
                    {
                        Store (Zero, Local0)
                    }
                    Else
                    {
                        Store (0x0100, Local2)
                        Multiply (Local0, Local2, Local3)
                        Add (Local1, Local3, Local4)
                        Divide (0x03938700, Local4, Local5, Local6)
                        Store (Local6, Local0)
                    }
                }
                Else
                {
                    Store (Zero, Local0)
                }
                Return (Local0)
            }


By doing this can get fan work properly, also need install ACPIMonitor. The all part Device (SMCD) i use is below:
CODE
Device (SMCD)
        {
            Name (_HID, "MONITOR")
            Method (FAN0, 0, NotSerialized)
            {
                Store (^^PCI0.LPCB.EC.F1FH, Local0)
                Store (^^PCI0.LPCB.EC.F1FL, Local1)
                XOr (Local0, 0xFF, Local0)
                And (Local0, 0xFFFF, Local0)
                XOr (Local1, 0xFF, Local1)
                And (Local1, 0xFFFF, Local1)
                If (LNotEqual (Local0, Zero))
                {
                    If (LEqual (Local0, 0xFFFF))
                    {
                        Store (Zero, Local0)
                    }
                    Else
                    {
                        Store (0x0100, Local2)
                        Multiply (Local0, Local2, Local3)
                        Add (Local1, Local3, Local4)
                        Divide (0x03938700, Local4, Local5, Local6)
                        Store (Local6, Local0)
                    }
                }
                Else
                {
                    Store (Zero, Local0)
                }
                Return (Local0)
            }
            Method (TAMB, 0, NotSerialized)
            {
                Store (^^PCI0.LPCB.EC.SKTA, Local0)
                Return (Local0)
            }
            Method (TCPU, 0, NotSerialized)
            {
                Store (^^PCI0.LPCB.EC.FNTS, Local0)
                If (LLessEqual (Local0, 0x28))
                {
                    Store (0x28, ^^PCI0.LPCB.EC.SKTA)
                }
                If (LGreaterEqual (Local0, 0x63))
                {
                    Store (0x63, ^^PCI0.LPCB.EC.SKTA)
                }
                Else
                {
                    If (LGreaterEqual (Local0, 0x61))
                    {
                        Store (0x61, ^^PCI0.LPCB.EC.SKTA)
                    }
                    Else
                    {
                        If (LGreaterEqual (Local0, 0x53))
                        {
                            Store (0x53, ^^PCI0.LPCB.EC.SKTA)
                        }
                        Else
                        {
                            If (LGreaterEqual (Local0, 0x47))
                            {
                                Store (0x47, ^^PCI0.LPCB.EC.SKTA)
                            }
                            Else
                            {
                                If (LGreaterEqual (Local0, 0x40))
                                {
                                    Store (0x40, ^^PCI0.LPCB.EC.SKTA)
                                }
                                Else
                                {
                                    If (LGreaterEqual (Local0, 0x39))
                                    {
                                        Store (0x39, ^^PCI0.LPCB.EC.SKTA)
                                    }
                                    Else
                                    {
                                        If (LGreaterEqual (Local0, 0x30))
                                        {
                                            Store (0x30, ^^PCI0.LPCB.EC.SKTA)
                                        }
                                        Else
                                        {
                                            If (LGreaterEqual (Local0, 0x2D))
                                            {
                                                Store (0x2D, ^^PCI0.LPCB.EC.SKTA)
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                Return (Local0)
            }
            Method (TSYS, 0, NotSerialized)
            {
                Store (^^PCI0.LPCB.EC.TSYS, Local0)
                Return (Local0)
            }
        }


Extend info: I don't know how to define the SKTA, cause it can read cpu temp and control fan. Anybody gives info will appreciate.

Thanks again, Slice, the king weizh126.

Last post a screenshot:
http://cl.ly/0R2M39050f1n3R0r0h25

This post has been edited by tmacyunn1: Sep 9 2011, 04:45 AM
Windows 7 x64 SP1+ Mavericks 10.9.0
CPU : I5-2450m Ram : 8G=4*2G Graphics : HD3000(Disabled AMD6630m BY DSDT) Ethernet: RTL8136 Wireless: AR9280 Audio Card: ALC269 Clover version: 2330
.
ThirdSmile
post Sep 12 2011, 08:10 PM
Post #95
QUOTE (tmacyunn1 @ Sep 7 2011, 01:41 PM) *
By using some method from this topic, my laptop fan issue has been solved. I think people have this issue can use this to fix that.


Take look at(this is my try to implement driver for thermal zone): http://www.projectosx.com/forum/index.php?showtopic=2240

This post has been edited by ThirdSmile: Sep 13 2011, 02:52 PM
MacBook Pro 8,2 (MD318)
10.6.7 P5LD2 VM DH, Pentium 4 631, 3Gb RAM, Intel GMA 950, ALC882
10.6.8 & 10.7.1 hp 6720s (T7250 & GMAX3100 device id 2a12)
Mido
post Sep 13 2011, 07:55 PM
Post #96
i can't load this kext under lion !!!!!!!!!!!!!

is there fix for that blink.gif
PC : AMD Phenom ii x4 955 / ASUS M5A97 / Sapphire HD 6850 / 2x2 1333 KingSton Ram / 2*500GB + 640GB HDD / Thermaltake 500 W
NB : DELL INSPIRON N5110 : CORE I5 2410M / 4GB 1333 Nanya Ram / Intel HD Graphics 3000 + Nvidia GeForce 525M / 640 HDD / DELL Wireless 1702
Jingu
post Oct 19 2011, 07:47 PM
Post #97
Removed post. Got a new fan rpm formula for Lion right below.

This post has been edited by Jingu: Nov 5 2011, 09:18 AM
Jingu
post Nov 5 2011, 09:18 AM
Post #98
@ The King,

Got it! Got my fan rpm to work in Lion for my Asus Laptop on Lion 10.7.2



Thanks for suggesting Mattday's formula for Lion, but it wasn't working. The rpm values were off and after a while gave negative rpm values.

Thanks to bcc9's work, we know that Lion implements the ACPI spec more strictly.

from bcc9: "Per the ACPI spec, the EmbeddedControl region must use byte access. So you rewrite those fields as pairs of 8 bit fields and do the access byte at a time."

For my Asus Laptop, TAH0 (16-bit) is the register that holds fan rpm at offset 0x93. So I broke down TAH0 into 2 8-bit registers, TAHL for Tach Low and TAHH for Tach High. I'm not using TAH0 anymore but I had to keep it because the dsdt uses it somewhere else.

I'm using the same fan rpm formula that works so well in Snow Leopard, but adjusted to process the fan rpm register only 8 bits at the time.

By comparing bcc9's new battery dsdt code for Lion with his original battery dsdt code, to some degree, I managed to reverse engineer the method that bcc9 used to get a 16-bit register to be processed 8 bits at the time.

Under Snow Leopard:
CODE
Offset (0x93),
TAH0, 16,

Store (^^EC0.TAH0, Local0)



Becomes under Lion:
CODE
Offset (0x93),
TAHL, 8,
TAHH, 8,

Store (^^EC0.TAHH, Local0)
Store (^^EC0.TAHL, Local1)
ShiftLeft (Local0, 0x08, Local0)
Or (Local0, Local1, Local0)


Now, the for the whole fan formula

Under Snow Leopard:
CODE
Device (SMCD)
{
Name (_HID, "monitor")
Method (FAN0, 0, NotSerialized)
{
Store (^^EC0.TAH0, Local0)
Store (0x80, Local1)
Store (0x02, Local2)
Multiply (Local1, Local2, Local3)
Multiply (Local0, Local3, Local4)
Divide (0x03938700, Local4, Local5, Local6)
Multiply (Local6, 0x0A, Local6)
Return (Local6)
}
}


Becomes under Lion:
CODE
Device (SMCD)
{
Name (_HID, "monitor")
Method (FAN0, 0, NotSerialized)
{
Store (^^EC0.TAHH, Local0)
Store (^^EC0.TAHL, Local1)
ShiftLeft (Local0, 0x08, Local0)
Or (Local0, Local1, Local0)
Store (0x80, Local2)
Store (0x02, Local3)
Multiply (Local2, Local3, Local4)
Multiply (Local0, Local4, Local5)
Divide (0x03938700, Local5, Local6, Local7)
Multiply (Local7, 0x0A, Local7)
Return (Local7)
}
}


Now the fan rpm gives me same readings as in Snow Leopard.

This post has been edited by Jingu: Nov 5 2011, 10:16 AM
azerq
post Nov 15 2011, 10:33 PM
Post #99
Hi Jingu and Hi All !

I just read your message and it's a real ray of hope for me! Indeed, I also have an Asus Laptop and I have a big problem with Fans using Lion 10.7.2.

I need some advices from you to reduce the speed of Fans that by the way increase the temperature of my laptop.

For your information, ThermalZone in my DSDT is THRM. And, with the precious help of ThirdSmile TAH0 & TAH1 inputs are fixed in my DSDT. But the Fans sensor is not visible via iStatmenu.
http://www.mediafire.com/imgbnc.php/9e7c55...1f365a9976g.jpg

Can you please point me to the process to follow (DSDT modifications and kexts to install) in order to correctly use the Kext ACPImonitior kindly developed by The king?

Here is my current extra folder under Lion 10.7.2:
http://www.mediafire.com/file/ww5ddorut86g...xtra_10-7-2.zip

I also submit my ioreg under Lion 10.7.2 :
http://www.mediafire.com/file/nylhh6hapby4...Loyd_Lion.ioreg

In advance a big thanks for reading and for your efforts!
Wonderful Forum !!

Loyd

My configuration :


- ASUS X71Vn Bios vers: 207 (10/29/2009)

- 82801I (ICH9 Family) HD Audio Controller [8086:293E]

- RTL8111/8168B PCI Express Gigabit Ethernet controller [10EC:8168]

- AR928X Wireless Network Adapter (PCI-Express) [168C:002A]

- Intel® Core™2 Duo CPU T5850 @ 2.16GHz 2166 MHz CPU
-model 15
- G96 [GeForce 9650M GT] [10DE:064C]

- pci@0000:01:00.0 

- ICH9M/M-E SATA AHCI Controller [8086:2929]
Jingu
post Nov 19 2011, 11:07 AM
Post #100
Hi there Azerq.

You have an older Asus notebook model than mine. With my Asus M60J, I never had any fan control problems. Even in Lion 10.7.2, the CPU fan adjusts its speeds totally automatically based on temperature. So, I never looked into controlling fan speed. There are some guys earlier in this thread that were successful with controlling their fan speed on their HP notebook. Maybe this can give you some ideas:

http://forum.thinkpads.com/viewtopic.php?f=32&t=91141

As for getting the fan rpm reading in Lion, that's covered in my post. In your dsdt, remove TAH0, 16, and replace it with TAHL, 8, and TAHH, 8, exactly in that order according to my post. You then have to add the Device SMCD with fan reading for Lion. That's the last codebox in my post. Finally, we have to address the TAH0 variable that we deleted. Create a Method TAH0 as follow as place it right above Method (TACH, 1, NotSerialized)

CODE
Method (TAH0, 0, NotSerialized)
{
Store (TAHH, Local0)
Store (TAHL, Local1)
ShiftLeft (Local0, 0x08, Local0)
Or (Local0, Local1, Local0)
Return (Local0)
}


In your dsdt, replace all occurrences of TAH0 by TAH0 () and you'll be fine.

EDIT: I looked at your attached dsdt. It's quite different from my Asus M60J. I didn't see TAH0 and TAH1 and I couldn't tell what fan sensors are being used instead. You have to find out what your fan sensors are. Also, In your Extra/Extensions, you're missing the ACPIMonitor.kext. That's kext is crucial for getting sensor readings.

This post has been edited by Jingu: Nov 19 2011, 11:09 AM

6 Pages V  « < 3 4 5 6 >
Add Reply Start a new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members: