Skocz do zawartości

[Część 8] Sprawdzenie działania Power Managmentu (SpeedStep)


Rekomendowane odpowiedzi

Sprawdzenie działania Power Managmentu (SpeedStep)

v1.0 - Pierwsza publikacja

v1.1 - Drobne poprawki

 

SPIS TEMATÓW O MODYFIKACJI DSDT:

 

[Cześć 1] Wydobycie DSDT z naszego sprzętu

[Cześć 2] Podstawowe modyfikacje DSDT

[Cześć 3] Sekcja audio w DSDT

[Cześć 4] Modyfikacja sekcji USB

[Cześć 5] Dopisywanie grafiki do DSDT

[Cześć 6] Fixy dla notebooków/netbooków oraz PC

[Cześć 7] Kosmeytka DSDT + Uciszanie kompilatora

[Cześć 8] Sprawdzenie działania Power Managmentu (SpeedStep)

 

 

Musimy zaopatrzyć się w program IORegistryExplorer. Za jego pomocą wyszukujemy gałąź ACPI_SMC_PlatformPlugin i porównaj jej zawartość z tą ze screena. Krótkie wyjaśnienie co się znajduje na poniższym screen'ie:

 

:arrow: 1 - Widoczne są tam dwie wartości:

CPUPLimit - wskazuje czy działa zarządzanie energią, jeśli nie ma tej pozycji, lub ma wartość inną niż 0x0 oznacza że zarządzanie energią nie działa.

CSTInfo (od 10.6.8 zmiana nazwy na AICPMVers) - Czy działają stany CST - wymagane jest działanie LPC aby te stany były aktywne. Jeżeli sekcji nie ma w ogóle należy ją dodać. Modyfikacje sekcji SBRG/LPCB można znaleźć w "[Cześć 2] Podstawowe modyfikacje DSDT"

 

:arrow: 2 - PerformanceStateArray - Pokazuje w ile trybów pracy częstotliwości/napięć może być ustawiony procesor. Muszą być co najmniej dwa stany - 0 i 1. Notebook'i najczęściej mają ich więcej... 4-6

 

download.htm?id=439

 

Odpalanie "Vanillowego Power Managment'u" tą metodą opiera się na bazie poprawnie działających tabel SSDT posiadających poprawne stany PST i CST. Jeżeli stany te nie są wczytywane lub są błędne to do odpalenia SpeedStep'u będziemy musieli dopisać własną sekcję PR w DSDT w oparciu o posiadany procesor. Ale to zagadnienie na osobny temat.

 

Absolutnie wymagane poprawki w DSDT aby opalił SpeedStep ze stanami PST to: HPET, RTC, oraz poprawna identyfikacja komputera w smbios.plist. Wymagane także są włączone opcje w biosie dotyczące SpeedStepu, są to np: C1E Support, CPU TM Function, Intel SpeedStep Tech, Intel C-State Tech. Opcja CPU Ratio Setting musi być ustawiona na AUTO aby SpeedStep działał, a wcześniej wymienione opcje były widoczne !

 

Aby dodatkowo obniżyć temperaturę procesora należy uruchomić stany C-State - a to wymaga załadowanego LPC. Dlatego stosuje się często poprawkę dla LPCB/SBRG wstrzykującą deviceID LPC z maczka. Poprawne załadowanie LPC i poprawna identyfikacja w smbios.plist skutkuje pojawieniem się stanu CSTLimit w ioreg'u.

 

Jeśli nasze opcje w IORegu wyglądają jak na screenie, oznacza to że zarządzanie energią w pełni działa, a przez to temperatury procesora są identyczne z osiąganymi w windows, co przekłada się na mniej wydzielanego ciepła, mniejsze zużycie energii, czyli mniejszy hałas. Właściciele notebooków szczególnie powinni zwrócić uwagę na poprawne uruchomienie SpeedSteep'u ponieważ wydłuża to czas pracy na akumulatorze, często nawet dwukrotnie.

 

Źródła informacji:

http://hamac.pl/topics27/fixy-dsdt-dla-asus-p5w-dh-deluxe-vt857.htm#10700

 

Powyższy poradnik powstał dzięki wiedzy i pomocy 314TeR'a.

 

Dodano 314TeR: UWAGA powyższy poradnik potrzebuje aktualizacji - jest aktualny dla mniej więcej max 10.6.8 i procesorów pre Core i 2-giej generacji. Nowsze systemy i CPU mają inaczej wyświetlane info w IORegu i wymagają innego podejścia.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 8 miesięcy temu...
Na nowym konfigu juz tego wpisu nie mam (ta sama grafa), mam za to wpis AGPMController - decysuje on o PM na grafice, jezeli go posiadasz to OK.

Co masz na myśli pisząc "nowy konfig"?

