Page 1 of 9

Bases para edição da DSDT

Posted: 05 Nov 2011, 15:24
by artur-pt
Como aplicar um patch usando [Local Link Removed for Guests]



Se aplicar vários patches, só depois de todos serem aplicados é que deverá proceder à sua compilação.

Quando aplicar um patch, verifique as abas before/after e tente perceber as mudanças realizadas e porquê.

Importante: Inicie sempre a partir de uma DSDT original. Não use "extract DSDT" se realizar o boot usando uma dsdt.aml já patcheada de outro PC.
Se não conseguir realizar o boot sem uma DSDT já patcheada, utilize o Windows ou o Linux para extrair a sua DSDT original do BIOS.

Se realizar alguma atualização ao BIOS, quase de certeza que terá de patchear a sua DSDT de novo, por isso é boa ideia criar um patch completo, contendo todos os patches necessários (separados por ";"), como estes exemplos [Local Link Removed for Guests].


Patches Usuais

[Local Link Removed for Guests]


Gerenciamento Energia:

Se a kext AppleIntelCPUPowerManagement não trabalhar (precisa usar NullCPUPowerManagement) mesmo se tiver habilitado GenerateCStates e GeneratePStates no Chameleon, verifique se a AppleLPC é carregada (corra no terminal o comando "kextstat"), se tal não acontecer, aplique um dos patches LPC de acordo com seu chipset (desktop/laptop ICH7, ICH8, ICH9, ICH10, Nehalem, Sandy Bridge).

[Local Link Removed for Guests]

Se obter a mensagem "No HPET(s) available" no KP deve precisar do patch HPET. O exemplo é usado em mobos Gigabyte, mas também pode ser necessário em outras mobos e laptops (adapta o método _CRS para retornar o ResourceTemplate logo acima).

Para muitos sistemas Sandy Bridge é necessário usar [Local Link Removed for Guests].


Problemas USB:

Existem vários patches para USB, EHCI, UHCI, ICH9 USB sleep, EHCI sleep/ownership, alguns são genéricos, outros estão organizados por chipset. Se estiver a ter problemas com as portas USB, se visualizar erros ou avisos no kernel log sobre EHCI ou UHCI, pode tentar um destes patches.


Problemas Sleep:

Problemas com sleep estão geralmente relacionados com gestão de energia e USB.

Se o sistema entra em pausa e acorda imediatamente, procure por "Wake reason" no kernel log e edite o método _PSW ou remova _PRW desse dispositivo na DSDT.


Reset CMOS:

Aplique o patch RTC.

Se tiver o reset do CMOS depois de sleep/wake/reboot no Lion, precisa de usar [Local Link Removed for Guests].


Audio:

Pode usar HDEF (ou AZAL to HDEF se já tiver device AZAL) e um patch do (ALC*) se usar uma AppleHDA patcheada, ou se quiser ter a informação do seu audio na Informação do Sistema.

Comprove se o layout-id na DSDT (hex) coincide com LayoutID na AppleHDA (decimal).


DTGP é requerido por vários patches, deverá inclui-lo.


IRQs é um patch "generico", é sempre usado. Nalguns casos são adicionados mais IRQs no dispositivo HPET, compare os patches para os vários chipsets.


SBUS (SMBUS) é usado para permitir o carregamento das kext SMBus.


Shutdown Estes patches são especificos para cada BIOS, aplique se o seu PC não desliga correctamente.


Existem outros patches que são especificos para hardware e outros "cosméticos" (são "fix" para mensagens de warning e remarks, mas na verdade são dispensáveis).


Referências (Deve realizar a sua leitura para compreender o que os patches irão realizar)

[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]
[External Link Removed for Guests]

Re: Bases para edição da DSDT

Posted: 29 Dec 2011, 01:25
by kleb
Estou tentando seguir o tutorial para tentar fazer alguma coisa na dsdt, mais ta dificil!!!
quando tento aplicar um patch, na hora de compilar aparecem erros e nao deixa salvar como aml!!!
nao estou usando nenhuma dsdt ainda, e ja tentei extrair direto no mac e tambem pelo windows no aida!!!
Ambos dao erro e o fix nao concerta!!!
Captura de Tela 2011-12-28 às 23.21.38.png
Outra duvida:

