Jump to content

Snow Leopard na ASUS Maximus Formula / P5E / P5K (entre outras)


Alex Novelli
 Share

35 posts in this topic

Recommended Posts

Snow Leopard na ASUS Maximus Formula / P5E / P5K (entre outras) ... Chipset: Intel X38/ICH9R

 

1º PASSO: Instalação do Snow Leopard via Empire EFI

Utilize o tutorial do nosso amigo oldnapalm:

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

 

2º PASSO: Aplicando o arquivo DSDT.aml e as kexts

Obs.: Pra quem está acostumado com o Windows, KEXT é a mesma coisa que DRIVER.

Os drivers extras são instalados na pasta "EXTRA/Extensions" (criada pelo Chameleon na partição do Snow ou na partição do EFI, de acordo com sua escolha no tutorial de instalação) e as kexts padrão do sistema ficam em "System -> Library -> Extensions".

 

O arquivo DSDT é um arquivo carregado pelo Chameleon substituindo a DSDT original da BIOS.

DSDT = Differentiated System Description Table, por ela o sistema operacional se comunica com os dispositivos... faz parte da http://pt.wikipedia.org/wiki/ACPI

Ele é carregado pelo Chameleon e não altera nada na BIOS da sua placa-mãe, portanto não existe nenhum tipo de risco de danos à sua BIOS.

 

A grande vantagem é que, você não precisará alterar as kexts originais do Mac, mantendo ele intacto.

 

Algumas kexts extras são necessárias, baixe elas e já aplique na pasta "EXTRA/Extensions":

(Se você seguiu o tutorial do oldnapalm no 1º PASSO, algumas dessas kexts já deverão estar instaladas)

AD1988bFix.kext por XyZ - Baixar

fakesmc.kext por Netkas - Baixar

LegacyAppleYukon2.kext por cVaD - Baixar

OpenHaltRestart.kext por Psystar - Baixar

OSXRestart.kext por Master Chief - Baixar

PlatformUUID.kext por Superhai - Baixar

 

OBS.: A PlatformUUID.kext não é mais necessária se utilizar o Chameleon 2.0 RC4 em diante, a função foi incorporada no bootloader.

 

Outro arquivo necessário na pasta EXTRA é o smbios.plist:

Abra o editor de texto, copie e cole este código e salve o arquivo com o nome smbios.plist na pasta EXTRA.

<?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>MacPro3,1</string>
	   </dict>
	   </plist>

 

Após isso, você terá que gerar o arquivo DSDT.aml utilizando o programa DSDT Patcher GUI (marque a opção "New HPET").

Ele será criado dentro da pasta Sessions/2010.

 

Abra o arquivo no editor DSDTSE e faça as seguintes alterações:

 

