Jump to content

DSDT Editor e Patcher


el coniglio
 Share

28 posts in this topic

Recommended Posts

Estou disponibilizando o DSDT Editor, feito por mim com a ajuda do oldnapalm.

 

Para download e mais informações, confira esse tópico

 

Dentro do pacote existe uma pasta com alguns exemplos e um rtf que explica a sintaxe dos comandos.

 

Segue um screenshot:

dsdteditor.png

 

Seguem alguns exemplos de como criar seu próprio patch:

 

1. Verificas todos os scopes com o nome _PR e remove as linhas de Alias() (cpus=1 fix)

into_all scope label _PR code_regex Alias\s\([^\n]+\n removeall_matched

 

2. Dentro do método _PTS, substitui o código por um que usa um valor capturado com regex (shutdown fix)

into method label _PTS code_regex_not LEqual\s\(Arg0,\s0x05\) code_regex ^((?:.|\n)*)$ replace_matched
begin
       If (LEqual (Arg0, 0x05)) {}\n
       Else\n
       {\n
%1
       }\n
end

 

3. Em um device com um _ADR específico, adiciona um código (orange AHCI hd icon fix)

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

 

4. Em um device com um _HID específico, adiciona código

into device label HDEF parent_hid PNP0A08 remove_entry;
into device name_hid PNP0A08 insert
begin
Device (HDEF)\n
{\n
Name (_ADR, 0x001B0000)\n
Method (_DSM, 4, NotSerialized)\n
{\n
	Store (Package (0x08)\n
		{\n
			"codec-id", \n
			Buffer (0x04)\n
			{\n
				0x9B, 0x82, 0x43, 0x10\n
			}, \n
\n
			"layout-id", \n
			Buffer (0x04)\n
			{\n
				0x0C, 0x00, 0x00, 0x00\n
			}, \n
\n
			"device-type", \n
			Buffer (0x17)\n
			{\n
				"Analog Devices AD1988B"\n
			}, \n
\n
			"PinConfigurations", \n
			Buffer (0x24)\n
			{\n
				/* 0000 */	0x30, 0x40, 0x21, 0x01, 0x10, 0x40, 0x11, 0x01, \n
				/* 0008 */	0x40, 0x90, 0xA1, 0x01, 0x50, 0x30, 0x81, 0x01, \n
				/* 0010 */	0x60, 0x10, 0x01, 0x01, 0x20, 0x90, 0xA0, 0x90, \n
				/* 0018 */	0x80, 0xF1, 0x45, 0x01, 0x90, 0xF1, 0xC5, 0x01, \n
				/* 0020 */	0x70, 0x60, 0x01, 0x01\n
			}\n
		}, Local0)\n
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
	Return (Local0)\n
}\n
}\n
end

 

5. Um patch um pouco mais complexo (HPET/RTC/PIC/TMR irqs fix)

into device name_hid PNP0000 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;
into device name_hid PNP0100 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} store_%8;
into device name_hid PNP0100 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;
into device name_hid PNP0B00 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} store_%9;
into device name_hid PNP0B00 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;
into device name_hid PNP0103 code_regex_not IRQNoFlags code_regex Name\s\(([^,]+),\sResourceTemplate\s\(\)\n\s+\{((?:.|\n)*)\}\) replace_matched
begin
Name (%1, ResourceTemplate ()\n
				{\n
					IRQNoFlags ()\n
						{%8}\n
					IRQNoFlags ()\n
						{%9}\n
%2
})\n
end

 

Créditos: o componente editor http://code.google.com/p/jsyntaxpane/

IASL, da Intel

Feito em Java

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Já tem um patch pra ALC883 na pasta patches.

 

Se o seu DSDT já tem device HDEF, aplique apenas o patch ALC883.

 

Se tem device AZAL, aplique os patches "AZAL to HDEF" e o ALC883.

 

Se não tem AZAL nem HDEF, aplique o HDEF e o ALC883.

 

Outros patches que pode utilizar:

- RTC (elimina a kext LegacyAppleRTC)

- SpeedStep e LPC (elimina Disabler, NullCPUPowerManagement e SleepEnabler)

- talvez precise do HPET (se tiver KP "no HPET available")

