oldnapalm Posted April 15, 2010 Share Posted April 15, 2010 Tópico original: http://www.insanelymac.com/forum/index.php?showtopic=181631 Recomendo a leitura do tópico Dicas sobre gerenciamento de energia http://www.insanelymac.com/forum/index.php?showtopic=213576 Para que a kext AppleIntelCPUPowerManagement funcione corretamente, é necessário que sua BIOS tenha os objetos _CST (C States), _PSS (Performance Supported States) e _PSD (P-State Dependency) na tabela SSDT. Certamente não é regra, mas nas poucas placas mãe que observei, percebi as seguintes coincidências: | _CST | _PSS | _PSD | Primeiro CPU | ID do LPC compatível ----------------------+------+------+------+--------------+--------------------- ASUS P5* (BIOS AMI) | não | sim | sim | CPU1 | sim ----------------------+------+------+------+--------------+--------------------- Gigabyte (BIOS AWARD) | não | não | não | CPU0 | não Para confirmar quais métodos sua placa possui, você pode usar tentativa e erro, inserindo um objeto por vez na tabela DSDT e verificando se funciona, ou fazer o procedimento explicado abaixo, utilizando o Linux. Observe que não tem problema se adicionar um objeto na tabela DSDT que já exista na SSDT. Os P-States, por exemplo, em algumas placas ASUS já estão presentes, basta adicionar os C States para que o SpeedStep funcione. Porém funciona com apenas 2 P-States (o máximo e o mínimo), então se quiser pode adicionar mais P-States no DSDT. O seguinte comando pode ser executado no Linux para extrair todas as tabelas ACPI mkdir ACPI && dmesg | perl -we '$n=0; while (<>) { if (($t,$a,$l,$o) = (/^[^a-zA-Z]*ACPI: ([-._A-Z0-9]{4,4}) +([0-9A-F]{8,8}), ([0-9A-F]{4,4})+(?:\s*\(([^)]+))?/)) { $o && $o=~s/[^-._a-zA-Z0-9]+/-/g; ($cmd="acpidump -a $a -l $l > \"ACPI/${t}".($o?"_$o":"").".aml\""); print "Running command: \"$cmd\"\n"; system($cmd); ++$n; } } die("No match") unless $n;' && zip -r ACPI-Tables.zip ACPI Se o SpeedStep não funciona nativamente, é provável que sua BIOS não tenha os C States, então você precisa adicionar os seguintes métodos: No primeiro CPU (pode ser CPU0 ou CPU1, dependendo da BIOS) Method (_CST, 0, NotSerialized) { Return (Package (0x02) { One, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x01, // Bit Width 0x02, // Bit Offset 0x0000000000000000, // Address 0x01, // Access Size ) }, One, 0x9D, 0x03E8 } }) } No segundo CPU (pode ser CPU1 ou CPU2, dependendo da BIOS) Method (_CST, 0, NotSerialized) { Return (Package (0x04) { 0x03, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x01, // Bit Width 0x02, // Bit Offset 0x0000000000000000, // Address ,) }, One, Zero, 0x03E8 }, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x08, // Bit Width 0x00, // Bit Offset 0x0000000000000414, // Address ,) }, 0x02, One, 0x01F4 }, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x08, // Bit Width 0x00, // Bit Offset 0x0000000000000415, // Address ,) }, 0x03, 0x55, 0xFA } }) } Nos demais CPUs (se existirem) adicione uma referência ao _CST do segundo CPU (lembre que pode ser CPU1 ou CPU2, dependendo da BIOS) Method (_CST, 0, NotSerialized) { Return (^^CPU1._CST ()) } Adicione o método _PSD apenas no primeiro CPU Method (_PSD, 0, NotSerialized) { Return (Package (0x05) { 0x05, Zero, Zero, 0xFC, 0x04 }) } Nos demais CPUs, adicione uma referência ao _PSD do primeiro CPU Method (_PSD, 0, NotSerialized) { Return (^^CPU0._PSD ()) } Para o método _PSS você precisa saber o número de P-States do seu CPU e os valores de FID e VID de cada P-State. Para obter estes dados você pode usar o programa PStateChanger (link para download no tópico original, veja no início do post). Adicione apenas no primeiro CPU Method (_PSS, 0, NotSerialized) { Return (Package (0x0N) // N = número de P-States { Package (0x06) { Zero, Zero, 0x10, 0x10, 0xFFVV, // FF = FID, VV = VID Zero // primeiro P-State }, Package (0x06) { Zero, Zero, 0x10, 0x10, 0xFFVV, // FF = FID, VV = VID One // segundo P-State }, Package (0x06) { Zero, Zero, 0x10, 0x10, 0xFFVV, // FF = FID, VV = VID 0x02 // terceiro P-State }, Package (0x06) { Zero, Zero, 0x10, 0x10, 0xFFVV, // FF = FID, VV = VID 0x03 // quarto P-State } }) } Nos demais CPUs, adicione uma referência ao _PSS do primeiro CPU Method (_PSS, 0, NotSerialized) { Return (^^CPU0._PSS ()) } Outra coisa necessária para que o gerenciamento de energia nativo funcione, é que a kext AppleLPC esteja carregada. Se a sua placa mãe tem um dispositivo LPC com ID compatível, a kext será carregada normalmente. Caso contrário, use o zhell's trick para mudar o ID. Adicione no device LPC (endereço 0x001F0000) Method (_DSM, 4, NotSerialized) { Store (Package (0x02) { "device-id", Buffer (0x04) { 0x18, 0x3A, 0x00, 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Para finalizar, configure o SMproductname como MacPro3,1 ou MacPro4,1 de acordo com o CPU. Link to comment Share on other sites More sharing options...
Carlos Paixao Posted June 4, 2010 Share Posted June 4, 2010 Old, a minha placa tb eh uma GA-P35-DS3, assim como a do MaLd0n. Eu nunca mexi com speedstep ou dsdt patching, entao eu sou um leigo nisso! Depois que eu atualizei para o 10.6.3, meu sleep nao funciona mais. Na verdade, para mim nem faz falta (mas realmente nao funciona). Meu processador eh um E6750 com OC a 3.2 GHZ, e ele fica nativo a 19 celsius. O max que ele chega eh aos 40 graus, mesmo assim, quando esta full e renderizando no Final Cut. Para consertar o Sleep vai ser preciso fazer DSDT patching?? Link to comment Share on other sites More sharing options...
oldnapalm Posted June 4, 2010 Author Share Posted June 4, 2010 As placas com ICH9 sempre tiveram problema no sleep, se na sua funcionava até o 10.6.2 imagino que usava uma IOUSBFamily modificada. Pode consertar pelo DSDT, mas não com o SpeedStep, isso é outra coisa. O patch do sleep é esse http://www.insanelymac.com/forum/index.php?showtopic=215591 Sobre as temperaturas que você citou, acho difícil um CPU funcionar a temperaturas tão baixas, provavelmente seu tjmax esteja errado. Leia a respeito nesse tópico http://www.insanelymac.com/forum/index.php?showtopic=213576 Link to comment Share on other sites More sharing options...
Carlos Paixao Posted June 4, 2010 Share Posted June 4, 2010 As placas com ICH9 sempre tiveram problema no sleep, se na sua funcionava até o 10.6.2 imagino que usava uma IOUSBFamily modificada. Pode consertar pelo DSDT, mas não com o SpeedStep, isso é outra coisa. O patch do sleep é esse http://www.insanelymac.com/forum/index.php?showtopic=215591 Sobre as temperaturas que você citou, acho difícil um CPU funcionar a temperaturas tão baixas, provavelmente seu tjmax esteja errado. Leia a respeito nesse tópico http://www.insanelymac.com/forum/index.php?showtopic=213576 O app que eu uso para monitorar as temperaturas é o Temperature Monitor... Link to comment Share on other sites More sharing options...
oldnapalm Posted June 6, 2010 Author Share Posted June 6, 2010 O app que eu uso para monitorar as temperaturas é o Temperature Monitor... O "specified upper limit" está correto? Link to comment Share on other sites More sharing options...
jwagnervaz Posted June 14, 2010 Share Posted June 14, 2010 Não sei se entendi, mas isso seria um tutorial de como fazer o SO, reconhecer os Cores do processador, e gerenciar o fator de multiplicação tal qual o Windows faz? ____ Se for isso como fazer meu Leopard, 10.5.8 reconhecer corretamente meu Quad core Q8400? Link to comment Share on other sites More sharing options...
oldnapalm Posted June 14, 2010 Author Share Posted June 14, 2010 Não é para reconhecer os cores do CPU, isto ele já faz normalmente, o patch é para que ele gerencie os multiplicadores (frequência) e voltagem do CPU de acordo com a utilização. Como fazer é o que está explicado no primeiro post. Os passos iniciais estão nesse outro tópico http://www.insanelymac.com/forum/index.php?showtopic=215767 Link to comment Share on other sites More sharing options...
MTavares Posted June 21, 2010 Share Posted June 21, 2010 Você tentou mudar o model identifier? Eu sempre usei MacPro3,1. Essa mudança no Model Identifier pode ser feita pelo Lizard ou tem que editar o DSDT? Link to comment Share on other sites More sharing options...
oldnapalm Posted June 21, 2010 Author Share Posted June 21, 2010 Essa mudança no Model Identifier pode ser feita pelo Lizard ou tem que editar o DSDT? Ou pelo Lizard, ou editando o arquivo smbios.plist manualmente. Link to comment Share on other sites More sharing options...
MTavares Posted June 21, 2010 Share Posted June 21, 2010 Vou tentar o Lizard. É que eu atualizei meu Acer pro Snow 10.6.4 e voltei a ter problemas com temperatura (entre 55º e 58ºC ocioso) e vou tentar usar o AppleIntelCPUPowerManagement.kext nativo pra ver se baixa. Link to comment Share on other sites More sharing options...
oldnapalm Posted June 21, 2010 Author Share Posted June 21, 2010 Para notebook use "MacBookPro5,1", é o que eu uso no meu Acer, veja no link da assinatura. Os laptops Acer normalmente não precisam mudança no DSDT para funcionar o SpeedStep nativo, basta acertar o model identifier. Link to comment Share on other sites More sharing options...
MTavares Posted June 21, 2010 Share Posted June 21, 2010 Só mais uma dúvida: A mudança manual eu posso fazer pelo TextEditor mesmo? Depois posto os resultados. Link to comment Share on other sites More sharing options...
oldnapalm Posted June 21, 2010 Author Share Posted June 21, 2010 Pode, mas como o usuário não tem permissão para gravar o arquivo, você precisa rodar o editor como root (sudo), ou copiar o arquivo para a mesa, modificar e depois substituir o da pasta Extra. Link to comment Share on other sites More sharing options...
MTavares Posted June 21, 2010 Share Posted June 21, 2010 Bicho, eu fiz a instalação usando o Empire EFI, portanto não tenho o smbios.plist na pasta Extra. E agora? Link to comment Share on other sites More sharing options...
oldnapalm Posted June 21, 2010 Author Share Posted June 21, 2010 Cria um novo <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>SMproductname</key> <string>MacBookPro5,1</string> </dict> </plist> Link to comment Share on other sites More sharing options...
MTavares Posted June 21, 2010 Share Posted June 21, 2010 Criei e joguei na pasta Extra, mas agora não tá dando boot. Quer dizer ta dando boot porque eu vejo ele na rede e acesso os arquivos, mas a tela fica no startup (reloginho rodando) e não aparece nada. E não tá dando entrando na BIOS pra dar boot pelo CD... Link to comment Share on other sites More sharing options...
oldnapalm Posted June 21, 2010 Author Share Posted June 21, 2010 Faz o boot com -s e remove o arquivo mount -uw / rm /Extra/smbios.plist Link to comment Share on other sites More sharing options...
MTavares Posted June 21, 2010 Share Posted June 21, 2010 Consegui dar boot com o smbios.plist na pasta Extra, identificou como MacBookPro 5,1 mas não tá funcionando restart, shutdown e nem a fan... Link to comment Share on other sites More sharing options...
oldnapalm Posted June 21, 2010 Author Share Posted June 21, 2010 Qual o seu Acer? Antes do 10.6.4 a temperatura estava normal? Você usava VoodooPowerMini? Link to comment Share on other sites More sharing options...
MTavares Posted June 21, 2010 Share Posted June 21, 2010 É o 5720. Com as kexts ficava em torno de 60ºC ocioso. Antes do 10.6.4 eu tava usando o 10.5.8 e rodava na casa dos 50º Instalei a kext AppleACPIThermal do Kext.com mas não fez diferença. Essa kext tem que ser instalada direto na pasta extensions ou tem que ficar embutida no ACPIPlataform? Link to comment Share on other sites More sharing options...
oldnapalm Posted June 22, 2010 Author Share Posted June 22, 2010 Sim, mas no 10.5.8 você usava o que para SpeedStep? VoodooPower ou vanilla? Está usando alguma disabler (nullCPUPM) no 10.6.4? Link to comment Share on other sites More sharing options...
MTavares Posted June 22, 2010 Share Posted June 22, 2010 Tando 10.5.8 quanto no 10.6.4 eu usava o VoodooPowerMini e a Disabler que você disponibilizou no Topico do seu 5920 Link to comment Share on other sites More sharing options...
oldnapalm Posted June 22, 2010 Author Share Posted June 22, 2010 Você está enganado, no tópico do 5920 não tem VoodooPowerMini nem Disabler. Link to comment Share on other sites More sharing options...
MTavares Posted June 22, 2010 Share Posted June 22, 2010 Tem razão. É do tópico Dicas sobre gerenciamento de energia... foi mal. A disabler que eu to usando é essa: Snow Leopard (NullCPUPowerManagement.kext): http://www.mediafire.com/?uwvnvztwtna E a VoodooPowerMini é a do superhai. To pensando em colocar o AppleACPIThermal dentro do AppleACPIPlataform, mas to com medo de dar zica... Ou então instalar a VoodooPowerACPI (essa kext é para substituir a AppleACPIPlataform?) o que você acha? Link to comment Share on other sites More sharing options...
oldnapalm Posted June 22, 2010 Author Share Posted June 22, 2010 Você tentou deixar sem nenhuma destas kexts? Em dois Acers que eu instalei (5920 e 3690) o SpeedStep nativo funciona sem alterações no DSDT, basta usar o identificador MacBookPro5,1. Link to comment Share on other sites More sharing options...
Recommended Posts