Existem pelo menos duas opções para se ativar o áudio no Hackintosh: usando a VoodooHDA.kext ou a AppleHDA.kext. Cada uma com suas peculiaridades, bem como vantagens e desvantagens. A escolha de uma ou outra dependerá principalmente do seu hardware, mais especificamente, do codec de áudio de sua placa-mãe.
A VoodooHDA é uma kext alternativa, usada para codecs que não são suportados pela AppleHDA, a kext nativa do OS X. Assim sendo, é de se esperar que a AppleHDA tenha um rendimento/desempenho melhor, muito embora essa kext também seja modificada. O som desta, p.ex., é infinitamente superior ao da VoodooHDA, onde temos um som baixo e muitas vezes com ruídos. Mas, claro que existem alguns meios de se amenizar os problemas que encontramos nela.
Abaixo você terá uma lista com os codecs suportados pela AppleHDA modificada e se o seu não estiver lá provavelmente terá de usar a VoodooHDA, ou seguir este guia e você mesmo editar a AppleHDA para reconhecer o seu codec, um trabalho que exige muita dedicação. Se você tiver sorte, poderá encontrar uma kext já editada para o seu codec. Neste fórum já existem algumas, p.ex.: ALC269, ALC270, ALC272, ALC883, IDT92HD202, IDT92HD87B1, IDT92HD81B1X5, ADI1988B, Conexant CX20561, Conexant CX20583.
Os codecs suportados na AppleHDA modificada presente no Multibeast (tonymacx86, exige cadastro) são os da Realtek, ou seja:
ALC885 ou ALC889a
ALC887 ou ALC888b / ALC888s
ALC888 ou ALC1200
ALC889
ALC892
ALC898
Usando o Multibeast, instale a AppleHDA.kext correspondente ao seu codec, atualize o cache do Kernel e repare as permissões do sistema.
Além da instalação da AppleHDA, ainda é necessário que algo informe ao sistema qual é o seu codec. Este 'algo' pode ser uma kext habilitadora ou uma DSDT. Se optar por usar uma kext você poderá encontrá-la no Multibeast, instale a correspondente ao seu codec na sessão Without DSDT. Veja na imagem abaixo um exemplo para o codec ALC889:
Se optar pela DSDT, precisará fazer as edições apropriadas. Algo simples mas que exige muita atenção pois basta uma letra errada para o áudio não ser reconhecido. A edição do DSDT consiste em, pelo menos, duas etapas: 1) encontrar o dispositivo de áudio e 2) editar o ID deste.
Para uma maior explanação sobre DSDT, recomendo a leitura deste tópico: DSDT — entendendo a edição e uso de patches
O correto é procurar na sua DSDT pelo dispositivo HDEF, ele é o responsável pelo seu áudio. Se encontrá-lo, ótimo! Entretanto, algumas placas-mãe (geralmente as mais antigas) usam na DSDT o dispositivo AZAL. Se este for o seu caso, terá de renomeá-lo para HDEF. Existe um patch no app DSDT Editor chamado: AZAL to HDEF. Aplique-o em sua DSDT:
into device name_adr 0x001B0000 set_label
begin
HDEF
end;
into_all all code_regex AZAL replaceall_matched
begin
HDEF
end
Muito provavelmente precisará também do patch DTGP:
into definitionblock code_regex . insert
begin
Method (DTGP, 5, NotSerialized)\n
{\n
If (LEqual (Arg0, Buffer (0x10)\n
{\n
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, \n
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B\n
}))\n
{\n
If (LEqual (Arg1, One))\n
{\n
If (LEqual (Arg2, Zero))\n
{\n
Store (Buffer (One)\n
{\n
0x03\n
}, Arg4)\n
Return (One)\n
}\n
If (LEqual (Arg2, One))\n
{\n
Return (One)\n
}\n
}\n
}\n
Store (Buffer (One)\n
{\n
0x00\n
}, Arg4)\n
Return (Zero)\n
}
end
Em seguida aplique o patch HDEF:
into device name_adr 0x001B0000 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 (0x04)\n
{\n
"layout-id", \n
Buffer (0x04)\n
{\n
0x0C, 0x00, 0x00, 0x00\n
}, \n
"PinConfigurations", \n
Buffer (Zero) {}\n
}, Local0)\n
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
Return (Local0)\n
}\n
}
end
Agora que temos o dispositivo HDEF, precisamos editá-lo de acordo com o nosso codec de áudio. Copie o código abaixo, e substitua pelo presente na sua DSDT:
Device (HDEF)
{
Name (_ADR, 0x001B0000)
Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x0D,
0x05
})
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x04)
{
"layout-id",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"PinConfigurations",
Buffer (Zero) {}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Note a linha destacada em vermelho, 0x00,… é nela que informaremos o ID do nosso codec de áudio. Se você usa o OS X Lion (bem como a AppleHDA.kext dele) encontre o seu ID na tabela abaixo e substitua na DSDT:
AudioID LayoutID LayoutID Injeção do LayoutID na DSDT
decimal decimal hexadecimal hexadecimal
885 --> 885 --> 375 --> 0x75, 0x03, 0x00, 0x00
887 --> 887 --> 377 --> 0x77, 0x03, 0x00, 0x00
888 --> 888 --> 378 --> 0x78, 0x03, 0x00, 0x00
889 --> 889 --> 379 --> 0x79, 0x03, 0x00, 0x00
892 --> 892 --> 37C --> 0x7C, 0x03, 0x00, 0x00
898 --> 898 --> 382 --> 0x82, 0x03, 0x00, 0x00
Se você usa o OS X Mountain Lion (bem como a AppleHDA.kext dele) use o LayoutID 1, padrão para essa kext: 0x01, 0x00, 0x00, 0x00
Pronto! DSDT editada, coloque-a no local apropriado e reinicie o sistema. Agora deverá aparecer o ícone de áudio na barra do sistema, ao lado da hora.
Crédito: Toleda, moderador no tonymacx86.
Dúvidas?
Acesse: Fórum MAC in PC
Nenhum comentário:
Postar um comentário