Mirone Posted October 24, 2012 Share Posted October 24, 2012 (edited) Guia de como corrigir a AppleHDA para o seu codec Capítulo 1: Obtendo Informações do Codec. Intro: Este guia é para aqueles que querem usar AppleHDA e / ou tentar aprender como ele funciona. Ele se divide em várias etapas e vamos abordar cada uma delas ao longo do guia. Primeiro Passo: Obtendo informações do codec. Existem outras maneiras mas neste guia vamos explicar como obter pelo Linux. Usando o Ubuntu ou outra distribuição.(obs: Use a versão mais recente do Linux assim como os drivers Alsa) no terminal digite: cat /proc/asound/card0/codec#1 > ~/Desktop/codec_dump.txt ou cat /proc/asound/card0/codec#0 > ~/Desktop/codec_dump.txt ou se preferir Use este script de Shell: cd ~/Desktop && mkdir CodecDump && for c in /proc/asound/card*/codec#*; do f="${c/\/*card/card}"; cat "$c" > CodecDump/${f//\//-}.txt; done && zip -r CodecDump.zip CodecDump Salve-o em um lugar seguro. No OS X, devemos usar o codec_dump para obter uma interface gráfica, convertê-lo para decimal (vou explicar mais tarde por quê), obter os verbos codec dele e corrigi-los para o OS X. Baixe e instale: http://www.graphviz.org/Download_macos.php (somente versão para Lion) Download CodecGraph: http://helllabs.org/codecgraph/ , descompactá-lo para desktop, copiar o codec_dump.txt gerado pelo linux para pasta CodeGraph em seguida, digite no termainal: cd ~/Desktop/codecgraph e depois: ./codecgraph codec_dump.txt Segundo Passo: Convertendo CodecGraph e CodecDump de hexadecimal para decimal: Download convert_hex_to_dec.rb.zip http://www.mediafire.com/?1ytbnh0zvfl Créditos a Munky Que o fez.Descompacte-o na mesma pasta usada anteriormente (codecgraph) - No terminal: cd ~/Desktop/codecgraph chmod +x ./convert_hex_to_dec.rb ./convert_hex_to_dec.rb codec_dump.txt.svg > ~/Desktop/codecgraph/codec_dump_dec.txt.svg * substituir "codec_dump.txt" com seu usuário e nome do arquivo codec (se você deu um nome espécifico) ./convert_hex_to_dec.rb codec_dump.txt > ~/Desktop/codecgraph/codec_dump_dec.txt * substituir "codec_dump.txt" com seu usuário e nome do arquivo codec (se você deu um nome espécifico) Terceiro Passo: Por padrão nossa placa de som onboard não é reconhecida pelo OS X então pra que a mesma seja reconhecida devemos adicionar o device HDEF ao nosso DSDT.aml. Pra isso usamos os seguintes patchs: HDEF ou AZAL to HDEF em Ambos o Método DTGP tem que estar presente no nosso DSDT.aml. Devemos usar o DST Editor para aplicar os patchs corretamente http://Olarila.com/forum/viewtopic.php?f=7&t=646 Os Patchs vocês encontram aqui http://Olarila.com/forum/patches.php Esta é uma injeção de áudio geral e deve funcionar para todos os codecs: Device (HDEF) { Name (_ADR, 0x001B0000) Method (_DSM, 4, NotSerialized) { Store (Package (0x04) { "layout-id", Buffer (0x04) { 0x0C, 0x00, 0x00, 0x00 }, "PinConfigurations", Buffer (Zero) {} }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } 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) } } } Store (Buffer (One) { 0x00 }, Arg4) Return (Zero) } Capítulo 2: Correção de AppleHDA.Kext Para que a AppleHDA Trabalhe corretamente para nosso codec devemos fazer algumas modificações nos plists da mesma. Então quais são estas modificações? Se você olhar para ela (clique com o botão direito do mouse /Mostrar conteúdo do pacote), você vai encontrar na pasta Content do Info.plist principal (não tocá-lo) e uma pasta de plugins. Há os plugins que temos que corrigir, mas não todos apenas Info.plist a partir de um presente: 1-AppleHDAController.kext 2-AppleHDAHardwareConfigDriver.kext 3-Platform.xml e layout12.xml ou Layout1.xml (Presentes na Pasta Resources) 4-BinPatch 1-AppleHDAController.kext (clique com o botão direito do mouse /Mostrar conteúdo do pacote) Abra o Plist com um editor de Plist. http://www.osx86.net/downloads.php?do=file&id=3154 dentro da chave IOKitPersonalities mudar: <key>IOPCIClassMatch</key> <string>0x04020000&0xFFFE0000</string> para: <key>IOPCIPrimaryMatch</key> <string>0x1c208086</string> O 0x1c208086 é o meu device e Vendor ID de Audio. Mudar de acordo com o seu codec. 2-AppleHDAHardwareConfigDriver.kext Para editar essa kext precisaremos obter ConfigData/CodecVerbs. Você pode corrigi-los de duas maneiras, manual ou automático usando o script de Signal64 chamado Verbit que realiza todo o processo automaticamente sendo necessário alguns poucos ajustes você pode baixa-lo aqui: http://signal64.osx86.me/audio/verbit.zip Descompacte-o na pasta codecgraph a mesma utilizada anteriormente. em seguida, Rodar este comando no terminal: cd /Users/seu_nome_de_usuário/Desktop/codecgraph e depois: ./Verbit codec_dump.txt> verbs.txt Nota: É necessário excluir do codec_dump.txt a linha: AFG Function Id: 0x1 (unsol 0) Tendo feito isso abra a pasta codecgraph e vai ver dois arquivos um chamado verbs.txt e outro verbitdebug.txt. verbit.texto é o de nosso interesse. Pois nele encontramos nossos ConfigData/CodecVerbs originais encima e os corrigidos embaixo. verbs.txt: Verbs from Linux Codec Dump File: codec_dump.txt Codec: Realtek ALC887-VD Address: 0 DevID: 283904135 (0x10ec0887) Jack Color Description Node PinDefault Original Verbs -------------------------------------------------------------------------------------------------------- ATAPI Unknown SPDIF Out at Int ATAPI 17 0x11 0x99430140 01171c40 01171d01 01171e43 01171f99 1/8 Black Speaker at Ext Rear 18 0x12 0x411111f0 01271cf0 01271d11 01271e11 01271f41 1/8 Green Line Out at Ext Rear 20 0x14 0x01014010 01471c10 01471d40 01471e01 01471f01 1/8 Black Line Out at Ext Rear 21 0x15 0x01011012 01571c12 01571d10 01571e01 01571f01 1/8 Orange Line Out at Ext Rear 22 0x16 0x01016011 01671c11 01671d60 01671e01 01671f01 1/8 Grey Line Out at Ext Rear 23 0x17 0x01012014 01771c14 01771d20 01771e01 01771f01 Mic at Ext Rear 0x18 0x18 27367504 01871c50 01871d98 01871ea1 01871f01 Mic at Ext Front 0x19 0x19 44145760 01971c60 01971d9c 01971ea1 01971f02 1/8 Blue Line In at Ext Rear 26 0x1a 0x0181305f 01a71c5f 01a71d30 01a71e81 01a71f01 HP Out at Ext Front 0x1b 0x1b 35736608 01b71c20 01b71d4c 01b71e21 01b71f02 1/8 Black Speaker at Ext Rear 28 0x1c 0x411111f0 01c71cf0 01c71d11 01c71e11 01c71f41 Optical White Line Out at Ext N/A 29 0x1d 0x4005e601 01d71c01 01d71de6 01d71e05 01d71f40 Optical Orange SPDIF Out at Ext Rear 30 0x1e 0x01456130 01e71c30 01e71d61 01e71e45 01e71f01 1/8 Black Speaker at Ext Rear 31 0x1f 0x411111f0 01f71cf0 01f71d11 01f71e11 01f71f41 -------------------------------------------------------------------------------------------------------- Jack Color Description Node PinDefault Modified Verbs -------------------------------------------------------------------------------------------------------- ATAPI Unknown SPDIF Out at Int ATAPI 17 0x11 0x99430140 01171c40 01171d00 01171e43 01171f90 1/8 Green Line Out at Ext Rear 20 0x14 0x01014010 01471c10 01471d40 01471e01 01471f01 1/8 Black Line Out at Ext Rear 21 0x15 0x01011012 01571c70 01571d10 01571e01 01571f01 1/8 Orange Line Out at Ext Rear 22 0x16 0x01016011 01671c80 01671d60 01671e01 01671f01 1/8 Grey Line Out at Ext Rear 23 0x17 0x01012014 01771c90 01771d20 01771e01 01771f01 Mic at Ext Rear 0x18 0x18 27367504 01871c50 01871d90 01871ea1 01871f01 Mic at Ext Front 0x19 0x19 44145760 01971c60 01971d90 01971ea1 01971f01 1/8 Blue Line In at Ext Rear 26 0x1a 0x0181305f 01a71ca0 01a71d30 01a71e81 01a71f01 HP Out at Ext Front 0x1b 0x1b 35736608 01b71c20 01b71d40 01b71e21 01b71f01 Optical White Line Out at Ext N/A 29 0x1d 0x4005e601 01d71cb0 01d71de0 01d71e05 01d71f40 Optical Orange SPDIF Out at Ext Rear 30 0x1e 0x01456130 01e71c30 01e71d60 01e71e45 01e71f01 -------------------------------------------------------------------------------------------------------- verbitdebug.txt: Blacklist: 411111f0 400000f0 CD at Int ATAPI Removed Nodes: 0x12 0x1c 0x1f Checking 71c Associations Current Associations 01171c40 = 4 01471c10 = 1 01571c12 = 1 01671c11 = 1 01771c14 = 1 01871c50 = 5 01971c60 = 6 01a71c5f = 5 01b71c20 = 2 01d71c01 = 1 note: Changed 0 to 1 01e71c30 = 3 Used associations = 4 1 1 1 1 5 6 5 2 1 3 Unused associations = 7 8 9 a b c d e Correcting duplicate associations Checking if 4 already exists in: 1 1 1 1 5 6 5 2 1 3 no duplicate found Checking if 1 already exists in: 4 1 1 1 5 6 5 2 1 3 duplicate found - Is this the first time we've seen this association? yes - ignoring Checking if 1 already exists in: 4 1 1 1 5 6 5 2 1 3 duplicate found - Is this the first time we've seen this association? no - replacing association with: 7 Checking if 1 already exists in: 4 1 7 1 5 6 5 2 1 3 duplicate found - Is this the first time we've seen this association? no - replacing association with: 8 Checking if 1 already exists in: 4 1 7 8 5 6 5 2 1 3 duplicate found - Is this the first time we've seen this association? no - replacing association with: 9 Checking if 5 already exists in: 4 1 7 8 9 6 5 2 1 3 duplicate found - Is this the first time we've seen this association? yes - ignoring Checking if 6 already exists in: 4 1 7 8 9 5 5 2 1 3 no duplicate found Checking if 5 already exists in: 4 1 7 8 9 5 6 2 1 3 duplicate found - Is this the first time we've seen this association? no - replacing association with: a Checking if 2 already exists in: 4 1 7 8 9 5 6 a 1 3 no duplicate found Checking if 1 already exists in: 4 1 7 8 9 5 6 a 2 3 duplicate found - Is this the first time we've seen this association? no - replacing association with: b Checking if 3 already exists in: 4 1 7 8 9 5 6 a 2 b no duplicate found New 71c Associations Before After -------------------------------------------------- 01171c40 01171c40 01171d01 01171e43 01171f99 01471c10 01471c10 01471d40 01471e01 01471f01 01571c12 01571c70 01571d10 01571e01 01571f01 01671c11 01671c80 01671d60 01671e01 01671f01 01771c14 01771c90 01771d20 01771e01 01771f01 01871c50 01871c50 01871d98 01871ea1 01871f01 01971c60 01971c60 01971d9c 01971ea1 01971f02 01a71c5f 01a71ca0 01a71d30 01a71e81 01a71f01 01b71c20 01b71c20 01b71d4c 01b71e21 01b71f02 01d71c01 01d71cb0 01d71de6 01d71e05 01d71f40 01e71c30 01e71c30 01e71d61 01e71e45 01e71f01 Reset 71d Misc to 0 New 71d Associations Before After -------------------------------------------------- 01171d01 01171c40 01171d00 01171e43 01171f99 01471d40 01471c10 01471d40 01471e01 01471f01 01571d10 01571c70 01571d10 01571e01 01571f01 01671d60 01671c80 01671d60 01671e01 01671f01 01771d20 01771c90 01771d20 01771e01 01771f01 01871d98 01871c50 01871d90 01871ea1 01871f01 01971d9c 01971c60 01971d90 01971ea1 01971f02 01a71d30 01a71ca0 01a71d30 01a71e81 01a71f01 01b71d4c 01b71c20 01b71d40 01b71e21 01b71f02 01d71de6 01d71cb0 01d71de0 01d71e05 01d71f40 01e71d61 01e71c30 01e71d60 01e71e45 01e71f01 Correct 71f 02 FP to 01 New 71f Associations Before After -------------------------------------------------- 01171d01 01171c40 01171d00 01171e43 01171f90 01471d40 01471c10 01471d40 01471e01 01471f01 01571d10 01571c70 01571d10 01571e01 01571f01 01671d60 01671c80 01671d60 01671e01 01671f01 01771d20 01771c90 01771d20 01771e01 01771f01 01871d98 01871c50 01871d90 01871ea1 01871f01 01971d9c 01971c60 01971d90 01971ea1 01971f01 01a71d30 01a71ca0 01a71d30 01a71e81 01a71f01 01b71d4c 01b71c20 01b71d40 01b71e21 01b71f01 01d71de6 01d71cb0 01d71de0 01d71e05 01d71f40 01e71d61 01e71c30 01e71d60 01e71e45 01e71f01 O codec usado no exemplo acima como podem ver é um ALC887-VD foi preciso mudar somente um dos microfones para externo. Para entendermos como são feitas essas alterações precisaremos ir mais fundo. Então, o que é um verbo codec? Para cada entrada / saída que é uma sequência de 4 verbos. Vamos dar um exemplo de codec usado antes: 1/8 Green Line Out at Ext Rear 20(Decimal) 0x14(Hexadecimal) 0x01014010 01471c10 01471d40 01471e01 01471f01 Sobre NodeId (NID) 0x14 em hexadecimal, 20 em decimal: Os verbos padrão para ele: 01471c10 01471d40 01471e01 01471f01 01471c10: 0 471c10 = CAD (Codec Endereço) 0 14 = 71c10 NID (NodeID) 014 71 c10 = Comandos verbo como 71 "c", "d", "e", "f" 01471c 10 de Dados = verbo E o mesmo para o resto. Acho que Cad, NID e comandos verbais são muito simples de entender: os 2 primeiros você pega do dump do linux, e os comandos são padrão 71c, 71d, 71e, 71f. Vamos ver sobre os dados do verbo: - 71c XY X=Default Association(Associação Padrão) Y=Sequence(Seqüência) Associação padrão e Seqüência: são utilizados em conjunto por um software para Complexos grupo PIN (e, portanto, tomadas) juntos em blocos funcionais para apoiar a operação multicanal. O Software pode assumir que todas as Tomadas(Jack) com a mesma quantidade de associação são destinados a ser associados, por exemplo, para fornecer seis canais de saída analógico. A Associação padrão também pode ser usado por um software para priorizar a alocação de recursos em situações restritas. Os valores mais baixos de associação padrão seria o maior em prioridade para recursos como nós de processamento ou de entrada e de saída de conversores. Note-se que esta é uma associação padrão única, e o software pode substituir esse valor, se necessário, em particular se o usuário fornecer informações adicionais sobre a configuração do sistema particular. Um valor de 0000b é reservado e não deve ser usado. O Software pode interpretar esse valor para indicar que os dados de configuração Pin não foram inicializados corretamente. Um valor de 1111b é um valor especial que indica que a Associação tem a menor prioridade. Complexos de múltiplos pinos diferentes podem partilhar este valor, e cada um se destina a ser mostrado como dispositivos independentes. Sequência: indica a ordem das tomadas(jacks) do grupo de associação. A tomada de número menor no grupo de associação deve ser atribuído a menor canais numerados na Corrente, etc Os números não precisam ser seqüencial dentro do grupo, apenas a ordem. Os números de seqüência dentro de um conjunto de associações padrão devem ser exclusivo. * Minha nota para isso, se você olhar para o CodecVerb da AppleHDA.kext (não importa o codec) você vai ver que a seqüência é sempre 0. Por isso, e por que os nossos CodecVerbs são diferentes? Simples a Apple não tem saída analógica multicanal! Por isso você deve alterá-lo para 0. * Sobre Associação padrão, Mantenha o padrão, em ordem, e se algum NID usar a mesma associação, substituir pela que esta na reserva ... os valores que você pode usar são: 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e f (ver o que faz verbit se você ainda não entendeu). - 71d XY X=cores Y=variadas Indica a cor do conector físico para uso do software. Desconhecido 0 Preto 1 Cinza 2 Azul 3 Verde 4 Vermelho 5 Laranja 6 Amarelo 7 Roxo 8 Rosa 9 Reservados A-D Branco E Outros F Miscelânea: é um campo de bits usado para indicar outras informações sobre a tomada(jack). Atualmente, apenas o bit 0 é definido. Se 0 é pouco definido, indica que a tomada não tem presença detectar capacidade, por isso mesmo um Complexo Pin indica que o hardware codec suporta detectar a funcionalidade da tomada, o circuito externo não é capaz de suportar a funcionalidade. Reservado 3 Reservado 2 Reservado 1 Jack Detect Override 0 * Use 0 para Jack Detect - dispositivo externo (por exemplo, fones de ouvido Mic etc) Use 1 para Jack desativadas - dispositivo interno (por exemplo, alto-falantes internos, microfone interno) - 71e XY X=Dispositivo padrão Y=Tipo de conexão Dispositivo padrão: indica a intenção de uso da Tomada (Jack) ou dispositivo. Isto pode indicar tanto a etiqueta sobre a Tomada (Jack) ou o dispositivo que está fisicamente conectado uma porta, tal como altofalantes integrados e semelhantes. Line Out 0 Speaker 1 HP Out 2 CD 3 SPDIF Out 4 Digital Other Out 5 Modem Line Side 6 Modem Handset Side 7 Line In 8 AUX 9 Mic In A Telephony B SPDIF In C Digital Other In D Reserved E Other F Tipo de conexão: indica o tipo de conexão física, como uma saída estéreo 1/8-inch ou um conector digital óptico, etc Software pode usar esta informação para fornecer descrições de interface do usuário úteis para o usuário ou para modificar as capacidades de codec relatados com base nas capacidades do transporte físico externo para o codec. Unknown 0 1/8" stereo/mono 1 1/4" stereo/mono 2 ATAPI internal 3 RCA 4 Optical 5 Other Digital 6 Other Analog 7 Multichannel Analog (DIN) 8 XLR/Professional 9 RJ-11 (Modem) A Combination B Other F - 71f XY X=Porta de Conectividade Y=Localização Porta de conectividade: indica a conectividade externa do Complexo Pin. O software pode usar esse valor para saber a quais Complexos Pins estão ligados as tomadas, dispositivos internos, ou não estão ligados em tudo. 00b - O Complexo Portuário está conectado a uma tomada (1/8 ", ATAPI, etc.) 01b - Sem conexão física para a Porta. 10b - Um dispositivo de função fixa (alto-falante integrado, microfone integrado, etc) esta conectado. 11b - Tanto uma Tomada (Jack) e um dispositivo interno estão ligados. A informação fornecida em todos os outros campos se refere ao dispositivo integrado. O pino de PD irá refletir o estado da tomada, o usuário terá de ser consultado para descobrir o que é. Localização: indica a localização física da tomada ou dispositivo para o qual o complexo de pino é conectado. Isto permite que o software possa indicar, por exemplo, de que o dispositivo é o "painel frontal Headphone Jack", em oposição às ligações do painel traseiro.* Detalhes: Converter o número hexadecimal de 2 dígitos para binário. Preencher a frente com zeros para torná-lo 8 dígitos. Exemplo: 0x02 = 10 = 00000010 binário 8 dígitos Lendo os bits da esquerda para a direita: Conectividade da porta - bits 07:06 ----------------------------------------------------------- 00 - A porta está conectado a uma tomada (jack) 01 - Não é uma porta externa ou não há nenhuma conexão física para a porta 10 - Função fixa / embutido no dispositivo (alto-falante integrado, microfone, etc) 11 - Dispositivo e tomada interna estão ligados Parte 1 Localização - bits 05:04 ----------------------------------------------------------- 00 - Externa ao chassi primário 01 - Interna 10 - Chassi separado 11 - Outros Parte 2 Localização - bits 03:00 ----------------------------------------------------------- O significado depende Parte 1 Localização 00 0000 N/A 00 0001 Traseira 00 0010 Frente 00 0011 Esquerda 00 0100 Direito 00 0101 Superior 00 0110 Inferior 00 0111 Especial (painel traseiro) 00 1000 Especial (baia drive) 01 0000 N/A 01 0111 Especial (Riser) 01 1000 HDMI 01 1001 ATAPI 10 0000 N/A 10 0001 Traseira 10 0010 Frente 10 0011 Esquerda 10 0100 Direito 10 0101 Superior 10 0110 Inferior 11 0000 N/A 11 0110 ? 11 0111 Dentro da tampa móvel (exemplo: mic) 11 1000 Fora da tampa móvel Bits 71cf01 = 00 00 0001 - Porta tem um jack - É Externo - Localização Traseira 71cf02 = 00 00 0010 - Porta tem um jack - É Externo - Localização do painel frontal 71cf59 = 01 01 1001 - Não é uma Porta externa - ATAPI 71cf18 = 00 01 1000 - Porta tem um jack - Externa - HDMI 71cf90 = 10 01 0000 - Dispositivo Interno - Interna - N/A | | |||| | | |--------- Localização parte 2 | |------------ Localização parte 1 |--------------- Conectividade da porta Obrigado novamente a Signal64 para sua VerbCheatSheet: http://rapidshare.de/files/48146006/VerbCheatSheet.rtf.html * Todas as informações vieram da especificação High Definition Audio Leia-o para mais detalhes!http://download.intel.com/standards/hdaudio/pdf/HDAudio_03.pdf Conclusão: O script faz um ótimo trabalho, ainda não é perfeito ele não sabe quais são as nossas opções ... talvez uma aplicação GUI possa ser acrescentada no futuro. Então, o que pode ser essas opções? - Você pode querer configurar microfone como interno para obter redução de ruído ambiente para isso. - Alguns codecs tem apenas saídas de linha mesmo truque pode aplicado e você pode definir a primeira saída como Altofalantes e obter no software dsp a opção para ele. - Para suporte do painel frontal pode ser necessário transformar de novo microfone em Line In.(Saída de Linha) E assim por diante ... Gora que obtemos todas as informações necessárias sobre ConfigData/CodecVerbs vamos editar o info.plist da AppleHDAHardwareConfigDriver.kext. Editando AppleHDAHardwareConfigDriver.kext (Info.plist) (clique com o botão direito do mouse /Mostrar conteúdo do pacote) Abra o Plist com um editor de Plist. navegar até a chave IOKitPersonalities/HDA Hardware Config ResourceHDAConfigDefault. 1-CodecID: Colocar o ID de seu codec em Números Decimais 0x10ec0887(Hexadecimal) --> 283.904.135(Decimal) 2-ConfigData: Aqui colocamos nossos ConfigData/Verbs codec que corrigimos anterirormente. 3-FuncGroup: Deve ser sempre 1. 4-LayoutID: Por padrão é 12 mas pode ser qualquer outro número desde que você também mude o número do layout no seu DSDT.aml *OBS: Nas kexts de Mountain Lion so podemos usar um layout que já tenha na própria kext e não outros como layout887.xml como era usado nas kexts de Lion. 3- Editando Platform.xml e layout12.xml ou Layout1.xml (Presentes na Pasta Resources) Esta é a parte mais complicada. Dentro da pasta Resources você encontrará vários layouts.xml e um Platforms.xml. vamos editar ambos de acordo com as correções anterirores ou seja em AppleHDAHardwareConfigDriver.kext usamos o layout12 então vamos fazer as devidas edições sobre este. 1-CodecID: Colocar o ID de seu codec em Números Decimais 0x10ec0887(Hexadecimal) --> 283.904.135(Decimal) 2-PathMapID: Mudar para 1 *Nota: Excluiir MuteGPIO,SignalProcessing, de todas as chaves. O que tinhamos que corrigir em Layout12.xml ja esta concluído. Agora vamos editar o Platforms.xml é aqui que se encontra os pathmaps. Dentro da Chave Pathmaps existem outras chaves que estão numeradas e cada uma corresponde a um Layout.xml especifico por exemplo: usamos layout12.xml dentro do mesmo tem uma chave com pathmap Id=1. No exemplo do codec que estamos usando um ALC887-VD temos 4 saídas e 2 entradas de audio. Totalizando 6 dispositivos. Para dispositivos de saída, o PathMap segue esse padrão: Pin Complexo(NodeID)-> Audio Mixer-> Saída de Áudio Então, nós temos que encontrar um nó Pin Complexo(NodeID), um nó Audio Mixer e, finalmente, um nó de saída de áudio. Para dispositivos de entrada, o PathMap seguem esse padrão: Pin-Complexo(NodeID)> Audio Selector/Mixer- entrada> Áudio Aqui, temos de encontrar um nó Pin Complexo(NodeID), um mixer de áudio / nó Selector e, finalmente, um nó de entrada de áudio. Abra o arquivo codec_dump_dec.txt.svg gerado na pasta codegraph você vai ver algo como isto: note que 20(Pin complexo)-->12(nó Audio Mixer)-->2(nó de Saída de Audio) a partir dai ja temos nosso pathmap formado para LineOut(no caso o node20 é um Alto-falante Interno). Faremos o mesmo para o restante do nosso pathmaps. Obs: Observe que na captura de tela anexada acima você pode ver que as linhas continuas são as ligações dos nodes. Um exemplo de Pathmaps para Mic (Externo): note que 24(Pin complexo)-->35(nó Audio Mixer)-->9(nó de Saída de Audio) Obs: Geralmente inicia-se ao contrário 9-->34-->24 Os pathmaps para o codec usado como exemplo ficaram assim: 9-34-24= Mic Externo 9-34-25= Mic Externo Frontal 8-35-26= Saída de Linha 20-12-2= Auto-Falantes Internos 27-38-37= Fone 23-15-5= Saída de Linha 22-14-4= Saída de Linha 23-13-3= Saída de Linha 30-6= Saída Digital 4-BinPatch: A partir da versão de Snow Leopard 10.6.3 foi necessário corrigir também o arquivo binário da Applehda.kext ele se encontra dentro da pasta MacOs que fica dentro da Kext, para fazermos esta correção usaremos o script feito por bcc9. patch-hda.zip copie a pasta para o desktop e ja com a Applehda.kext edita e instalada em S/L/E digite o seguintes comandos no terminal: cd ~/desktop/patch-hda ./patch-hda.pl 10ec0887 *Nota: Abra a pasta patch-hda e depois o arquivo patch-hda-codecs.pl dentro dele encontra-se todos os codecs suportados pelo script para mais informações: http://www.insanelymac.com/forum/topic/284004-script-to-patch-applehda-binary-for-osx107108/ Uma dica se o seu codec não for suportado pelo script você pode tentar corrigir manualmente usando um editor binário como HexFiend e substituir um dos codecs usados na correção pelo seu. No exemplo acima foi corrigido o binário para o codec ALC887-VD se você for corrigir para seu codec é necessário substituir o 10ec0887 pelo id de seu codec. No binário eles são escritos da direita para esuerda ou seja 10ec0887=8708ec10. *Importante: A kext do Mountain Lion tem uma nova estrutura e os arquivos são compactados em .zlib para descompactar e editar esses arquivos usaremos o Zlib. Esse aplicativo é baseado no script de RevoGirl, ele torna o processo de arquivos .zlib da AppleHDA.kext para descompactar/compactar mais fácil. Basta arrastar o arquivo zlib. Ao aplicativo e ele irá descompactar ou arraste o arquivo xml. E ele vai compactar para .zlib Download Zlib Kext usada como exemplo para este guia: http://www.sendspace.com/file/tbfthk Pasta com todas ferramentas necessárias para edição da Applehda.kext e algumas kexts originais de diversas versões do OS x: http://www.sendspace.com/file/kemzwt Créditos: The King, bcc9, RevoGirl(R.I.P), MlyDinEsH, Munky, Timewalker. Script RevoGirl AppleHda.zip Edited October 5, 2013 by Guest Link to comment Share on other sites More sharing options...
livetodie Posted February 3, 2013 Share Posted February 3, 2013 Boa tarde! Eu estou usando o Mountain Lion e percebi que o graphviz não é compatível com meu OS. Posso fazer todo o processo usando o Snow Leopard e no final obter a kext do meu audio para o Mountain Lion? Obrigado! Link to comment Share on other sites More sharing options...
Mirone Posted February 3, 2013 Author Share Posted February 3, 2013 Boa tarde! Eu estou usando o Mountain Lion e percebi que o graphviz não é compatível com meu OS. Posso fazer todo o processo usando o Snow Leopard e no final obter a kext do meu audio para o Mountain Lion? Obrigado! Pode sim! no site do Graphiz eles explicam como fazer pra roda-lo no ML. mas vc pode fazer todo processo no snow e depois so instalar a kext no ML . Link to comment Share on other sites More sharing options...
livetodie Posted February 3, 2013 Share Posted February 3, 2013 Pode sim! no site do Graphiz eles explicam como fazer pra roda-lo no ML. mas vc pode fazer todo processo no snow e depois so instalar a kext no ML . Esse processo parece bem complicado... Eu vou pelo Snow Leopard mesmo, assim eu me atrapalho menos rsrs Link to comment Share on other sites More sharing options...
Mirone Posted February 3, 2013 Author Share Posted February 3, 2013 Use o snow ou o lion e faça todo o processo. o resultado final será o mesmo. Link to comment Share on other sites More sharing options...
livetodie Posted February 3, 2013 Share Posted February 3, 2013 Use o snow ou o lion e faça todo o processo.o resultado final será o mesmo. Se eu não conseguir fazer a minha kext vc pode fazer para mim? Eu já consegui o arquivo codec_dump Link to comment Share on other sites More sharing options...
Mirone Posted February 3, 2013 Author Share Posted February 3, 2013 Se eu não conseguir fazer a minha kext vc pode fazer para mim? Eu já consegui o arquivo codec_dump O ideal seria que vc tentasse eu tentei e falhei inúmeras vezes, quando comecei nem existia um tuto completo passava noites mexendo nisso. senão conseguir poste seus arquivos aqui: http://Olarila.com/forum/viewtopic.php?f=9&t=1933 Link to comment Share on other sites More sharing options...
livetodie Posted February 3, 2013 Share Posted February 3, 2013 O ideal seria que vc tentasse eu tentei e falhei inúmeras vezes, quando comecei nem existia um tuto completo passava noites mexendo nisso. senão conseguir poste seus arquivos aqui: http://Olarila.com/forum/viewtopic.php?f=9&t=1933 Incrivelmente eu instalei uma kext para ativar meu audio HDMI q acabou ativando tb o da minha ALC 275 Link to comment Share on other sites More sharing options...
Mirone Posted February 3, 2013 Author Share Posted February 3, 2013 @livetodie o ideal agora é vc "Abrir" a kext e olhar quais as modificações foram feitas nela. ela é Applehda ou uma voodoohda? Link to comment Share on other sites More sharing options...
livetodie Posted February 3, 2013 Share Posted February 3, 2013 @livetodieo ideal agora é vc "Abrir" a kext e olhar quais as modificações foram feitas nela. ela é Applehda ou uma voodoohda? Ela é voodoohda... Não sei ver exatamente que alterações foram feitas... Existe um pouco de ruido quando não se está tocando nada... Acho q é problema de relação sinal/ruido dessa placa q não deve ser grandes coisa.... Se quiser eu lhe mando a kext. Link to comment Share on other sites More sharing options...
Mirone Posted February 3, 2013 Author Share Posted February 3, 2013 Ela é voodoohda... Não sei ver exatamente que alterações foram feitas... Existe um pouco de ruido quando não se está tocando nada... Acho q é problema de relação sinal/ruido dessa placa q não deve ser grandes coisa.... Se quiser eu lhe mando a kext. Tente corrigir sua Applehda ela tem um som melhor do que a vodoohda. Link to comment Share on other sites More sharing options...
livetodie Posted February 3, 2013 Share Posted February 3, 2013 Tente corrigir sua Applehda ela tem um som melhor do que a vodoohda. Farei isso... Testando melhor o audio percebi q piora mais ainda quando ligo meu mouse bluetooth... Link to comment Share on other sites More sharing options...
uzmi Posted March 12, 2013 Share Posted March 12, 2013 Olá: Eu tento criar meu AppleHDA.kext personalizado. Quando eu tento copiar o meu codec_dump, no codecgraph, eu recebo o seguinte: error : can't read input file codec_dump.txt Eu tenho leão da montanha, e viu codecgraph, este bug Será que o erro está relacionado com o bug? Será que o bug sempre aparece ou não? O problema é que eu tenho ML? O codec_dump ruim? Espero que possa me orientar e obrigado pelo seu tempo. Uzmi P.S. Aqui anexo o meu codec_dump http://depositfiles.com/files/3rv517q90 (Usado traductor Google Español-Portugues) I5 9600K - Ga Z390M Gaming -Shappire RX 580 4Gb - DDR4 16gB- Big Sur Open core Link to comment Share on other sites More sharing options...
Mirone Posted March 12, 2013 Author Share Posted March 12, 2013 Olá:Eu tento criar meu AppleHDA.kext personalizado. Quando eu tento copiar o meu codec_dump, no codecgraph, eu recebo o seguinte: error : can't read input file codec_dump.txt Eu tenho leão da montanha, e viu codecgraph, este bug Será que o erro está relacionado com o bug? Será que o bug sempre aparece ou não? O problema é que eu tenho ML? O codec_dump ruim? Espero que possa me orientar e obrigado pelo seu tempo. Uzmi P.S. Aqui anexo o meu codec_dump http://depositfiles.com/files/3rv517q90 (Usado traductor Google Español-Portugues) Exclua essa parte do seu codec_dump e tente novamente. Node 0x0a [Audio Input] wcaps 0x100391: Stereo Digital Converter: stream=0, channel=0 SDI-Select: 0 Digital: Digital category: 0x0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0x1e]: 16 20 24 32 formats [0x1]: PCM Unsolicited: tag=00, enabled=0 Connection: 1 0x1f Link to comment Share on other sites More sharing options...
uzmi Posted March 12, 2013 Share Posted March 12, 2013 Exclua essa parte do seu codec_dump e tente novamente. Node 0x0a [Audio Input] wcaps 0x100391: Stereo Digital Converter: stream=0, channel=0 SDI-Select: 0 Digital: Digital category: 0x0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0x1e]: 16 20 24 32 formats [0x1]: PCM Unsolicited: tag=00, enabled=0 Connection: 1 0x1f Obrigado por sua sugestão, mas ainda o mesmo erro I5 9600K - Ga Z390M Gaming -Shappire RX 580 4Gb - DDR4 16gB- Big Sur Open core Link to comment Share on other sites More sharing options...
pernacabeluda Posted March 12, 2013 Share Posted March 12, 2013 Você colocou o codec_dump.txt na pasta codecgraph? Aqui correu normal ./codecgraph codec_dump.txt Codec: Realtek ALC888 Generating codec_dump.txt.svg -Guides and Tutorials HERE -Hackintosh Tutorial Database - HERE -The largest EFI folder collection for Hackintosh HERE -Support Olarila Vanilla Hackintosh by making a donation HERE -Professional Consulting for macOS Hackintosh since 2006 HERE Link to comment Share on other sites More sharing options...
uzmi Posted March 12, 2013 Share Posted March 12, 2013 Você colocou o codec_dump.txt na pasta codecgraph? Aqui correu normal ./codecgraph codec_dump.txt Codec: Realtek ALC888 Generating codec_dump.txt.svg Ola: isso é o que eu faço sim correu normal, o problema é a minha instalação. (ML) vai verificar meu S.O. Obrigado I5 9600K - Ga Z390M Gaming -Shappire RX 580 4Gb - DDR4 16gB- Big Sur Open core Link to comment Share on other sites More sharing options...
pernacabeluda Posted March 12, 2013 Share Posted March 12, 2013 O arquivo codec_dump.txt você tem que colocar na pasta codecgraph do desktop. Na imagem que você postou acima ele não aparece. -Guides and Tutorials HERE -Hackintosh Tutorial Database - HERE -The largest EFI folder collection for Hackintosh HERE -Support Olarila Vanilla Hackintosh by making a donation HERE -Professional Consulting for macOS Hackintosh since 2006 HERE Link to comment Share on other sites More sharing options...
uzmi Posted March 12, 2013 Share Posted March 12, 2013 Meu erro, esquecer de copiar codec_dump. Desculpe pelo meu erro. Vou continuar com os passos seguintes. Muito obrigado uzmi. I5 9600K - Ga Z390M Gaming -Shappire RX 580 4Gb - DDR4 16gB- Big Sur Open core Link to comment Share on other sites More sharing options...
uzmi Posted March 15, 2013 Share Posted March 15, 2013 Olá: Não sou especialista e não tenho experiência, mas eu quero fazer este trabalho. Tenho algumas dúvidas que eu resolver para continuar. Eu não falo Português por isso, desculpa a minha gramática. 1) AppleHDAController.kext-->IOPCIClassMatch --> Device e vendor ID Qual é o correcto? 2) Editando AppleHDAHardwareConfigDriver.kext (Info.plist) --> 2-ConfigData: Poderia explicar isso melhor para um iniciante? Obrigado novamente. Uzmi http://depositfiles.com/files/uzhnjx56f I5 9600K - Ga Z390M Gaming -Shappire RX 580 4Gb - DDR4 16gB- Big Sur Open core Link to comment Share on other sites More sharing options...
Mirone Posted March 15, 2013 Author Share Posted March 15, 2013 Olá:Não sou especialista e não tenho experiência, mas eu quero fazer este trabalho. Tenho algumas dúvidas que eu resolver para continuar. Eu não falo Português por isso, desculpa a minha gramática. 1) AppleHDAController.kext-->IOPCIClassMatch --> Device e vendor ID Qual é o correcto? 2) Editando AppleHDAHardwareConfigDriver.kext (Info.plist) --> 2-ConfigData: Poderia explicar isso melhor para um iniciante? Obrigado novamente. Uzmi http://depositfiles.com/files/uzhnjx56f Vendor e device id= 3a3e8086 ConfigDAta: 21471c10 21471d40 21471e01 21471f01 21871c40 21871d90 21871ea1 21871f01 21971c50 21971d90 21971ea1 21971f01 21a71c60 21a71d30 21a71e81 21a71f01 21b71c20 21b71d40 21b71e21 21b71f01 21d71c70 21d71dc0 21d71e05 21d71f40 21e71c30 21e71d60 21e71e44 21e71f01 Link to comment Share on other sites More sharing options...
uzmi Posted March 17, 2013 Share Posted March 17, 2013 Ola: Corrigida minha AppleHDA.kext/Contents/PlugIns/AppleHDAHardwareConfigDriver.kext/Contents/Info.plist AppleHDA.kext/Contents/Resources/layout12.xml.zlib mas eu não posso minha Platforms.xml.zlib a) Porque 4? b) Porque 3? Eu tenho 7 dispositivos (de acordo com verbs.txt) c) Como eu descobrir a correspondência entre o nó e dispositivo? Se necessário: Anexo datos (10.8.3) Obrigado. Datos.zip I5 9600K - Ga Z390M Gaming -Shappire RX 580 4Gb - DDR4 16gB- Big Sur Open core Link to comment Share on other sites More sharing options...
Mirone Posted March 18, 2013 Author Share Posted March 18, 2013 Ola:Corrigida minha AppleHDA.kext/Contents/PlugIns/AppleHDAHardwareConfigDriver.kext/Contents/Info.plist AppleHDA.kext/Contents/Resources/layout12.xml.zlib mas eu não posso minha Platforms.xml.zlib a) Porque 4? b) Porque 3? Eu tenho 7 dispositivos (de acordo com verbs.txt) c) Como eu descobrir a correspondência entre o nó e dispositivo? Se necessário: Anexo datos (10.8.3) Obrigado. Mic Externo Frontal: 9-34-25 Mic Externo Traseiro: 9-34-24 Entrada de Linha:8-35-26 Saida de Linha:20-12-2 Fone: 27-15-5 SPDIF Out: 30-6 Compare com a kext usada neste Guia. pra você notar as diferenças. Link to comment Share on other sites More sharing options...
uzmi Posted March 18, 2013 Share Posted March 18, 2013 Mic Externo Frontal: 9-34-25 Mic Externo Traseiro: 9-34-24 Entrada de Linha:8-35-26 Saida de Linha:20-12-2 Fone: 27-15-5 SPDIF Out: 30-6 Compare com a kext usada neste Guia. pra você notar as diferenças. Desculpe. Eu não expliquei bem. Minhas dúvidas são: a) Identificar os dispositivos sobre o arquivo de Platforms.xml b) O que fazer quando tenho 4 NodeID em um dispositivo. Obrigado I5 9600K - Ga Z390M Gaming -Shappire RX 580 4Gb - DDR4 16gB- Big Sur Open core Link to comment Share on other sites More sharing options...
Mirone Posted March 18, 2013 Author Share Posted March 18, 2013 Desculpe. Eu não expliquei bem. Minhas dúvidas são: a) Identificar os dispositivos sobre o arquivo de Platforms.xml b) O que fazer quando tenho 4 NodeID em um dispositivo. Obrigado Abra a kext usada como exemplo neste guia, veja o platforms.xml e compare. Onde tem 4 nodes você deixara somente 3 por que seu codec so tem 3. pode excluir um. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now