W oryginalnym MBP6,1 jest zarówno GPUPLimit jak i AGPMController, więc sądziłem że jest potrzebny ten wpis. Mój Samsung ma identyczną grafikę (prawie) jak MBP6,1

MBPro61.tif

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...

obecnie odpalenie PM to kaszka z mleczkiem, nie mając nawet żadnych opcji w biosie wystarczy tylko pchnąć LPC i dodac wpisy GenerateCState i GeneratePState - przetestowałem na LGA775, 1156 oraz 1366. Działa idealnie nawet przy wyłączonych wszystkich opcjach do PM.

 

Dla przykładu P5Q PRO ma jakiś bug i po zastosowaniu procka 4-ro jajowego znika jedna opcja w biosie przez co nie da sie osiągnąć PM. Kiedyś trzeba by dopisać całą sekcje procesora do DSDT, dzisiaj jak już pisałem wystarczą odpowiednie wpisy i odpalenie LPC o ile samo nie odpala !

Odnośnik do komentarza
Udostępnij na innych stronach

  • 5 tygodni później...
obecnie odpalenie PM to kaszka z mleczkiem, nie mając nawet żadnych opcji w biosie wystarczy tylko pchnąć LPC i dodac wpisy GenerateCState i GeneratePState - przetestowałem na LGA775, 1156 oraz 1366. Działa idealnie nawet przy wyłączonych wszystkich opcjach do PM.

 

Dla przykładu P5Q PRO ma jakiś bug i po zastosowaniu procka 4-ro jajowego znika jedna opcja w biosie przez co nie da sie osiągnąć PM. Kiedyś trzeba by dopisać całą sekcje procesora do DSDT, dzisiaj jak już pisałem wystarczą odpowiednie wpisy i odpalenie LPC o ile samo nie odpala !

 

Witam,

 

miałbym do Ciebie prośbę abyś trochę jaśniej opisał:

- pchnąć LPC, (jak ot sprawdzić czy działa)

- dodać wpisy GenerateCState i GeneratePState

 

Czy przy tej metodzie nie jest wymagane paczowanie DSDT? Jakie opcje w com.apple.Boot (DropSSDST... itp) Jakie wpisy w smbios.plist (SMbiosversion, SMproductname, itp... ) i czy zależne od typu procka (mój i5-560M).

 

Jeśli możesz to napisz jakieś krok po kroku jak to odpalić.

 

Staram się od paru dni odpalić vanilla AppleIntelCPUPowerManagement na 10.6.6 i zawsze kernel panic :(

 

Mój sprzęt: Asus U30JC, i5-560M, 4GB RAM

 

 

Z góry dziękuję i pozdrawiam,

fingerr.

Odnośnik do komentarza
Udostępnij na innych stronach

Pchnąć LPC = zrobić stosowną poprawkę w DSDT, która podmienia DeviceID LPC.

 

dodać wpisy CST PST = dodać je (GeneratePStates=Yes i GenerateCStates=Yes) do apple.com.Boot.plist, a resztę załatwia Chameleon. Bez tego, w przypadku kopmuterów gdzie nie ładowały się poprawnie owe stany procesora, trzeba było dopisywać wszystko ręcznie jako nową sekcję procesora (dość uciążliwe i czasochłonne).

 

Uruchomienie natywnego PM zawsze wiąże się z poprawianiem DSDT. Tylko tych poprawek może być mniej lub więcej, zależnie od sprzętu, biosu...

 

SMBIOS należy dobrać wg. konfiguracj jaką posiadasz. Przede wszystkim chodzi o identyfikację typu maszyny - przykłądy działających:

MacPro3,1
MacBookPro5,1
iMac11,1

SMbiosversion wynika z identyfikacji sprzętu, a reszta to już kosmetyka.

 

Jeśli masz pytania związane konkretnie ze swoim sprzętem, to pytaj w odzielnym wątku. W takim wypadku podaj konfigurację wg poradnika (link np. w mojej stopce).

Odnośnik do komentarza
Udostępnij na innych stronach

Pchnąć LPC = zrobić stosowną poprawkę w DSDT, która podmienia DeviceID LPC.

 

dodać wpisy CST PST = dodać je (GeneratePStates=Yes i GenerateCStates=Yes) do apple.com.Boot.plist, a resztę załatwia Chameleon. Bez tego, w przypadku kopmuterów gdzie nie ładowały się poprawnie owe stany procesora, trzeba było dopisywać wszystko ręcznie jako nową sekcję procesora (dość uciążliwe i czasochłonne).

 

Uruchomienie natywnego PM zawsze wiąże się z poprawianiem DSDT. Tylko tych poprawek może być mniej lub więcej, zależnie od sprzętu, biosu...

 

SMBIOS należy dobrać wg. konfiguracj jaką posiadasz. Przede wszystkim chodzi o identyfikację typu maszyny - przykłądy działających:

MacPro3,1
MacBookPro5,1
iMac11,1

SMbiosversion wynika z identyfikacji sprzętu, a reszta to już kosmetyka.

 

Jeśli masz pytania związane konkretnie ze swoim sprzętem, to pytaj w odzielnym wątku. W takim wypadku podaj konfigurację wg poradnika (link np. w mojej stopce).

 

Wielkie dzięki za info. Niestety nie mogę skompilować niezmodyfikowanego dsdt.dsl (ponad 200 błędów kompilacji...)

Założyłem nowy temat http://hamac.pl/topics36/speedstep-na-a ... vt3875.htm może ktoś już walczył z tym notkiem.

 

p.s.

Może za jakiś czas ktoś wymyśli jak podmienić/pchnąć LPC z poziomu com.apple.Boot :)

 

