Jump to content

Gerenciamento de energia para Sandy Bridge/Ivy Bridge/Haswell CPU

Powermanagement Sandy Bridger Ivy Bridger CPU SSDT AICPUPM patch

  • Please log in to reply
171 replies to this topic

#1
PimentelX86

PimentelX86

    InsanelyMac Deity

  • Local Moderators
  • 2,445 posts
  • Gender:Male
  • Location:Area 51

Olá Pessoal

 

Guia Atualizado... Link do Script funcionando e permissão para patch AICPUPM adicionada...

Antes de tudo é muito bom que tenhamos uma versão atualizada do Chameleon, então por favor pegue essa versão mais atualizada bem aqui no tópico oficial: http://www.insanelym...ameleon-22-svn/

Desde 10.7.4 para os CPUs SandyBridger e IvyBridger os P e C States - que são responsáveis pelo bom funcionamento de energia - não são mais fornecidos pelo Chameleon, ou seja, somente ativar GeneratePStates e GenerateCStates não adiatam mais...

Uma saída rápida é a utilização da kext NullCPUPowermanagement, mas eu não recomendo a utilização continua dessa kext, pois ela desabilita a kext AppleIntelCPUPowermanagement que é pelo gerenciamento de energia.

A solução mais viável e recomendada que lhe proporcionará um gerenciamento de energia bom, é a criação de uma SSDT que irá contem todos os P-States e C-States.

Passo-a-Passo

Criando a SSDT

Crie sua SSDT baseada no script do Pike R. Alpha
Rode no terminal esses comandos

https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/master/ssdtPRGen.sh
chmod +x ssdtPRGen.sh
./ssdtPRGen.sh

Após roda-lo você precisa colocar a Frequência Máxima e o Máximo TDP do seu CPU... veja essas infos sobre seu CPU aqui: http://ark.intel.com/
Esse é um exemplo de um i7 2600 que possui 3800Mhz(3,8Ghz) de frequencia maxima e 95 de TDP

sudo ./ssdtPRGen.sh 3800 95

Coloque a SSDT na pasta Extra e renomeie ssdt_pr para SSDT

 

Obs: Alguns CPUs já são auto-detectados pelo script, simplesmente o script já detecta a frequência máxima e o TDP, então se simplesmente após rodar o primeiro comando você for avisado para salvar a SSDT na pasta Extra(não pedindo para digitar sua max frequenc. e TDP como o guia manda), não se preocupe com isso, apenas confirme, pois o script já detectou tudo e criou sua SSDT e no momento já está pedindo para salvar o arquivo.

Patch na AppleIntelCPUPowermanagement

Nas mobos mais antigas é necessário patchear a kext AICPUPM para possibilitar a gravação na Bios, caso contrário você receberá um Kernel Panic por não poder gravar na Bios...

Faça o download do patch:AICPUPMpatch

Rode no terminal

cd ~/Downloads/AICPMPatch

Apenas encontre e liste...

sudo perl AICPMPatch.pl /System/Library/Extensions/AppleIntelCPUPowerManagement.kext/Contents/MacOS/AppleIntelCPUPowerManagement

Depois dê patch no wrmsr para possibilitar a gravação na Bios

sudo perl AICPMPatch.pl /System/Library/Extensions/AppleIntelCPUPowerManagement.kext/Contents/MacOS/AppleIntelCPUPowerManagement --patch

Após isso é necessário atualizar o cache

sudo touch /System/Library/Extensions

Kernel Patch para Haswell CPU(Kernel XCPM)

 

Desde a versão 10.8.5 um novo kernel foi implementado no OSX, ele se chamada XNU kernel(Xnu Cpu Power Management(xcpm))

 