Aqui diz:
Gerenciamento Energia:

Se a kext AppleIntelCPUPowerManagement não trabalhar (precisa usar NullCPUPowerManagement) mesmo se tiver habilitado GenerateCStates e GeneratePStates no Chameleon, verifique se a AppleLPC é carregada (corra no terminal o comando "kextstat"), se tal não acontecer, aplique um dos patches LPC de acordo com seu chipset (desktop/laptop ICH7, ICH8, ICH9, ICH10, Nehalem, Sandy Bridge).

Dicas Gerenciamento Energia

Se obter a mensagem "No HPET(s) available" no KP deve precisar do patch HPET. O exemplo é usado em mobos Gigabyte, mas também pode ser necessário em outras mobos e laptops (adapta o retorno do método _CRS conforme o original).

Para muitos sistemas Sandy Bridge é necessário usar AppleIntelCPUPowerManagement patch.
Ao seguir o tutorial acima fiquei na duvida, tenho o AppleIntelCPUPowerManagement ativo junto com o AppleLPC ativos carregando com o sistema junto com os GenerateCStates e GeneratePStates ativados no Chameleon , porem se deleto o NUllCPUPowerManagement no s/l/e, o sistema nao entra, da panic!!!!
Logo pelo que entendi teria que aplicar patch HPET se tivesse a mensagem "No HPET(s) available", porem nao tenho essa mensagem, e outra nem da pra aplicar tal patch devido ao problema que relatei acima do editor!!!

Ai pensei entao vou aplicar o AppleIntelCPUPowerManagement patch, porem nao tenho a tal kext AICPUOM.kext no s/l/e!!! Como diz abaixo no tutorial do proprio, e outra ai ta escrito que e pra asus, logo eu nao uso asus, preciso desse patch?!!!!!!!!
SpeedStepper is a command-line tool that patches AppleIntelCPUPowerManagement.kext to load on ASUS P67 boards.

It patches 10 distinct write operations to MSR 0xE2, that is locked by the ASUS BIOS.

Supported is only AICPUPM v142.6.0 (32/64bit).


Usage:
1) make a backup of the kext, patching will be done in-place
2) sudo ./speedstepper /S/L/E/AICPUPM.kext/Contents/MacOS/AICPUPM (abbreviated)
3) update kextcache
4) read thread ... (soon) to get SpeedStep working, in the meantime goto link
Obrigado


Obrigado

Re: Bases para edição da DSDT

Posted: 29 Dec 2011, 01:34
by Cassio
Leia as instruções antes de sair aplicando patches a esmo, senão é difícil mesmo.
Se obter a mensagem "No HPET(s) available" no KP deve precisar do patch HPET. O exemplo é usado em mobos Gigabyte, mas também pode ser necessário em outras mobos e laptops (adapta o retorno do método _CRS conforme o original).

Re: Bases para edição da DSDT

Posted: 29 Dec 2011, 01:43
by kleb
Cassio wrote:Leia as instruções antes de sair aplicando patches a esmo, senão é difícil mesmo.
Eu ia aplicar so pra testar por tentativa e erro e so apliquei 1, porem o problema mesmo e saber qual patch aplicar!!! Essa e a grande duvida!!!

Re: Bases para edição da DSDT

Posted: 29 Dec 2011, 01:52
by Cassio
Isso tá muito claro no primeiro post, se não tem o KP "No HPET(s) available" não precisa aplicar o patch.

AICPUPM é a abreviação de AppleIntelCPUPowerManagement.

O SpeedStepper serve para várias placas Sandy Bridge, não apenas ASUS
Para muitos sistemas Sandy Bridge é necessário usar AppleIntelCPUPowerManagement patch

Re: Bases para edição da DSDT

Posted: 29 Dec 2011, 01:55
by kleb
Cassio wrote:Isso tá muito claro no primeiro post, se não tem o KP "No HPET(s) available" não precisa aplicar o patch.

AICPUPM é a abreviação de AppleIntelCPUPowerManagement.

