Toon posts:

Problemen met patch DSDT tabel voor FAN controle

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo Allemaal,

Sinds een paar weken heb ik een HP DV7-1080 laptop met Vista 32bits. Super tevreden over de prestaties van dit monster, maar ik stoor me heel erg aan de ventilator. Nu heb ik alle standaard tools geprobeerd maar geen van deze is in staat om de fan speeds aan te passen. In de BIOS staat "fan always on" op disabled, daardoor schakeld de fan nu in bij ca 47 graden CPU temperatuur en weer uit bij 32 graden. Gedurende deze tijd lijkt het wel een stofzuiger. Wat ik dus wil is dat hij bij b.v 55 graden pas inschakeld en dan op een veel lager toerental waardoor je geen last hebt van het geluid.

Inmiddels heb ik ontdekt dat je dat bij HP's het beste kunt doen door het patchen van de DSDT tabel. Deze heb ik dan ook uit het register geextract en omgezet naar een DSDT.asl file. Zie ook het voorbeeld op:

http://eddietse.blogspot....-for-8510p-to-reduce.html

Alles lukt inclusief het terug schrijven van de aangepaste tabel, maar ik kom er maar niet achter WELKE waardes ik moet aanpassen om de fan in elk geval wat rustiger te laten draaien in de eerste stand. Bij mijn dsdt tabel is het gewoon niet zo duidelijk als in het voorbeeld. Mijn vraag is dan ook: Wie ziet welke waarde in mijn DSDT tabel de snelheid van de fan aangeeft en welke waarde de inschakel temperatuur aangeeft van de fan.

Bedankt voor het meedenken alvast! _/-\o_

Link naar de DSDT.asl file:
http://www.fileshost.com/en/file/70607/dsdt-ASL.html
(even het controle nummer invoeren en dan 10 sec wachten)

Verwijderd

Topicstarter
Niemand die hier iets meer over weet?

Ik ben vandaag weer de hele dag 8)7 bezig geweest om dit aan de praat te krijgen. Wat ik mis in mijn dsdt tabel is een overzicht in de _TZ scope waarin ik de fanspeeds kan terug vinden. Wellicht zit er slechts een simpele aan/uit logica in. Wat wel vreemd is dat ik bij het flashen van mijn BIOS de fan opeens naar 100% hoorde gaan en na die tijd liep hij heel even op +_20% ipv de gebruikelijke +_50%. Dit flashen deed ik vanuit Vista, dus het is mogelijk om vanuit Vista de fanspeeds aan te passen, anders was het deze flashtool ook niet gelukt :?

Ook ben ik bezig om voor Notebook Hardware Control een aangepast script te schrijven voor mijn Laptop, maar ook dáár loop ik tegen het probleem aan dat ik de tabel met fanspeeds niet kan vinden. Ik wordt langzaam aan een beetje radeloos. Van huis uit ben ik een elektro man en ik voel er steeds meer voor om de patient open te schroeven een simpele regeling op de fan te bouwen....Maarjah, dan ben ik wel mijn garantie kwijt en dat is ook niet de bedoeling.

Wie o wie bied raad? :)

Verwijderd

Topicstarter
Goed, inmiddels ben ik weer wat verder gekomen. Ik heb het rechstreeks aanpassen van de DSDT tabel opgegeven en ben in plaats daarvan bezig gegaan met Notebook Hardware Control.

Na een aantal dagen zoeken ben ik er nu uit welke registers ik moet bescrhijven om de fan uit te houden. Zie onderstaand stukje code (= eerste probeer versie, dus niet netjes)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
        #region Class for Hardware control : class HARDWARE
        public static class HARDWARE 
        { 
            public const string description = "Pavilion DV7-1080ed FAN Control"; 
            public const bool default_enable = false; 
            public const int icon = 2; 
            public const int highspeed_refresh_interval = 200; 
            public static bool highspeed_refresh() 
            {   
                if(SILENT_MODE.silent_mode == 0)
                {
                    int value=0,value2=0;
                    ACPI.FIELD.ReadByOffset("_SB_.PCI0.LPC_.EC0_.ERAM", ref value, 177,8);
                    ACPI.FIELD.ReadByOffset("_SB_.PCI0.LPC_.EC0_.ERAM", ref value2, 176,8);
                    if(value > 42)
                    {
                        ACPI.FIELD.WriteByOffset("_SB_.PCI0.LPC_.EC0_.ERAM", 60, 176,8);    
                        ACPI.FIELD.WriteByOffset("_SB_.PCI0.LPC_.EC0_.ERAM",   0, 176,8);
                    }
                    if(value < 40)
                    {
                        ACPI.FIELD.WriteByOffset("_SB_.PCI0.LPC_.EC0_.ERAM", 0, 180,8);
                    }
                    if(value2 != 0) ACPI.FIELD.WriteByOffset("_SB_.PCI0.LPC_.EC0_.ERAM",   0, 176,8);
                }
                else
                {
                    int value1=0;
                    ACPI.FIELD.ReadByOffset("_SB_.PCI0.LPC_.EC0_.ERAM", ref value1, 177,8);
                    if(value1 < 71)
                    {
                        ACPI.FIELD.WriteByOffset("_SB_.PCI0.LPC_.EC0_.ERAM",   0, 176,8);   
                        ACPI.FIELD.WriteByOffset("_SB_.PCI0.LPC_.EC0_.ERAM",   0, 177,8);
                        ACPI.FIELD.WriteByOffset("_SB_.PCI0.LPC_.EC0_.ERAM",   0, 180,8);
                    }
                    else
                    {
                        SILENT_MODE.silent_mode = 0;
                        ACPI.FIELD.WriteByOffset("_SB_.PCI0.LPC_.EC0_.ERAM",   75, 176,8);  
                        ACPI.FIELD.WriteByOffset("_SB_.PCI0.LPC_.EC0_.ERAM",   75, 177,8);
                        ACPI.FIELD.WriteByOffset("_SB_.PCI0.LPC_.EC0_.ERAM",   75, 180,8);
                    }
                }
                return true;
            }


Hiermee heb ik dus de keus om de fan eerder in te schakelen dan dat de embedded control dat zou doen, maar dan wel op een lagere snelheid. Daarnaast heb ik een silent mode gemaakt, waarmee de fan compleet uitblijft totdat de cpu 70 graden bereikt (hetgeen nooit gebeurd in een office/windows/internet/mail omgeving).

Mijn enigste vraag is nu nog, hoe kan ik voorkomen dat dit kleine stukje code een constante CPU belasting vormt van ca 12%? De oorzaak ligt in de highspeed refresh routine, als ik die langzaamer zet dan gaat ook de cpu load flink omlaag. Maar helaas kan ik hem niet langzamer laten lopen, aangezien de embedded control temperatuur registers steeds naar 0 moeten worden geschreven. Als ik dat langzamer doe dan slaat de fan steeds heel even aan. Iemand enig idee hoe ik deze code minder CPU belastend krijg? 8)7