Esse kernel tem o gerenciamento de energia movido para dentro dele, no passado usávamos a kext AppleIntelCPUPowermanagement para o controle do gerenciamento de energia e algumas Bios eram travadas, ou seja, não era permitido gravar informações nela, por isso foi criado o patch para a kext AICPUPM para solucionar esse problema(veja acima como patchear a kext AICPUPM

 

Mas com o gerenciamento movido para dentro do kernel(XNU kernel)a kext AICPUPM não é mais carregada e por isso o mesmo erro que estávamos tendo no passado com a kext AICPUPM(Kernel Panic)estamos tendo agora com o XNU kernel em alguns modelos de CPU haswell(principalmente modelos portáteis, alguns modelos Desktop não precisam de patch)

 

Para solucionar esse problema é necessário aplicar um patch no kernel.

 

Abra o terminal e digite:

cd /Volumes/Nome do seu HDD/

Agora, copie esse código perl se você usa as versão 10.9 ou 10.9.1

sudo perl -pi -e 's|\x74\x6c(\x48\x83\xc7\x28\x90\x8b\x05..\x5e\x00\x85\x47\xdc)\x74\x54(\x8b\x4f\xd8\x45\x85\xc0\x74\x08\x44\x39\xc1\x44\x89\xc1)\x75\x44(\x0f\x32\x89\xc0\x48\xc1\xe2\x20\x48\x09\xc2\x48\x89\x57\xf8\x48\x8b\x47\xe8\x48\x85\xc0\x74\x06\x48\xf7\xd0\x48\x21\xc2\x48\x0b\x57\xf0\x49\x89\xd1\x49\xc1\xe9\x20\x89\xd0\x8b\x4f\xd8\x4c\x89\xca)(\x0f\x30\x8b\x4f\xd8\x0f\x32\x89\xc0\x48\xc1\xe2\x20\x48\x09\xc2\x48\x89\x17\x48\x83\xc7\x30\xff\xce)\x75\x99(\x5d\xc3)\x90{7}|\x74\x73${1}\x74\x5b${2}\x75\x4b${3}\x66\x81\xf9\xe2\x00\x74\x02${4}\x75\x92${5}|g' mach_kernel

ou esse outro código perl se você usa a versão 10.8.5

sudo perl -pi -e 's|\x74\x69(\x48\x83\xc7\x28\x90\x8b\x05\xfe\xce\x5f\x00\x85\x47\xdc)\x74\x51(\x8b\x4f\xd8\x45\x85\xc0\x74\x05\x44\x39\xc1)\x75\x44(\x0f\x32\x89\xc0\x48\xc1\xe2\x20\x48\x09\xc2\x48\x89\x57\xf8\x48\x8b\x47\xe8\x48\x85\xc0\x74\x06\x48\xf7\xd0\x48\x21\xc2\x48\x0b\x57\xf0\x49\x89\xd1\x49\xc1\xe9\x20\x89\xd0\x8b\x4f\xd8\x4c\x89\xca)(\x0f\x30\x8b\x4f\xd8\x0f\x32\x89\xc0\x48\xc1\xe2\x20\x48\x09\xc2\x48\x89\x17\x48\x83\xc7\x30\xff\xce)\x75\x9c(\x5d\xc3)\x90{7}(\x90{3})|\x74\x70${1}\x74\x58${2}\x75\x4b${3}\x66\x81\xf9\xe2\x00\x74\x02${4}\x75\x95${5}${6}|g' mach_kernel

Por último atualize o cache

sudo touch /System/Library/Extensions

Pronto! Kernel patcheado e o XCPM está trabalhando perfeitamente em seu CPU haswell

 

OBS1: XCPM só trabalha nos CPUs Ivy Bridger e Haswell, sendo que, os CPUs Ivy Bridger utilizam por padrão o gerenciamento de energia dado pela kext AICPUPM, para usar o gerenciamento de energia dado pelo kernel XCPM é necessário ativar essa flag(Chameleon)/argumento(Clover):

-xcpm

Os CPUs Haswell utilizam o gerenciamento XCPM por padrão e não mudam. O gerenciamento XCPM não suporta os CPUs Sandy Bridger, então quem usa SB pode ficar tranquilo acerca disso.

OBS2: Mesmo patcheando o kernel XCPM, você irá precisar patchear a kext AICPUPM, caso a sua BIOS seja trancada para gravação.

OBS3: Caso você não tenha nenhum problema com KP, não é necessário patchear o kernel, mas, em alguns casos, patchear o kernel ajudou em adicionar alguns states de energia.

 

Ajustes finais

Para fazer com que o Chameleon reconheça a sua SSDT, habilite DropSSDT no org.chameleon

<key>DropSSDT</key>
<string>Yes</string>

Não instale a NullCPUPM e não habilite P e C States no org.chameleon...

 

Não se esqueçam de futuramente criar uma DSDT para auxiliar no gerenciamento de energia

 

OBS: Para quem está com dificuldades com gerenciamento de energia... dê uma olhada para ver se as kexts: X86PlatformPlugin, ACPI_SMC_PlatformPlugin, AppleLPC estão carregadas, rode kextstat no terminal para ver...

Boa sorte para todos que tentarem este guia, eu somente juntei tudo em um único tutorial para facilitar a compreensão sobre gerenciamento de energia em Sandy e Ivy Bridger, mas  todos os créditos vão para os respectivos donos das ferramentas maravilhosas que possibilitam o gerenciamento de energia em nossas CPUs

 

Créditos: Pike R. Alpha, flAked, RevoGirl, ReHabMan e outros


Edited by PimentelX86, 31 July 2014 - 06:31 PM.
Foi adicionado suporte aos CPUs Haswell


#2
uzmi

uzmi

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 252 posts

blank.gifblank.gifblank.gifblank.gifblank.gifblank.gifGIF018.gifblank.gifblank.gifblank.gifblank.gifblank.gifblank.gif



#3
JorgeMax

JorgeMax

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 260 posts
  • Gender:Male
  • Location:Brasil-Piauí-Teresina

Amigo. Quem utiliza o CloverEFI, também tem que tirar esses "P-states e C-states" do "Config.plist"?



#4
PimentelX86

PimentelX86

    InsanelyMac Deity

  • Local Moderators
  • 2,445 posts
  • Gender:Male
  • Location:Area 51

Olá

Eu não sou utilizador do Clover, mas creio que para CPUs Sandy e Ivy Bridger O Clover já gere automaticamente os P e C States...

Creio eu que não é necessário criar SSDT e fazer todo esse processo que eu realizei ai, pois o Chameleon não gera mais isso automaticamente por isso com ele é necessário fazer esse processo...

Somente deixe P e C States ativados no config.plist e veja os resultados... creio já ser o suficiente.

Uma outra coisa que eu acho muito bom de se fazer é aplicar o patch na AICPUPM, mesmo que você não vá fazer esse processo... você pode injetar esse processo através do config.plist deixando a opçõa AsusAICPUPM ativada...
 



#5
Mirone

Mirone

    InsanelyMac Deity

  • Local Moderators
  • 1,569 posts
  • Gender:Male
  • Location:Brazil

Olá

Eu não sou utilizador do Clover, mas creio que para CPUs Sandy e Ivy Bridger O Clover já gere automaticamente os P e C States...

Creio eu que não é necessário criar SSDT e fazer todo esse processo que eu realizei ai, pois o Chameleon não gera mais isso automaticamente por isso com ele é necessário fazer esse processo...

Somente deixe P e C States ativados no config.plist e veja os resultados... creio já ser o suficiente.

Uma outra coisa que eu acho muito bom de se fazer é aplicar o patch na AICPUPM, mesmo que você não vá fazer esse processo... você pode injetar esse processo através do config.plist deixando a opçõa AsusAICPUPM ativada...
 

Sim, o clover ja gera PeC states para ambos os CPUS sandy e ivy.

mas mesmo assim ainda vc pode usar seu SSDT Olhe aqui: http://clover-wiki.z...ation/ACPI#SSDT



#6
PimentelX86

PimentelX86

    InsanelyMac Deity

  • Local Moderators
  • 2,445 posts
  • Gender:Male
  • Location:Area 51

Olá

Valeu por confirmar Mirone...

Eu estava usando Clover, mas estava tendo muito problemas com P-States(no meu caso somente ativar P e C States não funcionava... tinha que colocar essa SSDT gerada pelo script)no meu hack e precisava de um hack funcional para logo, então voltei para o Chameleon... não esqueço do suporte que vocês me deram acerca do Clover. E ainda vou testar o Clover outra hora.



#7
JorgeMax

JorgeMax

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 260 posts
  • Gender:Male
  • Location:Brasil-Piauí-Teresina

Amigo. Eu removi do "config.plist" do Clover o "P-States e o C-States" e também o "DropOem". Dê uma lida neste link:http://www.olarila.c....php?f=6&t=4247

E este é como ficou agora o SSDT sendo carregado corretamente pelo Clover: 

Attached File  Captura de Tela 2014-01-25 s 16.18.00.png   46.2KB   6 downloads



#8
PimentelX86

PimentelX86

    InsanelyMac Deity

  • Local Moderators
  • 2,445 posts
  • Gender:Male
  • Location:Area 51

Olá

 

Muito bom JorgeMax, Allan possui alguns tutos bem interessantes sobre Clover... :)

 

