Jump to content
InsanelyMac Forum
el coniglio

DSDT Editor e Patcher

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

Share this post


Link to post
Share on other sites
Advertisement

Show de bola coniglio!

Agora to precisando de uma maozinha aqui, ainda estou a desenvolver um ACL883 pro meu Hack, acho que nao to sabendo aplicar o metodo, pode dar uma ajuda ae.

 

MArques

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
...assim mantendo o dsdt mas organizado.

WoWsmilegu.png

 

Eu gostaria de pedir uns fixs de alguns Warnings, sei que não vai fazer diferença nenhuma na pratica, mas mts gostariam disso.

yel06.png

Share this post


Link to post
Share on other sites
kkkkkk, jogando areia como sempre :-p

 

valeu :)

 

Nops

eu gostei dessa

...assim mantendo o dsdt mas organizado.

 

wowlf.png

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
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

Share this post


Link to post
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.

Pode tentar aplicar o patch "IRQs".

 

Você está usando AppleHDA ou VoodooHDA?

Share this post


Link to post
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:

Share this post


Link to post
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

Share this post


Link to post
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:

Share this post


Link to post
Share on other sites
Pode tentar aplicar o patch "IRQs".

 

Você está usando AppleHDA ou VoodooHDA?

 

Olá Old, Estou usando VoodooHDA

Share this post


Link to post
Share on other sites
Olá Old, Estou usando VoodooHDA

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.

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

A principal diferença:

 

o seu

						Memory32Fixed (ReadWrite,
						0x00000000,		 // Address Base
						0x00000000,		 // Address Length
						)

 

os outros

						Memory32Fixed (ReadWrite,
						0xFED00000,		 // Address Base
						0x00000400,		 // Address Length
						)

 

Tenta com os valores "padrão"

dsdt.aml.zip

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.



×