O SpeedStepper serve para várias placas Sandy Bridge, não apenas ASUS
Ah na verdade o hpet foi o primeiro patch que fui testar mesmo no editor!!!
Mas agora sim!!!! Valeu!!! Vou tentar e tudo pelo terminal mesmo ne!!!

Acho que consegui....
Searching for wrmsr #0: a51a
-> found bytes.
-> patched.

Searching for wrmsr #1: a5e2
-> found bytes.
-> patched.

Searching for wrmsr #2: a660
-> found bytes.
-> patched.

Searching for wrmsr #3: a6a9
-> found bytes.
-> patched.

Searching for wrmsr #4: af64
-> found bytes.
-> patched.

Searching for wrmsr #5: b016
-> found bytes.
-> patched.

Searching for wrmsr #6: b0d4
-> found bytes.
-> patched.

Searching for wrmsr #7: b6f1
-> found bytes.
-> patched.

Searching for wrmsr #8: 11abe
-> found bytes.
-> patched.

Searching for wrmsr #9: 11b7c
-> found bytes.
-> patched.

All done. Bye :)

Posso deletar o NullCPU da S/l/e?
Fiz o teste aqui e se deleto a Kext Null, nao entra no sistema!!!
Porem pelo kextstat vi que o Null nao esta mais sendo carregado!!!
Isso ta certo?

Re: Bases para edição da DSDT

Posted: 13 Jan 2012, 20:52
by oldnapalm
Não faz o menor sentido. Como consegue rodar kextstat se não entra no sistema? Qual o erro? Ativou os generate states no Chameleon?

Re: Bases para edição da DSDT

Posted: 16 Jan 2012, 22:19
by MaLd0n
Great job

:)

Re: Bases para edição da DSDT

Posted: 15 Feb 2012, 16:27
by deantonibrito
Tinha desistido de resolver esse problema pois já tentei de tudo.

Auto patcher, modificações na HPET, C states.. tudo..

mas meu hackintosh (GTX 285, Asus P6tD, i7930) fica lento quando há atividade no HD (transferências, etc)

E o Safari.. só ele fica super lento pra navegar.

Tenho usado um script killall Quartz\ Debug ... melhora bem.. mas mesmo assim fica lento quando o HD copia, etc.

Esse é meu post no projetoosx e que ninguém sabe também.

[External Link Removed for Guests]