Quando tiver tempo e outro HDD, vou testar o Clover e ver o que acontece ao tentar gerenciamento de energia com ele gerado pelo Script...



#9
gustavobgs

gustavobgs

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 124 posts

Gerou  dois arquivos

 

ssdt_pr.aml

ssdt_.aml

 

renomeia os dois para ssdt?

 

Abraços



#10
Allaп

Allaп

    InsanelyMacaholic

  • Local Moderators
  • 2,759 posts
  • Gender:Male
  • Location:Brazil

Gerou  dois arquivos

 

ssdt_pr.aml

ssdt_.aml

 

renomeia os dois para ssdt?

 

Abraços

 

somente o ssdt_pr.aml



#11
PimentelX86

PimentelX86

    InsanelyMac Deity

  • Local Moderators
  • 2,445 posts
  • Gender:Male
  • Location:Area 51

Olá

 

Não esqueça de habilitar DropSSDT=Yes...

 

Em outro post tu ainda está "lutando" para ajustar o OSX+Windows, então... Quando tudo estiver ok, ajuste seu gerenciamento de energia.



#12
Allaп

Allaп

    InsanelyMacaholic

  • Local Moderators
  • 2,759 posts
  • Gender:Male
  • Location:Brazil

Ficou muito bom as novas atualizações Pimentel, parabens.

 

