Jump to content

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


Pimentel
 Share

272 posts in this topic

Recommended Posts

Olá

De nada... precisando estamos ai...

No momento estou parado, muitas coisas para fazer na vida real(família, estudos...)kkkkkkk, mas quando tiver um tempo, vou procurar me informar mais e tentar atualizar esse guia quantas vezes eu puder... Não só esse, mas outro que eu tenho.

  • Like 1
Link to comment
Share on other sites

Jorge, o patch LPC para IvyBridge está no link que te passei: http://olarila.com/forum/patches.php

É só procurar amigo...

into method label _DSM parent_adr 0x001F0000 remove_entry;
into device name_adr 0x001F0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    Store (Package (0x02)\n
        {\n
            "device-id", \n
            Buffer (0x04)\n
            {\n
                0x57, 0x1E, 0x00, 0x00\n
            }\n
        }, Local0)\n
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
    Return (Local0)\n
}
end

Tente a DSDT que editei para você:DSDT.aml.zip

 

 

  • Like 2
Link to comment
Share on other sites

este patch ya nao serve para 10.9 :(  algumas boards tem que injectar desta manera, com name, ioname, compatible, si nao o kext nao lee, aqui um exemplo do meu LPC

 

               Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    Store (Package (0x0C)
                        {
                            "device-id", 
                            Buffer (0x04)
                            {
                                 0x02, 0x3B, 0x00, 0x00
                            }, 
                            "compatible", 
                            Buffer (0x0D)
                            {
                                "pci8086,3b02"
                            }, 
                            "IOName", 
                            Buffer (0x0D)
                            {
                                "pci8086,3b02"
                            }, 
                            "name", 
                            Buffer (0x0D)
                            {
                                "pci8086,3b02"
                            }, 
                            "subsystem-id", 
                            Buffer (0x04)
                            {
                                 0x01, 0x50, 0x00, 0x00
                            }, 
                            "subsystem-vendor-id", 
                            Buffer (0x04)
                            {
                                 0x58, 0x14, 0x00, 0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }
  • Like 3
Link to comment
Share on other sites

Olá

 

Usando a lógica... De certo que não, pois Allan afirmou desconhecer esse detalhe que iFire propôs...

 

Ele patcheou com aquele patch que ele mesmo colocou, vindo daqui: http://olarila.com/forum/patches.php

Amigo. Esta DSDT do Allan  não carregou a kext AppleLPC. E este patch do iFIRE, eu tentei aplicar, mas não acontece nada no programa "MaciASL". 

Eu copiei daqui do site e colei no programa, mas nada acontece. Como, o "antes" e o "depois", não me mostra como vai ficar a mudança na DSDT. Eu também não entendo muito de DSDT.

Link to comment
Share on other sites

Então amigo, não é assim, você tem que procurar o LPC na DSDT.

 

Vou te ensinar a "pescar", vamos lá:

 

Baixe o IOReg. e coloque ele na pasta Aplicativos.

 

Abra ele e pesquise LPCB, mas siga a numeração que coloquei na imagem abaixo, 1,2 e 3.

Screen Shot 2014-02-18 at 6.48.22 PM.png

 

E depois que achar coloque a imagem aqui.

  • Like 2
Link to comment
Share on other sites

A julgar pela imagem, sua LPC está sendo reconhecida, mas não carregada, então vamos aplicar o que o iFire nos falou...

 

1º Notou que quando você digitou LPCB, no canto esquerdo tem uma linha de endereços? então ali está a resposta, procure na sua DSDT o device LPCB.

post-1145065-0-93972700-1392761053.png

 

Vou te ajudar de outra vez, veja a imagem:

Screen Shot 2014-02-18 at 7.08.24 PM.png

 

Agora você ja tem meio caminho andado, no LPCB, procure pelo metodo _DSM.

 

E volte com os resultados.

Link to comment
Share on other sites

Opa isso cara esta indo bem, agora o que vamos fazer?

 

Apague este metodo o insira o que o iFire recomendou:

Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                {
                    Store (Package (0x0C)
                        {
                            "device-id", 
                            Buffer (0x04)
                            {
                                 0x02, 0x3B, 0x00, 0x00
                            }, 
                            "compatible", 
                            Buffer (0x0D)
                            {
                                "pci8086,3b02"
                            }, 
                            "IOName", 
                            Buffer (0x0D)
                            {
                                "pci8086,3b02"
                            }, 
                            "name", 
                            Buffer (0x0D)
                            {
                                "pci8086,3b02"
                            }, 
                            "subsystem-id", 
                            Buffer (0x04)
                            {
                                 0x01, 0x50, 0x00, 0x00
                            }, 
                            "subsystem-vendor-id", 
                            Buffer (0x04)
                            {
                                 0x58, 0x14, 0x00, 0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
            }

Você pode também, apenas selecionar o método e colar este.

 

Compile e veja se não tem erros. Coloque onde deve, reinicie e veja se foi carregado.

Link to comment
Share on other sites

Olá

Eu sei que o ensinamento não é para mim, mas esse teu mini-guia está muito bom...

Se você quiser pode até criar um guia falado sobre essas edições de DSDT... ajudará e muito os usuários do fórum... Vivendo e aprendendo :)
 

Link to comment
Share on other sites

Não pude responder ontem pois fui assistir um filme com minha esposa hehe

 

Mas voltando...

 

Perfeito Jorge, que bom que este método deu certo para você.

 

E apenas uma correção, quando eu falei para você compilar, não seria com códigos no Terminal, é clicar na opção "Compile" do MaciASL, veja:

Screen Shot 2014-02-19 at 6.31.48 PM.png

 

Se a janela aparecer sem nada, é porque está tudo certo.

 

E Pimentel já estou criando um guia sobre DSDT+IOReg. 

 

Flw

  • Like 1
Link to comment
Share on other sites

Finalmente trago a explicação do "Plugin-type", essa materia faz parte da explicação do XNU escrito por Piker Alpha. Por isso todo o merito é dele, a unica coisa que fiz foi traduzir para um melhor entendimento.

 

Explicação:

 

Apple utiliza um _DSM ( em tradução livre seria: Dispositivo Método Específico) em uma de suas tabelas ACPI para acionar plugins adicionais para carregar (X86PlatformPlugin.kext e X86PlatformShim.kext). E ainda temos de definir essa propriedade na SSDT ( o que é gerado por padrão com o script), caso contrário, os plugins não serão carregados e você acaba vendo este erro em system.log:

ACPI_SMC_PlatformPlugin::start – waitForService(resourceMatching(AppleIntelCPUPowerManagement) timed out
WARNING: IOPlatformPluginUtil : getCPUIDInfo: this is an unknown CPU model 0x3c — power management may be incomplete or unsupported

Um ponto em levar em consideração, é que quando está sendo usado o XNU, já não é necessário ter a kext ACPI_SMC_PlatformPlugin carregado. Isto também significa que as propriedade suportados Features/Stepper do CPU não será definido, mas é preciso definir plugin-type, ou você receberá o erro acima.

 

Pimentel, se for da sua vontade, pode deletar este post e incluir no seu topico, talvez com suas palavras.

 

Abraços.

Link to comment
Share on other sites

Olá

 

Acho que vou deixar isso ai mesmo... ainda não tenho tantas informações acerca disso para simplesmentea adicionar no guia e depois não saber explicar acerca disso...

 

Algumas perguntas:

 

1-Esse plugin-type é adicionado no método _DSM ou é adicionado nas kexts X86PlatformPlugin, X86PlatformShim

 

2-Se esse plugin_type já é definido na SSDT então não há a necessiadade de adiciona-los manualmente certo?

 

Agreadeço desde já pela explicação Allan. Obrigado por falar acerca disso...

 

Abraços.

Link to comment
Share on other sites

 Share

×
×
  • Create New...