- IRQs (se tiver problema de lentidão com o SpeedStep

Link to comment
Share on other sites

Já tem um patch pra ALC883 na pasta patches.

 

Se o seu DSDT já tem device HDEF, aplique apenas o patch ALC883.

 

Se tem device AZAL, aplique os patches "AZAL to HDEF" e o ALC883.

 

Se não tem AZAL nem HDEF, aplique o HDEF e o ALC883.

 

Outros patches que pode utilizar:

- RTC (elimina a kext LegacyAppleRTC)

- SpeedStep e LPC (elimina Disabler, NullCPUPowerManagement e SleepEnabler)

- talvez precise do HPET (se tiver KP "no HPET available")

- IRQs (se tiver problema de lentidão com o SpeedStep

 

OK, Old uso OS Retail (EFI) devo fazer os procedimentos nela, certo?

 

Hoje tenho as seguintes kexts na minha EFI:

capturadetela20100716s1.png

Quais alem do Audio, eu poderia remover e aplicar DSDT?

Seguinte, os DSDTs gerados tem que estar dentro da EFI na pasta Extra, correto?

 

Aguardo

 

Marques

Link to comment
Share on other sites

Só vai ficar a fakesmc de todas que você tem aí.

 

Como o Maldon respondeu no outro tópico, vai precisar da legacyHDA pra ALC883, e uma modificação no binário da AppleHDA original (veja no tópico do update 10.6.4).

 

Sobre o restart, você pode usar o Chameleon RC5 ou outro bootloader com o fix. O shutdown pode ser consertado por DSDT, mas o que tem no editor é apenas para ASUS, estamos testando o da Gigabyte.

 

O dsdt.aml deve estar na pasta Extra da partição do bootloader, se você usa o Chameleon na EFI, é nela.

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...

el coniglio... poderia implementar o opção de abas para abrir mais de 1 arquivos?

el coniglio... poderia implementar também a opção de mover código pela a arvore?

el coniglio... poderia melhorar a opçãp "insert"...tipo adicionar o DTGP em qualquer parte e a mesma forma os devices...assim mantendo o dsdt mais organizado.

 

falow

Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...
OK, Old uso OS Retail (EFI) devo fazer os procedimentos nela, certo?

 

Hoje tenho as seguintes kexts na minha EFI:

capturadetela20100716s1.png

Quais alem do Audio, eu poderia remover e aplicar DSDT?

Seguinte, os DSDTs gerados tem que estar dentro da EFI na pasta Extra, correto?

 

Aguardo

 

Marques

 

Oque devo fazer depois que aplico a Patch de Audio ALC662? Pois aplico e mesmo assim meu Audio fica horrivel travando e de vez enquando não abre.

Link to comment
Share on other sites

Oque devo fazer depois que aplico a Patch de Audio ALC662? Pois aplico e mesmo assim meu Audio fica horrivel travando e de vez enquando não abre.

 

isso é a sua pasta Extra?

blinkq.gif

 

pro audio vc precisa do DSDT com o patch(ALC662) + Legacy

e a partir do 10.6.3 vc vai precisar tb da Applehda mod ou usar a Apple Hda 10.6.2

FICANDO

DSDT com o patch(ALC662) + Legacy + AppleHda 10.6.2

Link to comment
Share on other sites

Ele não tá querendo funcionar aqui nem com reza braba.

 

Eu abro o programa, vou em DSL, mando extrair pro sistema, ae ele cria um processo que come 100% de um Core, e nao faz simplesmente nada ¬¬ encerro o programa, mas o processo continua rodando... mado forçar a finalização, e mesmo assim nao adianta;;; Ja fiz limpeza no sistema com o Cleanmymac, e nada..

 

No meu netbook funfava direitinho.. no Desktop, ta com isso :wacko:

Link to comment
Share on other sites

Extraia o DSDT e "upa" que eu aplico pra vc

 

qual a sua placa mãe, processador, etc?

 

rode esse comando no terminal

perl -e 'open(CMD, "ioreg -lw0 \| grep DSDT|") or die; while(<CMD>) { chomp; if($_ =~ /\"DSDT\.?\d?\"=<([^>]*)>/) { $buff = $1; open(PIP, "|xxd -r -p > dsdt.aml") or die; print PIP "$1"; } }'

o DSDT vai ser gerado na sua pasta de usuário

Link to comment
Share on other sites

MaLd0n

 

Obrigado irmao. Eu fiz o procedimento, apesar que demorou pra caramba, mas gerou...

 

vou fazer de novo só que pelo programa... estranho que no meu netbook com uma configuração inumeras vezes inferior ao do desktop, gerou tao rapido... e no desktop demora pra caramba .... rsrss

 

vai entender.. :wacko:

Link to comment
Share on other sites

O patch DSDT é para ser usado com a AppleHDA e uma legacyHDA para o seu codec.

 

Para usar a VoodooHDA não use o patch, pode até atrapalhar. O patch IRQs pode ajudar no caso dos ruídos.

 

Ola Oldnapalm,

Tentarei aplicarei a patch do IRQ na DSDT que o Mald0n editou para mim com as fixs obrigatorias.

Link to comment
Share on other sites

Não precisa, ele já aplicou.

 

Sim Old ja foi aplicado sim.

Old o Mald0n esta me dando uma mão e dois braços no meu DSDT MSi CR400 e estamos tendo problema com ApplePowerManagament = HPET.

E o Mald0n pediu que eu solicitasse a sua ajuda tambem nesta Edição do DSDT.

O Topico que estamos abordando o assunto.

Então gentilemente peço sua ajuda para que possamos tentar resolver esse problema com este DSDT.

Link to comment
Share on other sites

Não tem a opção HPET no setup da BIOS?

 

Se não tem jeito sem a NullCPUPM, você pode usar a VoodooPowerMini para o SpeedStep.

 

Para o áudio tente outras versões da VoodooHDA

http://code.google.com/p/voodoohda/downloads/list

 

Aqui tem versões mais antigas

http://nawcom.com/osx86/files/10.6/Audio/VoodooHDA/

 

Não existe uma kext legacy pronta para o seu codec em laptop (ao menos eu não encontrei), você teria que fazer uma a partir de um codec dump do Linux

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

Link to comment
Share on other sites

 Share

×
×
  • Create New...