Só uma coisa pra ficar esclarecida, eu que uso IvyBridge, mesmo com minha AICPM patcheada, posso usar o -xcpm?



#13
PimentelX86

PimentelX86

    InsanelyMac Deity

  • Local Moderators
  • 2,445 posts
  • Gender:Male
  • Location:Area 51

Olá

Obrigado Allan.

Claro que pode... isso não interfere em nada, pois quando o gerenciamento de energia for passado para o kernel XNU a kext AICPUPM não será mais carregada, mas mesmo assim, como eu já falei é necessário que ela seja patcheada(caso sua Bios seja trancada), mesmo que não vá usa-la, é necessário patchear....

O patch kernel não é necessário em CPUs Ivy somente em Haswell...

Boa sorte!



#14
Allaп

Allaп

    InsanelyMacaholic

  • Local Moderators
  • 2,759 posts
  • Gender:Male
  • Location:Brazil

Olá

Obrigado Allan.

Claro que pode... isso não interfere em nada, pois quando o gerenciamento de energia for passado para o kernel XNU a kext AICPUPM não será mais carregada, mas mesmo assim, como eu já falei é necessário que ela seja patcheada(caso sua Bios seja trancada), mesmo que não vá usa-la, é necessário patchear....

O patch kernel não é necessário em CPUs Ivy somente em Haswell...

Boa sorte!

 

Perfeito.

 

Acabei de testar aqui, e o sistema não subiu, mas o gerenciamento de energia está perfeito, com todas as kexts carregadas.

 

Obrigado Pimentel.  ;)



#15
PimentelX86

