Jump to content
renaut_c

GT430 et dual screen

20 posts in this topic

Recommended Posts

Salut

Je tourne avec une vielle config (i5 750 - GA-P55-UD3R). J'avais la dedans une HD4890 qui vient de claquer.

J'ai clairement pas le temps (et le budget) pour monter une config neuve. J'ai un max de taf en retard. 
Un pote m'a filé une GT430 pour faire rustine. 
 

Elle fonctionne out of the box (avec inject nvidia dans clover) mais le dual screen est impossible... Le pc boot sur la sortie DVI (avec adaptateur VGA), va jusqu'au logo apple et une fois sous l'OS, je bascule sur sur la sortie VGA et je perd le DVI.

 

J'ai installé les web driver Nvidia, ca ne change rien. 


Quelqu'un aurait une piste a me proposer ?

Share this post


Link to post
Share on other sites
Advertisement

Peut-être un injection des propriétés nVidia dans ta DSDT. Poste un extrait IOReg depuis l'application IORegistryExplorer + ton répertoire EFI Clover.

 

Pour l'injection des propriétés de ta carte dans ta DSDT, ça serait un truc dans le genre ci-dessous (récupéré sur un autre forum) à rajouter sous le device associé à ta GT430 que tu devras identifier dans ton IOReg. Ca, je ne sais pas le deviner. Le code est éventuellement à adapter en fonction des ports disponibles sur ta carte: VGA/DVI/HDMI.

                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package ()
                            {
                                "@0,compatible", 
                                Buffer (0x0B)
                                {
                                    "NVDA,NVMac"
                                }, 

                                "@0,connector-type", 
                                Buffer (0x04)
                                {
                                    0x00, 0x02, 0x00, 0x00     // DVI connector-type for 1st display output @0
                                }, 

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

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

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

                                "@1,connector-type", 
                                Buffer (0x04)
                                {
                                    0x00, 0x08, 0x00, 0x00     // HDMI connector-type for 2nd display output @1
                                }, 

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

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

                                "NVCAP", 
                                Buffer (0x14)
                                {
                                    /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
                                    /* 0008 */    0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
                                    /* 0010 */    0x00, 0x00, 0x00, 0x00
                                }, 

                                "VRAM,totalsize", 
                                Buffer (0x04)
                                {
                                    0x00, 0x00, 0x00, 0x40     // 1024MB VRAM
                                }, 

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

                                "model", 
                                Buffer (0x16)
                                {
                                    "nVidia GeForce GT 430"
                                }, 

                                "hda-gfx", 
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }

 

Tu pourras éventuellement rajouter un 3ème port @2 avec le connector-type VGA (0x00010000) si nécessaire ou modifier le 2nd port @1. Après, je ne garantie rien pour les données NVCAP. On pourra déjà regarder ce que ça donnera dans ton extrait IOReg.

 

Sinon, fais une recherche sur "dual screen GT430" et tu trouveras pas mal de choses sur le Net.

Edited by Hervé

Share this post


Link to post
Share on other sites

Ok, donc, en IOReg, on voit la carte GT430 sous le bridge PCI @3 (0x00030000) avec:

  • la partie video sous le device "display"@0
  • la partie audio sous le device "10de,bea"@0,1

Video.thumb.png.69eb9ed101b9ed32e98bb1d83c845150.png

 

Audio.thumb.png.d64832a047875f309bef040d52c1cd9c.png

 

On va pouvoir essayer d'injecter les propriétés de la carte dans la DSDT (qui est loin d'être un top en la matière...).

 

Pour le 1er port vidéo Display-A@0, on voit:

  • port number = 0
  • connector-type = HDMI (0008 0000)
  • display-cfg = 0301 0300
  • boot display = true

 

Pour le 2nd port vidéo Display-B@0, on voit:

  • port number = 2
  • pas de connector-type
  • display-cfg = FFFF 0001

 

Questions:

  1. combien de ports sur la carte et quel type?
  2. quel port était utilisé quand tu as pris ton extrait IOReg? DVI ou VGA?
  3. peux tu passer en simple écran sur l'autre port et reprendre un extrait IOReg et le poster?

 

En attendant, j'ai corrigé les quelques petites erreurs de la DSDT d'origine et injecté ceci sous le device AZAL:

            Device (PEG0)
            {
                Name (_ADR, 0x00030000)  // _ADR: Address
                
                Device (GFX0)
                {
                    Name (_ADR,0x00)
                    Method (_DSM, 4, NotSerialized)
                    {
                        If (LEqual (Arg2, Zero))
                        {
                            Return (Buffer (One)
                            {
                                0x03
                            })
                        }
                        Return (Package ()
                        {
                            "@0,compatible", 
                            Buffer (0x0B)
                            {
                                "NVDA,NVMac"
                            }, 
                            "@0,name", 
                            Buffer (0x0F)
                            {
                                "NVDA,Display-A"
                            }, 
                            
                            "@0,device_type",
                            Buffer ()
                            {
                                "display"
                            },
                            "@0,connector-type", 
                            Buffer (0x04)
                            {
                                0x00, 0x08, 0x00, 0x00     // HDMI connector-type for 1st display output @0, port #0
                            }, 
                            "@0,display-cfg", 
                            Buffer (0x04)
                            {
                                0x03, 0x01, 0x03, 0x00
                            }, 
                            "@1,compatible", 
                            Buffer (0x0B)
                            {
                                "NVDA,NVMac"
                            }, 
                            "@1,name", 
                            Buffer (0x0F)
                            {
                                "NVDA,Display-B"
                            }, 
                            "@1,device_type", 
                            Buffer (0x08)
                            {
                                "display"
                            }, 
                            "@1,connector-type", 
                            Buffer (0x04)
                            {
                                0x00, 0x02, 0x00, 0x00     // DVI connector-type for 2nd display output @1, port #2
                            }, 
                            "@0,display-cfg", 
                            Buffer (0x04)
                            {
                                0xFF, 0xFF, 0x00, 0x01
                            }, 
                            "NVCAP", 
                            Buffer (0x14)
                            {
                                /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
                                /* 0008 */    0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
                                /* 0010 */    0x00, 0x00, 0x00, 0x00
                            }, 
                            "VRAM,totalsize", 
                            Buffer (0x04)
                            {
                                0x00, 0x00, 0x00, 0x40     // 1024MB VRAM
                            }, 
                            "device_type", 
                            Buffer (0x0C)
                            {
                                "NVDA,Parent"
                            }, 
                            "model", 
                            Buffer ()
                            {
                                "Gigabyte GeForce GT 430"
                            },
                            
                            "hda-gfx", 
                            Buffer (0x0A)
                            {
                                "onboard-1"
                            }
                        })
                    }
                }
                Device (HDAU)
                {
                    Name (_ADR,0x01)
                }
            }

Ci-dessous la DSDT patchée. Copie la dans le répertoire Clover ACPI/patched et redémarre. Prend les IOReg avec un seul écran connecté (HDMI / VGA / DVI) et poste les IOReg correspondants.

DSDT.aml.zip

 

Edited by Hervé

Share this post


Link to post
Share on other sites

Alors je viens de tester avec le DSDT patché

Avec juste le DVI, je boot et apres le logo apple... ecran noir.. Je suis passé par vnc pour l'export.

Quand j'ai les deux ports d'utilisé la machine boot sur le DVI jusqu'au logo Apple et ensuite bascule sur le VGA.

 

ioreg.zip

Share this post


Link to post
Share on other sites

Ok, donc dans tes IOReg on voit:

1) VGA: un display0 rattaché au 2ème port Display-B@1, quand bien même le connector-type est défini avec la valeur DVI 0002 0000

2) DVI: aucun display0 visible, d'où ton écran au noir

 

Donc, soit le DVI devrait être rattaché au 1er port Display-A@0 qui est défini avec un connector-type HDMI 0008 0000, soit il faudrait définir un 3ème port Display-C@2 avec le connector-type DVI. Je penche plutôt pour la 2ème solution puisque, après tout, la carte dispose bien de 3 x ports de sortie. Après, il faudra voir du côté du NVCAP qui défini, en principe, les capacités de la carte en terme  de sortie vidéo.

 

Je vais te refaire 2 x DSDT patchées à essayer...

 

Edited by Hervé

Share this post


Link to post
Share on other sites

DSDT avec 2 x ports Display-A@0 en connector-type DVI et Display-B@1 en connector-type VGA:

DSDT_DVI-VGA.aml.zip

 

DSDT avec 3 x ports Display-A@0 en connector-type HDMI, Display-B@1 en connector-type VGA et Display-C@2 en connector-type DVI:

DSDT_HDMI-VGA-DVI.aml.zip

 

Je vais essayer de remettre en route mon vieux Dell Vostro 200ST qui est équipé d'une GT610 avec 3xports comme ta GT430 (1xDVI + 1xHDMI + 1xVGA) et voir ce que ça donne en IOReg. 'me souviens plus...

Edited by Hervé

Share this post


Link to post
Share on other sites

En dernier lieu, on peut regarder à modifier le NVCAP. Il faudrait extraire le BIOS video de ta carte nVidia de manière à récupérer un fichier .ROM. En principe, c'est faisable depuis Windows avec des outils type GPU-Z. On pourra ensuite ouvrir ce fichier dans l'outil NVCAP Maker pour comparer la valeur du NVCAP et modifier l'injection DSDT si nécessaire.

 

Sinon, il y a aussi des sites qui proposent des BIOS de cartes graphiques déjà extraits. Exemple:

https://www.techpowerup.com/vgabios/?architecture=NVIDIA&manufacturer=Gigabyte&model=GT+430&interface=&memType=&memSize=&since=

 

On voit dans tes extraits IOReg que tu disposes d'une carte Gigabyte GeForce GT 430 et que la version BIOS de ta carte est 70.08.29.00.01. C'est dans la liste du site ci-dessus:

https://www.techpowerup.com/vgabios/?architecture=NVIDIA&manufacturer=Gigabyte&model=GT+430&interface=&memType=&memSize=&since=

 

 

Edited by Hervé

Share this post


Link to post
Share on other sites

Salut

 

J'ai testé les deux dsdt sans succès. Y a un truc à activer dans clover pour les prendre en compte ? 

 

Sinon le bios est la https://www.dropbox.com/s/bh18igsnbupr36g/Bios.rom?dl=0

Share this post


Link to post
Share on other sites

Ok, dans ton IOReg, le NVCAP avait la valeur suivante:

04 00 00 00 00 00 03 00 0c 00 00 00 00 00 00 07 00 00 00 00

 

Et avec ton BIOS video, comme avec ceux du site indiqué ci-dessus, NVCAP Maker retourne la valeur suivante:

04 00 00 00 00 00 03 00 08 00 00 00 00 00 00 07 00 00 00 00

 

J'ai donc modifié ta DSDT en conséquence.

DSDT.aml.zip

 

Edited by Hervé

Share this post


Link to post
Share on other sites

Pas d'info NVCAP dans Clover puisque je l'injecte via DSDT.

 

Si c'est non concluant, désolé, je n'ai rien d'autre à proposer à part essayer d'autres SMBIOS comme MacPro5,1 ou iMac10,1 par exemple.

Edited by Hervé

Share this post


Link to post
Share on other sites

Merci quand meme :)

j'ai pas tout compris a ce que tu as fait mais c'etait cool.

je crois que je vais devoir faire evoluer ce vieux i5 750 ...

Bon, par contre, semblerait que les nouvelles configs n'aiment pas les ecrans VGA... Ca c'est con ! 

Share this post


Link to post
Share on other sites

Je viens de sortir mon desktop Dell Vostro 200ST de l'armoire; c'est un bon vieux Core2Duo (E8600) avec carte nVidia GT610 qui dispose de 1xDVI + 1xVGA + 1xHDMI. Il tourne sous Mavericks (je ne l'ai jamais remis à jour) avec SMBIOS iMac10,1. J'ai vérifié le double écran DVI + VGA et ça fonctionne "OOB" comme on dit.

 

Du coup, j'ai regardé dans l'IOReg et le NVCAP est le suivant:

04 00 00 00 00 00 06 00 09 00 00 00 00 00 00 0a 00 00 00 00

 

Tu peux peut-être essayer avec cette valeur là.

Edited by Hervé

Share this post


Link to post
Share on other sites

Bon alors ca n'a pas marché mais... j'ai testé un truc... J'suis passé d'Imac 11.3 a Macpro 3.1 et... bim dual screen... 

Bon, mon profil d'ecran n'est pas pris en compte et je vais recalibrer la chose mais sinon ca fonctionne... je comprend pas...

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.

×