Jump to content
  • Announcements

    • Allan

      Forum Rules   04/13/2018

      Hello folks! As some things are being fixed, we'll keep you updated. Per hour the Forum Rules don't have a dedicated "Tab", so here is the place that we have our Rules back. New Users Lounge > [READ] - InsanelyMac Forum Rules - The InsanelyMac Staff Team. 
oldnapalm

Habilitar nVidia

40 posts in this topic

Recommended Posts

Esse patch permite habilitar os drivers da nVidia injetando as propriedades necessárias pelo DSDT.

 

plisteditor.png

 

Veja esse tópico para mais informações sobre as device-properties

http://www.insanelymac.com/forum/index.php?showtopic=215980

 

Para saber onde inserir o código você pode usar o IORegistryExplorer.

 

ioreg.png

 

Exemplo de código a ser inserido (no caso em P0P2)

                Device (GFX0)
               {
                   Name (_ADR, Zero)
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package ()
                           {
                               "@0,compatible", 
                               Buffer ()
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@0,device_type", 
                               Buffer ()
                               {
                                   "display"
                               }, 

                               "@0,name", 
                               Buffer ()
                               {
                                   "NVDA,Display-A"
                               }, 

                               "@1,compatible", 
                               Buffer ()
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@1,device_type", 
                               Buffer ()
                               {
                                   "display"
                               }, 

                               "@1,name", 
                               Buffer ()
                               {
                                   "NVDA,Display-B"
                               }, 

                               "NVCAP", 
                               Buffer ()
                               {
                                   /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
                                   /* 0008 */    0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 
                                   /* 0010 */    0x00, 0x00, 0x00, 0x00
                               }, 

                               "NVPM", 
                               Buffer ()
                               {
                                   /* 0000 */    0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                   /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                   /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                   /* 0018 */    0x00, 0x00, 0x00, 0x00
                               }, 

                               "VRAM,totalsize", 
                               Buffer ()
                               {
                                   0x00, 0x00, 0x00, 0x20
                               }, 

                               "device_type", 
                               Buffer ()
                               {
                                   "NVDA,Parent"
                               }, 

                               "model", 
                               Buffer ()
                               {
                                   "nVidia GeForce 9800 GTX"
                               }, 

                               "rom-revision", 
                               Buffer ()
                               {
                                   "nVidia GeForce 9800 GTX OpenGL Engine"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }

 

Em algumas placas mãe o device onde o GFX0 se encontra não está presente na DSDT, então você precisa inseri-lo também (em PCI0)

			Device (PEG1)
		{
			Name (_ADR, 0x00010000)
			Device (GFX0)
			{
				... igual ao exemplo acima
			}
		}

 

Exemplo de patches para o DSDT Editor:

 

Placas mãe Asus

nVidia_9800_GTX_512_MB.txt ( 2.59K )

 

Placas mãe Gigabyte

nVidia_9600_GT_1GB_PCI0.txt ( 3.45K )

Share this post


Link to post
Share on other sites

Eu não sabia disso. Tem vantagens mesmo usando o DSDT AutoPatcher?

Será que isso poderia corrigir o problema da minha Geforce 7900 GS que não funciona direito (tela da morte mesmo! rs) no Snow em x64?

Share this post


Link to post
Share on other sites

O resultado é o mesmo, deve funcionar da mesma forma que usando os métodos tradicionais.

 

O problema com a sua placa é na kext original da nVidia, infelizmente ativar via DSDT não deve resolver.

Share this post


Link to post
Share on other sites

Exatamente. Se não tem suporte no driver mesmo, nenhum metodo de "injecção" :( vai funcionar!

 

(...) Geforce 7900 GS que não funciona direito no Snow em x64?

 

Não tem drivers 64-bit para placas nvidia serie 7xxx desde 10.6.2 (ou era 10.6.3? Don't remember).

 

Nem no Mac autentico tem jeito. Não existe placas de serie 7xxx com Firmware EFI 64-bits pra Mac, então nvidia não tem motivo para suportar essas placas em modo 64-bit.

Share this post


Link to post
Share on other sites

oldnapalm Olá, peço desculpa pela minha linguagem, mas eu sou italiano, eu queria saber se você fez algumas melhorias para o driver para nvidia 9800GTX, eu uso string EFI para ele, e ele parece funcionar bem. Com o seu método funciona melhor com a seqüência de efi? obrigado :D

Share this post


Link to post
Share on other sites

Não há melhorias, na verdade este tópico apenas mostra outra forma de ativar os drivers. O desempenho deve ser o mesmo que usando string EFI, GraphicsEnabler ou NVEnabler.

Share this post


Link to post
Share on other sites

Muito obrigado pela resposta rápida ^_^

Português não é muito diferente do italiano :P

 

[OT] ligeiramente OT, uma vez que você tem a minha mesma placa de vídeo, você pode monitorar a temperatura da 9800gtx? Eu com iStat Menus e NVClockX tenho uma temperatura de 34 °C, parece pouco, você vê a temperatura da sua placa de vídeo? como? Muito obrigado [/OT] :D

Share this post


Link to post
Share on other sites

Eu também uso a NVClockX e tinha exatamente a mesma temperatura na última screenshot que tirei.

 

istat.png

 

Será que ela não está lendo a temperatura realmente? ^_^

 

Você tentou rodar algo que exija bastante da placa de vídeo e ver se a temperatura sobe? Eu não vou ter acesso ao PC com a 9800 GTX na próxima semana, então não tenho como testar agora, só quando voltar para casa.

Share this post


Link to post
Share on other sites

Eh eh eu também gostaria de saber se a temperatura está correta ^_^

 

Também porque com os drivers oficiais da nvidia ubuntu, Eu tinha uma temperatura de 55 °C :P

Se você tem notícias que eu adoraria ouvir de você :D

Share this post


Link to post
Share on other sites

Hi :)

Excuse me oldnapalm

I didn't understand how determinate these informations. Could you show me some examples?

 

"NVPM", 
Buffer ()
    {
       /* 0000 */    0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
       /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
       /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
       /* 0018 */    0x00, 0x00, 0x00, 0x00
    }, 

 

 

Thanks ^^

Share this post


Link to post
Share on other sites

Hi buoo,

 

actually I used the value generated by GraphicsEnabler, it's the same in all cases I saw. Just converted it to byte array

AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==

01000000 00000000 00000000 00000000 00000000 00000000 00000000

/* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0018 */ 0x00, 0x00, 0x00, 0x00

Share this post


Link to post
Share on other sites
Eh eh eu também gostaria de saber se a temperatura está correta :D

 

Também porque com os drivers oficiais da nvidia ubuntu, Eu tinha uma temperatura de 55 °C :D

Se você tem notícias que eu adoraria ouvir de você :)

Atualizei a NVClockX e agora a temperatura é mais realista

 

screenshot20110217at022.png

Share this post


Link to post
Share on other sites
Atualizei a NVClockX e agora a temperatura é mais realista

 

que Kext você usou?

Share this post


Link to post
Share on other sites

Hello,

 

 

 

I would like to learn how to do this as I am having many issues with my 9800m GTS, can't seem to get it working. Any chance getting this translated to english? Also would this method be much the same as manually injecting via gfx strings? Please help me understand, is this just so the card is recognized properly? Does it still need a driver?

 

Thanks for any help/suggestions!

Share this post


Link to post
Share on other sites
I would like to learn how to do this as I am having many issues with my 9800m GTS, can't seem to get it working. Any chance getting this translated to english? Also would this method be much the same as manually injecting via gfx strings? Please help me understand, is this just so the card is recognized properly? Does it still need a driver?

It's the same as manually injecting via gfx strings, and you still need the drivers, this is only an activation method.

 

Basically you have to look for parent device address in IORegistryExplorer (search for "display") and insert device GFX0 (look sample code) into the device with that address in DSDT.

Share this post


Link to post
Share on other sites

Caro amigo oldnapalm gostaria de saber se existe a possibilidade de ativar minha placa de video ZOTAC 9500GT 1GB acrescentando algo na minha DSDT da placa GA G41MT S2. Trabalho tal gostaria muito que fizesse para mim, em troca faço um tuto detalhado e posto aqui o que achas? Abraços!

 

*Desculpe pela mensagem direta.

Share this post


Link to post
Share on other sites

Posso fazer a edição, mas preciso que você anexe o dsdt.aml e as "device properties" em uso.

device-properties.hex

ioreg -lw0 -p IODeviceTree -n efi -r -x | grep device-properties | sed 's/.*<//;s/>.*//;' > ~/Desktop/device-properties.hex

dsdt.aml

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

Rode os comandos no terminal (use copiar/colar) e os arquivos serão gerados no desktop.

 

Parece que nas Gigabyte o device que contém o GFX0 não está presente na DSDT, então você precisa incluir os dois. Segue exemplo para o DSDT Editor

nVidia_9600_GT_1GB_PCI0.txt

Share this post


Link to post
Share on other sites

Grande Old,

Beleza parceiro?

É o seguinte, lembra que eu fiquei de ver contigo o lance do NVCAP para minha GFX, uma 9800 GT?

Eu esbarrei num porém... eu não tenho Windows onde eu possa rodar o NV Flash pra conseguir o NVCAP da minha GFX... existe alguma maneira de fazer isso via OS X?

 

Eu vou postar pra ti aqui a minha DSDT.aml e quando você tiver um tempinho dá uma olhadinha pra mim nela pra ver se ela está tudo OK.

Eu já usei o DSDT Auto-Patcher do Maldon nela.

 

Aqui o link.

 

Saudações,

bb.

Share this post


Link to post
Share on other sites
Inseri o patch da nVidia, só falta ajustar o NVCAP.

 

Não conheço forma de extrair a ROM pelo Mac OS, só aquele programa para Windows mesmo.

 

dsdt.aml.zip

 

Beleza meu caro.

Eu vou ver se consigo instalar o W7 aqui via Parallels e consigo esse NVCAP pra vc me dizer como inserir ele no DSDT.aml.

Me dê uns minutinhos aí... [risos]

 

[] 's

bb

 

Meu caro, outro problema surgiu.

Eu instalei o W7 pelo Parallels, porém o NVFlash quando acionado via Command + --save 9800GT.ROM me retorna a mensagem que nenhuma placa de vídeo NVIDIA está instalada.

Será que é porque ele enxerga o driver da GFX como algum arquivo relacionado ao Parallels?

 

[ ]'s

bb.

Share this post


Link to post
Share on other sites

Sim, pelo Parallels o programa não tem acesso à placa de vídeo física, mas sim à virtual. Tem que rodar o Windows nativamente.

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.

×