Adicione o device HDEF após o USB6 dentro de PCI0:

               Device (HDEF)
               {
                   Name (_ADR, 0x001B0000)
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x08)
                           {
                               "codec-id", 
                               Buffer (0x04)
                               {
                                   0x9B, 0x82, 0x43, 0x10
                               }, 

                               "layout-id", 
                               Buffer (0x04)
                               {
                                   0x0C, 0x00, 0x00, 0x00
                               }, 

                               "device-type", 
                               Buffer (0x17)
                               {
                                   "Analog Devices AD1988B"
                               }, 

                               "PinConfigurations", 
                               Buffer (0x24)
                               {
                                   /* 0000 */    0x30, 0x40, 0x21, 0x01, 0x10, 0x40, 0x11, 0x01, 
                                   /* 0008 */    0x40, 0x90, 0xA1, 0x01, 0x50, 0x30, 0x81, 0x01, 
                                   /* 0010 */    0x60, 0x10, 0x01, 0x01, 0x20, 0x90, 0xA0, 0x90, 
                                   /* 0018 */    0x80, 0xF1, 0x45, 0x01, 0x90, 0xF1, 0xC5, 0x01, 
                                   /* 0020 */    0x70, 0x60, 0x01, 0x01
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }

 

Remova os IRQs dos devices PIC e TMR:

				IRQNoFlags ()
						   {2}
					   IRQNoFlags ()
						   {0}

 

O IRQ do device RTC0 deve ter sido removido pelo DSDT_Patcher (por fassl) e adicionado ao device HPET (opção "-newHPET").

 

Adicione os C-states do MacPro3,1:

       Scope (_PR)
       {
           Processor (CPU1, 0x01, 0x00000810, 0x06)
           {
               ...
               Method (_CST, 0, NotSerialized)
               {
                   If (LAnd (And (CFGD, 0x01000000), LNot (And (TYPE, 0x10
                       ))))
                   {
                       Return (Package (0x02)
                       {
                           One, 
                           Package (0x04)
                           {
                               ResourceTemplate ()
                               {
                                   Register (FFixedHW, 
                                       0x00,               // Bit Width
                                       0x00,               // Bit Offset
                                       0x0000000000000000, // Address
                                       ,)
                               }, 

                               One, 
                               0x9D, 
                               0x03E8
                           }
                       })
                   }

                   If (And (TYPE, 0x0300))
                   {
                       If (And (CFGD, 0x20))
                       {
                           Return (Package (0x03)
                           {
                               0x02, 
                               Package (0x04)
                               {
                                   ResourceTemplate ()
                                   {
                                       Register (FFixedHW, 
                                           0x01,               // Bit Width
                                           0x02,               // Bit Offset
                                           0x0000000000000000, // Address
                                           ,)
                                   }, 

                                   One, 
                                   One, 
                                   0x03E8
                               }, 

                               Package (0x04)
                               {
                                   ResourceTemplate ()
                                   {
                                       Register (FFixedHW, 
                                           0x01,               // Bit Width
                                           0x02,               // Bit Offset
                                           0x0000000000000010, // Address
                                           ,)
                                   }, 

                                   0x02, 
                                   One, 
                                   0x01F4
                               }
                           })
                       }
                   }

                   If (And (CFGD, 0x20))
                   {
                       Return (Package (0x03)
                       {
                           0x02, 
                           Package (0x04)
                           {
                               ResourceTemplate ()
                               {
                                   Register (FFixedHW, 
                                       0x01,               // Bit Width
                                       0x02,               // Bit Offset
                                       0x0000000000000000, // Address
                                       ,)
                               }, 

                               One, 
                               One, 
                               0x03E8
                           }, 

                           Package (0x04)
                           {
                               ResourceTemplate ()
                               {
                                   Register (SystemIO, 
                                       0x08,               // Bit Width
                                       0x00,               // Bit Offset
                                       0x000000000000000C, // Address
                                       ,)
                               }, 

                               0x02, 
                               One, 
                               0x01F4
                           }
                       })
                   }

                   Return (Package (0x02)
                   {
                       One, 
                       Package (0x04)
                       {
                           ResourceTemplate ()
                           {
                               Register (FFixedHW, 
                                   0x01,               // Bit Width
                                   0x02,               // Bit Offset
                                   0x0000000000000000, // Address
                                   ,)
                           }, 

                           One, 
                           One, 
                           0x03E8
                       }
                   })
               }
           }
       }

       Scope (_PR)
       {
           Processor (CPU2, 0x02, 0x00000810, 0x06)
           {
               ...
               Method (_CST, 0, NotSerialized)
               {
                   Return (^^CPU1._CST ())
               }
           }
       }

       Scope (_PR)
       {
           Processor (CPU3, 0x03, 0x00000810, 0x06)
           {
               ...
               Method (_CST, 0, NotSerialized)
               {
                   Return (^^CPU1._CST ())
               }
           }
       }

       Scope (_PR)
       {
           Processor (CPU4, 0x04, 0x00000810, 0x06)
           {
               ...
               Method (_CST, 0, NotSerialized)
               {
                   Return (^^CPU1._CST ())
               }
           }
       }

 

Mude os IDs dos devices USB pelos do ICH10-R:

               Device (USB0)
               {
                   Name (_ADR, 0x001D0000)
                   ...
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x02)
                           {
                               "device-id", 
                               Buffer (0x04)
                               {
                                   0x34, 0x3A, 0x00, 0x00
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }

               Device (USB1)
               {
                   Name (_ADR, 0x001D0001)
                   ...
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x02)
                           {
                               "device-id", 
                               Buffer (0x04)
                               {
                                   0x35, 0x3A, 0x00, 0x00
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }

               Device (USB2)
               {
                   Name (_ADR, 0x001D0002)
                   ...
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x02)
                           {
                               "device-id", 
                               Buffer (0x04)
                               {
                                   0x36, 0x3A, 0x00, 0x00
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }

               Device (USB4)
               {
                   Name (_ADR, 0x001A0000)
                   ...
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x02)
                           {
                               "device-id", 
                               Buffer (0x04)
                               {
                                   0x37, 0x3A, 0x00, 0x00
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }

               Device (USB5)
               {
                   Name (_ADR, 0x001A0001)
                   ...
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x02)
                           {
                               "device-id", 
                               Buffer (0x04)
                               {
                                   0x38, 0x3A, 0x00, 0x00
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }

               Device (USB6)
               {
                   Name (_ADR, 0x001A0002)
                   ...
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x02)
                           {
                               "device-id", 
                               Buffer (0x04)
                               {
                                   0x39, 0x3A, 0x00, 0x00
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }

 

Mude o ID do device SATA pelo do ESB2 AHCI:

               Device (SATA)
               {
                   Name (_ADR, 0x001F0002)
                   ...
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x02)
                           {
                               "device-id", 
                               Buffer (0x04)
                               {
                                   0x81, 0x26, 0x00, 0x00
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }

 

Algumas correções usam o método DTGP, adicione-o ao bloco principal, pode ser logo após o primeiro "{" ou logo antes do último "}".

       Method (DTGP, 5, NotSerialized)
       {
           If (LEqual (Arg0, Buffer (0x10)
                   {
                       /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, 
                       /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                   }))
           {
               If (LEqual (Arg1, One))
               {
                   If (LEqual (Arg2, Zero))
                   {
                       Store (Buffer (One)
                           {
                               0x03
                           }, Arg4)
                       Return (One)
                   }

                   If (LEqual (Arg2, One))
                   {
                       Return (One)
                   }
               }
           }

 

PRONTO! Agora é só compilar o arquivo e aplicá-lo na pasta EXTRA.

 

Se você tiver essas kexts instaladas: NullCPUPowerManagement.kext, Disabler.kext (pasta Extra/Extensions ou do sistema) DEVE deletá-las.

 

Instale o Voodoo Monitor (para verificar após a reinicialização, se as temperaturas estão ok) e copie a kext dele para a pasta EXTRA/Extensions.

Para verificar se o aplicativo está funcionando corretamente, deixe aberto na aba "status". A frequência do CPU deve aumentar quando você roda algum programa, e voltar para o mínimo quando o CPU está ocioso.

 

Baixe o aplicativo Lizard e aplique as opções Built In Ethernet, Graphics Injection e, se sua placa de video for uma nVidia da série 7, aplique a opção 32bit Compatibility Mode.

 

Execute o aplicativo Kext Utility para reparar as permissões das kexts e limpar o cache das antigas.

 

3º PASSO: Reinicie o computador, ACESSE A BIOS e aplique essas configurações:

 

Main -> SATA Configuration -> Configure SATA as - AHCI

Advanced -> CPU Configuration -> C1E Support - Enabled

Advanced -> CPU Configuration -> Execute Disable Bit - Enabled

Advanced -> CPU Configuration -> Intel® SpeedStep Tech. - Enabled

Power -> ACPI 2.0 Support - Enabled

Power -> ACPI APIC Support - Enabled

 

OBS.: A atualização 10.6.2 pode ser aplicada tranquilamente na Maximus Formula.

 

PRONTO! Qualquer dúvida é só procurar na comunidade ou postar sua dúvida aqui no tópico.

Link to comment
Share on other sites

  • 2 weeks later...

Cara, ficou bem explicativo o seu tópico, acho que você poderia expandir para outras placas que já foram testadas.

 

Adicionei o fix do shutdown nos DSDTs, não precisa mais a OpenHaltRestart.

 

P5E (2 GB RAM) - http://www.mediafire.com/?mkvmyguaoy4

P5E Deluxe (4 GB RAM) - http://www.mediafire.com/?vm3ljd422yz

P5K Premium (4 GB RAM) - http://www.mediafire.com/?2mxzzymnyjx

Maximus Formula (4 GB RAM) - http://www.mediafire.com/?mffkyvgznyj

 

 

Shutdown:

 

Modifique o método _PTS para não fazer nada se o Arg0 for 0x05 (shutdown).

		Method (_PTS, 1, NotSerialized)
	{
		If (LEqual (Arg0, 0x05)) {}
		Else
		{
			... código original
		}
	}

Link to comment
Share on other sites

Cara, ficou bem explicativo o seu tópico, acho que você poderia expandir para outras placas que já foram testadas.

 

Adicionei o fix do shutdown nos DSDTs, não precisa mais a OpenHaltRestart.

 

P5E (2 GB RAM) - http://www.mediafire.com/?mkvmyguaoy4

P5E Deluxe (4 GB RAM) - http://www.mediafire.com/?vm3ljd422yz

P5K Premium (4 GB RAM) - http://www.mediafire.com/?2mxzzymnyjx

Maximus Formula (4 GB RAM) - http://www.mediafire.com/?mffkyvgznyj

 

 

Shutdown:

 

Modifique o método _PTS para não fazer nada se o Arg0 for 0x05 (shutdown).

		Method (_PTS, 1, NotSerialized)
	{
		If (LEqual (Arg0, 0x05)) {}
		Else
		{
			... código original
		}
	}

 

Que ótimo old, eu fiz essa alteração na minha DSDT e ja não estou usando o OpenHaltRestart também.

Como eu poderia expandir meu tópico para outras placas?

Abs

Link to comment
Share on other sites

Como eu poderia expandir meu tópico para outras placas?

Mudando o título e o texto, ao invés de dizer que é para Maximus Formula, coloca que é para placas ASUS Maximus Formula / P5E / P5K (entre outras). Os patches funcionam para todas as placas citadas no meu post anterior, talvez outras que não foram testadas.

Link to comment
Share on other sites

  • 2 weeks later...
Adicionei o fix do shutdown nos DSDTs, não precisa mais a OpenHaltRestart

 

Shutdown:

Modifique o método _PTS para não fazer nada se o Arg0 for 0x05 (shutdown).

		Method (_PTS, 1, NotSerialized)
	 {
		 If (LEqual (Arg0, 0x05)) {}
		 Else
		 {
			 ... código original
		 }
	 }

Fazendo essa alteração realmente funcionou sem o KEXT OpenHaltRestart mas eu perdi o recurso de voltar do Sleep na minha ASUS P6T vc testou na sua se o retorno do Sleep continua funcionando?

 

Queria agradecer ao Alex pq o código para o mudar o ID do SATA funcionou perfeitamente agora não preciso mais do Kext que removia os icones laranja dos HDs que eram tratados como HD externo.

 

Agora o único kext que uso é o FakeSMC. ;)

Link to comment
Share on other sites

  • 3 weeks later...

Amigao, pode me dar uma ajuda?

 

Tenho uma P5k e conseguir configurar tdo bonitinho, menos o boot...

Se eu entro pelo CD do PSY com o chameleon eh uma beleza, se eu entro pelo boot do think boot eh horrendo... como configuro o windows pra fazer dual boot com o mac? ou como arrumo o boot do think boot...

 

Obrigado pela ajuda!

Link to comment
Share on other sites

Nunca usei o Boot Think, recomendo instalar o Chameleon usando o myHack ou o Lizard. Veja o tópico sobre instalação via CD de boot.

 

 

Cara, em primeiro lugar, preciso agradecer a ajuda e a boa vontade que tem demonstrado ao me ajudar! a soceidade precisa de mais gente como vc!

 

Bom, continuando, vou anexar aqui o meu DSDT.

 

http://www.mediafire.com/?dnzgjk4mtoh

 

 

Nao sei se ajuda muito mas... Consegui instalar aqui o boot think, o chameleon, o ihack... etc. mas neles eu nao consigo dar o boot direito. Arrumei um cd com o boot do rebel EFI e quando rodo ele entra o audio, pelo menos.. antes eu tinha conseguido ate reconhecer o hd e etc, mas errei em algo.. sabe de onde o rebel efi puxa os arquivos?

 

obrigado mesmo!

Link to comment
Share on other sites

A sua placa mãe é exatamente igual à desse DSDT, pode baixar e colocar o dsdt.aml em /Extra

http://www.mediafire.com/?2mxzzymnyjx

 

Use o Chameleon 2.0 RC4 e apenas essas kexts em /Extra/Extensions (links no primeiro post)

AD1988bFix.kext

fakesmc.kext

LegacyAppleYukon2.kext

OSXRestart.kext

 

Configure o SMproductname como MacPro3,1 e configure a BIOS conforme explicado no primeiro post.

 

Aliás, o tópico do Alex está muito bem explicado, dê uma boa lida nele. As mudanças necessárias no DSDT já estão feitas no arquivo acima.

Link to comment
Share on other sites

Não sei, nunca usei duas placas de vídeo juntas. Acredito que ela não vá "fritar" só por estar ligada, sem ser usada. Não sei uma forma de "desligar pelo software".

 

sem nenhum soft para administra-la ela simplesmente vai ficar processando o nada ate que alguem a pare... e por isso meu pc ta esquentando mtoo! tem como desativar uma das portas PCI-express pelo DSDT?

Link to comment
Share on other sites

sem nenhum soft para administra-la ela simplesmente vai ficar processando o nada ate que alguem a pare... e por isso meu pc ta esquentando mtoo! tem como desativar uma das portas PCI-express pelo DSDT?

Nunca usei 2 placas, mas não acho que ela vá ficar "processando o nada ate que alguem a pare".

 

O problema do aquecimento pode ser outra coisa, dê uma lida nesse tópico

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

 

Sobre desligar a PCI-e pelo DSDT, não é possível pelo setup da BIOS?

 

EDIT: talvez usando o método desse tópico

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

outro exemplo

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

 

Para ICH9 veja na página 388 das especificações

http://www.intel.com/design/chipsets/datashts/316972.htm

PCI Express 2 Disable (PE2D) — R/W. Default is 0. When disabled, the link for this port is put into the link down state. 0 = PCI Express port #2 is enabled.

1 = PCI Express port #2 is disabled. NOTE: This bit must be set when Port 1 is configured as a x4 or a x2.

Link to comment
Share on other sites

 Share

×
×
  • Create New...