PimentelX86

    InsanelyMac Deity

  • Local Moderators
  • 2,445 posts
  • Gender:Male
  • Location:Area 51

Olá

 

Como assim o sistema não subiu? Mas ficou tudo ok depois disso? Como fez para subir de novo?

 

Mais uma vez, de nada.

 

Outra coisa somente: Não cite(quote) um texto por inteiro, isso deixa uma poluição visual no fórum... cite apenas o que interessa no momento. Agradeço a compreensão :)



#16
Allaп

Allaп

    InsanelyMacaholic

  • Local Moderators
  • 2,759 posts
  • Gender:Male
  • Location:Brazil

Bem quando inseri o código no config.plist e reiniciei a tela de boot apenas aparece a maça, e volta pra tela do BIOS.

 

E como fiz para subir normalmente, eu fui no menu de opções de boot do Clover, e retirei o -xcpm da seção "Arguments", isso é temporário, pois não retira permanentemente, pois no sistema tive de tirar manualmente depois.

 

E o sistema ficou tudo ok, estava apenas testando.

 

Sobre o "quote" tudo bem, quando citado o texto todo realmente fica poluído.

 

Vlw



#17
PimentelX86

PimentelX86

    InsanelyMac Deity

  • Local Moderators
  • 2,445 posts
  • Gender:Male
  • Location:Area 51

Olá

 

Pelo menos o teste foi muito bom... :)

 

O que eu realmente quero é que esse guia seja útil para os usuários do fórum.

 

Depois você me falar mais acerca daquela sua sugestão... Estou de "ouvidos" bem abertos para entender. :)



#18
JorgeMax

JorgeMax

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 260 posts
  • Gender:Male
  • Location:Brasil-Piauí-Teresina

Amigos, é necessário mesmo estas kexts serem carregadas: "ACPI_SMC_PlatformPluginAppleLPC"?

Pois só achei a kext "X86PlatformPlugin" carregada. Vejam:

Attached File  Jorge-Kexts Carregadas.rtf   11.79KB   4 downloads

 

O meu sistema está funcionando, sem nenhum erro relatado até o momento. E em relação ao "patch" na "AppleIntelCPUPowermanagement", eu não apliquei e nem adicionei o "-xcpm" no "config.plist" do Clover.

 

Uso o processador da "assinatura". Criei somente o "SSDT" e adicionei o TDP e a freqüência máxima do mesmo. Minha placa-mãe utiliza BIOS UEFI com o Clover instalado neste modo.

Mas não vejo carregada a kext "AppleLPC".

 



#19
Allaп

Allaп

    InsanelyMacaholic

  • Local Moderators
  • 2,759 posts
  • Gender:Male
  • Location:Brazil

Então amigo Jorge, para ter o gerenciamento completo, você tem que ter estas kexts carregadas.

 

Já vi que algumas placas Gigabyte realmente não é preciso aplicar o patch na AICPM, mas para carregar a LPC é preciso que você procure o device na DSDT e aplique o patch nela.

 

No config.plist do Clover, a opção AsusAICPUPM está marcada?

 

Sem falar que para carregar estas kexts, você precisa aplicar alguns patchs na DSDT.

Como:

*DTGP

*New_HPET

*IRQs

*RTC

Estes patchs você encontra aqui: http://olarila.com/forum/patches.php

 

Mas tenha certeza do que vai aplicar, qualquer coisa estamos ai.



#20
JorgeMax

JorgeMax

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 260 posts
  • Gender:Male
  • Location:Brasil-Piauí-Teresina

Amigo, dê uma olhada de novo nos dois arquivos: Attached File  JorgeMax.zip   18.41KB   3 downloads

 

Eu estou lhe enviando o "DSDT, SSDT e o Config.plist".

 

Eu não sei se todos esses "patchs" que você mencionou estão aplicados no "DSDT".







Also tagged with one or more of these keywords: Powermanagement, Sandy Bridger, Ivy Bridger, CPU, SSDT, AICPUPM patch

  Topic Stats Last Post Info

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy