Jump to content
Allan

[Guia] Habilitar audio HDMI - Intel HD 4000

Recommended Posts

Ola a todos.


Este guia ira auxiliar a todos que tem o video Intel HD 4000, e como no meu caso, se possui um Notebook e deseja habilitar tanto o video como o audio da saida HDMI.

Estarei explicando em duas formas da maneira mais facil possível, mas para ter sucesso requer muita atenção e paciência.


Antes de começar:


Verifique se realmente precisa da edição da AppleIntelFramebufferCapri.kext para ter audio HDMI.

Como? - Conecte seu Hack a um Televisor/Monitor a entrada HDMI, se o video e audio está funcionando, não mexa em nada.


Se realmente tem problemas, veja abaixo as instruções.


O que vai precisar.


"AppleIntelFramebufferCapri.kext" que está em System/Library/Extensions

Patchs para video e audio presentes na DSDT.

Um app para edição de números hexadecimais - Recomendo o uso do app Hex Fiend - Download

App Editor de Texto para edição dos valores.


Este tutorial ira usar o ig-platform-id 3 = 03006601, que está nos videos HD 4000 em CPUs IvyBridge.

Para mais informações sobre ig-platform-id e qual usar, leia aqui.

Vou colocar alguns valores diferentes de ig-platform-id para que possam ativar seu HDMI.

Tambem requer qual layout-id esta usando, caso use a AppleHDA.


Método usando DSDT - O que mais funciona.


Antes aplicar qualquer um desse metodos na sua DSDT, requer primeiramente que o método DTPG já esteja aplicado.

Insira este patch no device HDEF na sua DSDT:

Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
           {
               Store (Package (0x0A)
                   {
                       "hda-gfx", 
                       Buffer (0x0A)
                       {
                           "onboard-1"
                       },  


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


                       "PinConfigurations", 
                       Buffer (Zero) {}
                   }, Local0)
               DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
               Return (Local0)
           }
       }

 

Se usa grafico integrado (ex: Intel HD 4000) terá que renomear o device GFX para IGPU na DSDT, e adicionar este metodo no device IGPU:

Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
           {
               Store (Package (0x0A)
                   {
                       "device-id", 
                       Buffer (0x04)
                       {
                            0x66, 0x01, 0x00, 0x00
                       }, 


                       "vendor-id", 
                       Buffer (0x04)
                       {
                            0x86, 0x80, 0x00, 0x00
                       }, 


                       "AAPL,ig-platform-id", 
                       Buffer (0x04)
                       {
                            0x03, 0x00, 0x66, 0x01
                       }, 


                       "hda-gfx", 
                       Buffer (0x0A)
                       {
                           "onboard-1"
                       }, 


                       "layout-id", 
                       Buffer (0x04)
                       {
                            0x0C, 0x00, 0x00, 0x00
                       }
                   }, Local0)
               DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
               Return (Local0)
           }
       }

 

Verifique se não tem erros ou avisos, se não tiver salve a DSDT e coloque no local correto.


Verifique se audio e video está funcionado, se somente o video funcionou e não teve audio, vamos ter que modificar a AppleIntelFramebufferCapri.kext. Veja abaixo:


Método alterando a AppleIntelFramebufferCapri.

1 - Seção.

Informações sobre as conexões de video presentes na kext AppleIntelFramebufferCapri:


Vamos analizar o que está presente nesta kext que possibilita a ativação do Video.


Veja as iniciais dos valores correspondentes, que estão em números hexadecimais:

503 - LVDS (LCD integrado nos Notebooks)
602 - VGA
205/406/304 - HDMI/DVI/DP

 

2 - Seção.


Sobre os números hexadecimais.


No OS X Mavericks ouve uma leve mudança nos valores presentes na kext AppleIntelFramebufferCapri, em conparação com o Mountain Lion, algo que não me atrapalhou na ativação da entrada HDMI.


Valores do OS X Mountain Lion:

03 00 66 01 01 02 04 02 00 00 00 04 
00 00 00 01 00 00 00 20 10 07 00 00 
10 07 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 
05 03 00 00 02 00 00 00 30 00 00 00 
02 05 00 00 00 04 00 00 07 04 00 00 
03 04 00 00 00 04 00 00 81 00 00 00 
04 06 00 00 00 04 00 00 81 00 00 00



Valores do OS X Mavericks:

03 00 66 01 01 02 04 02 00 00 00 04 
00 00 00 01 00 00 00 40 10 07 00 00 
10 07 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 
05 03 00 00 02 00 00 00 30 00 00 00 
02 05 00 00 00 04 00 00 07 04 00 00 
03 04 00 00 00 04 00 00 81 00 00 00 
04 06 00 00 00 04 00 00 81 00 00 00

 

3 - Seção.


O que vai ser alterado para obter o funcionamento do HDMI.


Como viram acima as alterações foram poucas, apenas uma linha.

Agora como citado no inicio para obtermos o pleno funcionamento do HDMI temos de saber qual ig-platform-id está sendo usado, veja alguns valores.

0x00006601 (96MiB)
LVDS, DP, DP, DP
000066010003040300000006
000080010000002010070000
100700000000000000000000
000000000000000000000000
010000000200000030000000
020500000004000007000000
030400000004000007000000
040600000004000007000000

0x01006601 (96MiB)
LVDS, HDMI, DP, DP
010066010103040300000006
000080010000003010070000
100700000000000000000000
00000000f0d9050000000000
010000000200000030000000
020500000008000006000000
030400000004000007010000
040600000004000007010000
020000001100110000000000

0x02006601 (64MiB)
LVDS
020066010103010100000004
000080010000002010070000
100700000000000000de0500
00000000f0d9050000000000
010000000200000030000000
000000000100000040000000
000000000100000040000000
000000000100000040000000
000000001200000000000000

0x03006601 (64MiB)
LVDS, DP, DP, DP
030066010102040200000004
000000010000002010070000
100700000000000000000000
000000000000000000000000
050300000200000030000000
020500000004000007040000
030400000004000081000000
040600000004000081000000
000000000002001100000000

0x04006601 (32MiB)
LVDS
040066010103010100000002
000000010000001810070000
100700000000000000da0500
000000000000000000000000
050300000200000030020000
000000000100000040000000
000000000100000040000000
000000000100000040000000
000000000000000000000000

0x05006201 (32MiB)
DP, DP, DP
050062010002030200000002
000000010000002010070000
100700000000000000000000
000000000000000000000000
020500000004000011000000
030400000004000007010000
040600000004000007010000
000000000100000040000000
000000000000110000000000

0x06006201 (0MiB)
060062010000000000000000
000000000000001010070000
100700000000000000000000
000000000000000000000000
000000000100000040000000
000000000100000040000000
000000000100000040000000
000000000100000040000000
000000000000000000000000

0x07006201 (0MiB)
070062010000000000000000
000000000000001010070000
100700000000000000000000
000000000000000000000000
000000000100000040000000
000000000100000040000000
000000000100000040000000
000000000100000040000000
000000000000000000000000

0x08006601 (64MiB)
LVDS, DP, DP
080066010103030300000004
000000010000002010070000
100700000000000000000000
00000000f0d9050000000000
010000000200000030000000
020500000004000007010000
030400000004000007010000
000000000100000040000000
030000000100010010c80f00

0x09006601 (64MiB)
LVDS, DP, DP
090066010103030300000004
000000010000002010070000
100700000000000000000000
00000000f0d9050000000000
010000000200000030000000
020500000004000007010000
030400000004000007010000
000000000100000040000000
030000000000010010c80f00

0x0A006601 (32MiB)
DP, DP, HDMI
0a0066010002030200000002
000000010000002010070000
100700000000000000000000
000000000000000000000000
020500000004000007010000
030400000004000007010000
040600000008000006000000
000000000100000040000000
020000000000020010c80f00

0x0B006601 (32MiB)
DP, DP, HDMI
0b0066010002030200000002
000000010000002010070000
100700000000000000000000
000000000000000000000000
020500000004000007010000
030400000004000007010000
040600000008000006000000
000000000100000040000000
000000000000020010c80f00

 

Depois de verificar qual valor corresponde ao seu ig-platform-id, vamos alterar a linha que corresponde a entrada HDMI.


Faça um backup da kext, depois coloque a kext AppleIntelFramebufferCapri na Mesa, clique com o botão direito e vá em "Mostrar conteúdo do pacote" depois em Contents/MacOS.


Verá que dentro desta pasta está o arquivo chamado "AppleIntelFramebufferCapri" abra ele com o app Hex Fiend, e execute o comando ⌘ + F, vai abrir uma caixa de dialogo com as opções "Find" e "Replace".

post-1166456-0-78859000-1393271825_thumb.png


Agora que você está com os valores corretos do seu ig-platform-id, insira o valor correspondente (veja a lista acima) no campo "Find" e precione Enter, quando o valor está correto irá aparecer o resultado em azul, caso não esteja certo um "X" irá aparecer no lado esquerdo. Veja:

post-1166456-0-49760400-1393272434_thumb.png


Depois de se certificar que está com os valores corretos, copie e cole em um novo documento com o Editor de Texto, e organize desta maneira:

post-1166456-0-04579300-1393271688_thumb.png

Agora vamos mudar os valores para o funcionamento do HDMI. Todo audio HDMI funciona independente do ig-platform-id que está usando com este valor abaixo:

02 05 00 00 00 08 00 00 06 00 00 00

Veja como irá deixar:

post-1166456-0-88841500-1393271690_thumb.png


Depois que modificar, copie o valor inteiro e cole no campo "Replace" do app Hex Fiend, e clique no botão "Replace" que está abaixo dos campos.

post-1166456-0-64469300-1393271693_thumb.png


Feito isso salve.


Agora instale a kext modificada com o KextWizard, e repare as permissões e recarregue o cache, depois execute estes 2 comandos no Terminal:

sudo touch /System/Library/Extensions

 

Depois:

sudo nvram -c

 

Agora reinicie.


Método alterando a AppleIntelFramebufferCapri - Usando patch


Há um metodo muito funcional que possibilita habilitar a porta HDMI, usando apenas um patch.

1 - Baixe o patch. HD4000.zip

 

Feito isso, rode esse comando no Terminal:

cd Downloads/HD4000
./list

 

2 - Será criado varios arquivos, cada um deles é para um ig-platform-id diferente. Você já sabendo qual é o seu, edite, veja só:

post-1166456-0-69992100-1400868301_thumb.png


Como viu acima, este valor que eu inseri, é o valor HDMI.

02 05 00 00 00 08 00 00 06 00 00 00

 

Depois que você modificou, agora aplique o patch na kext - Deixe em System/Library/Extensions.


3 - Rode isso no Terminal:

sudo ./patch [nome do txt editado]

 

Ficaria assim

sudo ./patch 01660003-345264.txt

 

Esse metodo é 100% funcional, mas só terá sucesso se prestar atenção nos valores e deixar a formatação do arquivo como a original.


Feito isso, repare as permissões, recarregue o cache e reinicie.


3 - Seção.


Conecte seu Hack com um Televisor/Monitor a entrada HDMI, e vá em Preferências do Sistema > Som, terá de aparecer assim:

post-1166456-0-92860000-1393271731_thumb.png


Vá em Sobre este Mac > Informações do Sistema > Graficos > e veja se as informações sobre sua Televisão/Monitor está presente, e tem que estar com a informação "Televisão - Sim" na ultima linha.

post-1166456-0-32102500-1393271729_thumb.png


Informações adicionais.


Para o audio HDMI funcionar você tem que ter o audio funcionando nativamente, seja com a AppleHDA ou VoodooHDA.

Para devices integrados (IGPU) geramente se usa "onboard-1" nos patchs para DSDT. Alguns device dedicados (GFX) usam "onboard-2" Creditos da informação - Toleda

Tenha em mente que o OS X não vai prover o som, somente o Televisor/Monitor irá prover o som, volumes altos/baixos será controlado pelo Televisor/Monitor.

Para usar a AppleHDA veja isso: Guia de como corrigir a AppleHDA


Creditos: EMlyDinEsH, Bruxo, Toleda, Mirone e Pernacabeluda.

Thanks & Regards

IdeaPad Gaming 3i  Aspire A515-52 • Clover / OpenCore
We are in a great Forum, so, let's have some fun and learn from each other!

btn_donate_SM.gif

Link to comment
Share on other sites

olá


no meu caso uso ig-platform-id 4 que so tem lvds..


não percebi muito bem como editar a capri...


a capri já é editada com os valores de lvds da 3


se mexer no video .. fico sem..


05030000 02000000 30020000


05030000 02000000 30000000


para ter video já faço este patch


hdmi entra onde ?


bom hack

PB Easy Note TM 86 - i5 430 M - H55M - Ram - 6 GB - Alc272 - Radeon HD 5470 512 QE/CI

Lenovo G500 - i5 3230m - HM77 - Ram - 8 GB - Conexant audio - HD 4000

My OS X Files 

Link to comment
Share on other sites

Com esses patchs, seria na 2 linha.

0205 0000 0008 0000 0600 0000

 

Ou tenta usar com o Clover: http://www.insanelymac.com/forum/topic/296402-guia-facil-habilitar-audio-e-video-hdmi-intel-hd4000-clover/

Edited by Guest

Thanks & Regards

IdeaPad Gaming 3i  Aspire A515-52 • Clover / OpenCore
We are in a great Forum, so, let's have some fun and learn from each other!

btn_donate_SM.gif

Link to comment
Share on other sites

olá


com esses valores sem video...


e sem video audio n tem interesse em 1 laptop


de qualquer maneira obg pela sugestão


bom hack

PB Easy Note TM 86 - i5 430 M - H55M - Ram - 6 GB - Alc272 - Radeon HD 5470 512 QE/CI

Lenovo G500 - i5 3230m - HM77 - Ram - 8 GB - Conexant audio - HD 4000

My OS X Files 

Link to comment
Share on other sites

Só um detalhe, o valor depois do hífen no nome do arquivo é o offset onde se encontra a sequência de bytes contida no arquivo, o local onde o patch será escrito, então não adianta compartilhar esse arquivo, pois a menos que seja a mesma versão da kext, provavelmente esse valor será diferente e o patch não vai funcionar. É melhor que cada um edite o próprio arquivo gerado pelo comando list, assim é garantido que a versão da kext é a certa para o sistema e o offset está correto.

-Donations-

PayPal HERE - Stripe HERE - BuyMeaCoffee HERE - Mercado Livre HERE

Skrill danielnmaldonado@gmail.com - BTC 33HeGCuCSh4tUBqdYkQqKpSDa1E7WeAJQ3

PicPay @danielnmaldonado - PiX @danielnmaldonado@gmail.com

Premium Users HERE - Problems with Paypal HERE

xcd5u2Y.png

Link to comment
Share on other sites

Se usa gráfico integrado (ex: Intel HD 4000) terá que renomear o device GFX para IGPU na DSDT, e adicionar este método no device IGPU:

Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
           {
               Store (Package (0x0A)
                   {
                       "device-id", 
                       Buffer (0x04)
                       {
                            0x66, 0x01, 0x00, 0x00
                       }, 


                       "vendor-id", 
                       Buffer (0x04)
                       {
                            0x86, 0x80, 0x00, 0x00
                       }, 


                       "AAPL,ig-platform-id", 
                       Buffer (0x04)
                       {
                            0x03, 0x00, 0x66, 0x01
                       }, 


                       "hda-gfx", 
                       Buffer (0x0A)
                       {
                           "onboard-1"
                       }, 


                       "layout-id", 
                       Buffer (0x04)
                       {
                            0x0C, 0x00, 0x00, 0x00
                       }
                   }, Local0)
               DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
               Return (Local0)
           }
       }

Allan, não entendi essa parte de renomear o Device GFX.. Se eu renomeio ele para IGPU0 a minha dsdt não compila..

Ryzen 3400G @ 3.7Ghz | 2x8GB DDR4 3000Mhz | Gigabyte B450 Gaming X | Radeon RX 570 4GB | Samsung 750 EVO 250GB | macOS Catalina 10.15.4

Link to comment
Share on other sites

Mas como está fazendo essa alteração?

Realmente renomenando!

Onde está GFX0 coloco IGPU0.. Se estiver errado ou muito errado, perdão pela ignorância! :oops:

Ryzen 3400G @ 3.7Ghz | 2x8GB DDR4 3000Mhz | Gigabyte B450 Gaming X | Radeon RX 570 4GB | Samsung 750 EVO 250GB | macOS Catalina 10.15.4

Link to comment
Share on other sites

O correto é IGPU

Perdão pela ignorância..

Consegui fazer tudo certinho :mrgreen:

Os valores de device-id vendor-id dos patches precisam serem modificados? Os valores são respectivos ao vídeo ou ao áudio?

Se meu vídeo HDMI funciona certinho, mesmo assim preciso por o patch no IGPU?

Ryzen 3400G @ 3.7Ghz | 2x8GB DDR4 3000Mhz | Gigabyte B450 Gaming X | Radeon RX 570 4GB | Samsung 750 EVO 250GB | macOS Catalina 10.15.4

Link to comment
Share on other sites

Perdão pela ignorância..

Consegui fazer tudo certinho :mrgreen:

Os valores de device-id vendor-id dos patches precisam serem modificados? Os valores são respectivos ao vídeo ou ao áudio?

Se meu vídeo HDMI funciona certinho, mesmo assim preciso por o patch no IGPU?

 

Os valores que deixei são os meus, mas são os mais usados. Pode usar, mas se não tiver video, então o valor é outro.


Então, esse patch é para ativar o video, e o audio. Se tem video HDMI, tambem tem que usar esse path pra ter audio.

Thanks & Regards

IdeaPad Gaming 3i  Aspire A515-52 • Clover / OpenCore
We are in a great Forum, so, let's have some fun and learn from each other!

btn_donate_SM.gif

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.





×
  • Create New...