-- EDIT

Jeszcze jedno pytanie: czy wpisy w IOregu CPUPLimit i CSTInfo są widoczne tylko przy załadowanym AppleIntelCPUPM.kext? Chodzi mi o sprawdzenie czy system jest 'PM ready' :) Jak wrzuce AppleIntelCPUPM i dostaje KP to musze odpalac z plytki instalacyjnej zeby usunac tego kext'a a to chwile trwa ...

 

-- EDIT 2

Udało się... Wygląda że moim przypadku wpis GraphicsEnabler ustawiony na Yes w com.apple.Boot powodował całe zamieszanie...

 

Przy okazji, czy "poprawne załadownie" LPC można zweryfikować tylko po widoczności opcji restart on power failure w ustawieniach 'Power Settings'?

Podziękowania za pomoc.

 

Pozdrawiam,

fingerr

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 miesiące temu...

Do sprawdzania działania Power Managementu można także użyć programu SMC Monitor.

http://www.insanelymac.com/forum/index.php?showtopic=247185

Pokazuje on częstotliwość nie tylko CPU, ale także GPU.

Mogą być potrzebne odpowiednie pluginy do FakeSMC stąd:

http://www.projectosx.com/forum/index.php?showtopic=1643

post-702-13904296011097_thumb.png

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 miesiąc temu...
  • 3 miesiące temu...

Pozbyłem się NullCPUPowerManagement oraz SleepEnabler, w IOReg'u bez zmian. Jakie to fixy do DSDT mogłyby mi pomóc?

 

EDIT: Teraz to już kompletnie zbaraniałem... Działa mi sleep bez SleepEnabler'a tylko nie wstaje przy PowerButton

Skąd mam wiedzieć czy potrzebny mi NullCPUPowerManagement?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 miesiąc temu...
  • 6 miesięcy temu...
  • 4 miesiące temu...

Mam coś takiego i gdzie mam wstawić poprawkę?

 

Device (LPC) 
           { 
               Name (_ADR, 0x001F0000) 
               OperationRegion (LPC0, PCI_Config, 0x40, 0xC0) 
               Field (LPC0, AnyAcc, NoLock, Preserve) 
               { 
                           Offset (0x20), 
                   PARC,   8, 
                   PBRC,   8, 
                   PCRC,   8, 
                   PDRC,   8, 
                           Offset (0x28), 
                   PERC,   8, 
                   PFRC,   8, 
                   PGRC,   8, 
                   PHRC,   8, 
                           Offset (0x40), 
                   IOD0,   8, 
                   IOD1,   8, 
                   CMA0,   1, 
                   CMB0,   1, 
                   LP0E,   1, 
                   FDDE,   1, 
                           Offset (0x44), 
                   DIO1,   16, 
                   RIO1,   8, 
                           Offset (0x60), 
                       ,   7, 
                   C4O3,   1
               } 

               OperationRegion (PRR0, PCI_Config, 0x60, 0x04) 
               Field (PRR0, AnyAcc, NoLock, Preserve) 
               { 
                   PIRA,   8, 
                   PIRB,   8, 
                   PIRC,   8, 
                   PIRD,   8
               } 

               OperationRegion (PRR1, PCI_Config, 0x68, 0x04) 
               Field (PRR1, AnyAcc, NoLock, Preserve) 
               { 
                   PIRE,   8, 
                   PIRF,   8, 
                   PIRG,   8, 
                   PIRH,   8
               } 

               OperationRegion (PRR2, PCI_Config, 0x80, 0x02) 
               Field (PRR2, AnyAcc, NoLock, Preserve) 
               { 
                   IODL,   8, 
                   IODH,   8
               }

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie
 Udostępnij

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystanie z tej witryny, wymaga zakceptowanie naszych warunków Warunki użytkowania.