Muito obrigado pela ajuda. Esse problema me consome há mais de um ano. :-(


meu ioreg
[External Link Removed for Guests]
[External Link Removed for Guests]

minha dsdt.aml (Hpet by The King)
[External Link Removed for Guests]

P e C states=yes no boot

AHCI na BIOS

Re: Bases para edição da DSDT

Posted: 15 Feb 2012, 16:36
by Cassio
Isso é um lamento ou um pedido de ajuda?

Se for pedido de ajuda, forneça mais informações, DSDT em uso, kextstat, kernel log, lista de processos, etc.

Não entendi o motivo do tal "script killall Quartz\ Debug", aqui esse processo não fica rodando a menos que eu abra /Developer/Applications/Performance\ Tools/Quartz\ Debug.app

Re: Bases para edição da DSDT

Posted: 15 Feb 2012, 17:29
by deantonibrito
Minha dsdt
[External Link Removed for Guests]

minhas capturas de IOREG
[External Link Removed for Guests]
[External Link Removed for Guests]

Essa foi a solução kill Quartz que encontrei para acelerar a interface
[External Link Removed for Guests]

Já tentei ligar o Cstates da Bios. (sim está incluído o C and P states=YES no boot)
Chquei a Bios para AHCI

já editei a dsdt algumas vezes e nada.

Muuuito obrigado mesmo
Espero que isso ajude a desvendar o mistério

grande abraço

Re: Bases para edição da DSDT

Posted: 15 Feb 2012, 18:27
by Cassio
Isso de desativar o "Beam Sync" me parece que só tem relação com o vídeo.

[External Link Removed for Guests]

[External Link Removed for Guests]

Se o problema for no vídeo também pode ter relação com AGPM [Local Link Removed for Guests]

Tente aplicar o patch HPET, você tem _STA = 0x0b no ioreg, deveria ser 0x0f.

Também pode tentar especificar 4 IRQs pro HPET [External Link Removed for Guests]

Re: Bases para edição da DSDT

Posted: 21 Feb 2012, 02:21
by deantonibrito
Obrigado mesmo pelas dicas Cassio.

Inseri os IRQS, mas na hora de aplicar o Patch deu mensagem de eero no compile:
[External Link Removed for Guests]

Tentei a sugestão de vídeo que você deu, porém nnao ficou claro pra mim oque fazer.
Jogo o arquivo LegacyAGPM pra dentro do extras? Edito algum meu já existente?

Estou achando que é vídeo Cassio.

Eu já havia editado o kext ApplePowermanagement com o vendor ID da GTX 285.

Descobri também que quando ele não reconhece a placa de vídeo o problema desaparece.

Espero estar quase chegando lá .. desculpe a ignorância

Obrigado pela ajuda.

abs

Re: Bases para edição da DSDT

Posted: 21 Feb 2012, 02:54
by Cassio
Esse erro é do patch HPET, não do IRQs. Você tem que ajustar o retorno do método _CRS, troque ATT3 pelo nome do objeto que tem os IRQs (não aparece na foto, geralmente é CRS ou BUF0).

Você tem que editar a LegacyAGPM antes de instalar, tá explicado no link que eu indiquei.

Re: Bases para edição da DSDT

Posted: 21 Feb 2012, 03:01
by deantonibrito
Ok. ioreg está mostrando 0xf..Hpet patch ok.

Restartei e não havia resolvido.

Porém depois editei o kext Applepowermanagement para Macpro 4,1 igual ao smbios, coloquei os valores threshold que você sugeriu no kext Legacy AGPM.kext e praticamente resolveu o problema!!!!

O teste que faço é o seguinte: ponho uma pasta grande pra copiar e vejo a resposta da interface fazendo uma rolagem pelos icones File/Edit/View/Go/Help do finder.

Antes era lento demais. Agora melhorou muito está quase 100%

O engraçado é que com algum outro aplicativo aberto em background ele fica 100%.
Se fica só o Finder aberto ele fica tipo 80% perfeito.
Será que devo alterar os valores High e Low do threshold para nunca entrar no state 2?

Obrigado mesmo pela paciência Cassio. Visitei todos os foruns gringos e há mais de 1 ano tento resolver isso.

Muito obrigado cara. Mesmo.

abs

Rodrigo

abs

Re: Bases para edição da DSDT

Posted: 21 Feb 2012, 15:11
by Cassio
Ou você usa LegacyAGPM, ou edita a AGPM original, não faça os 2 ao mesmo tempo. Se for usar legacy, deixe a original intacta.

Faça testes com os valores threshold e com perfis diferentes, mas use o tópico sobre AGPM para falar sobre o assunto, este é sobre DSDT patching.

Re: Bases para edição da DSDT

Posted: 21 Feb 2012, 18:33
by deantonibrito
Muito obrigado Cassio! Vou sim.
abraço
Rodrigo

Re: Bases para edição da DSDT

Posted: 01 Mar 2012, 05:26
by Jahworks
Gente, alguém tem o patch dsdt para a DG41WV??? to com o lion 10.7.3
=) :lol:

Re: Bases para edição da DSDT

Posted: 01 Mar 2012, 15:23
by Cassio
Leia o primeiro post, ele explica como fazer.

Você pode se basear no DG41RQ e DG41TY, não deve mudar muito.

Re: Bases para edição da DSDT

Posted: 01 Mar 2012, 16:53
by Jahworks
Cassio wrote:Leia o primeiro post, ele explica como fazer.

Você pode se basear no DG41RQ e DG41TY, não deve mudar muito.
Cassio, seguindo seus conselhos cheguei até aqui:

[External Link Removed for Guests] - DSDT LIMPA

[External Link Removed for Guests] - Peguei a dg41RQ

consegui rodar de boas so nao ta pegando restart e shutdown. =(

valeu ai mano!