Jump to content
InsanelyMac Forum
Sign in to follow this  
empty skull

[ Guida ] Schede video Multiple

Recommended Posts

Tutti avranno sentito parlare del nuovo chamleon , e della possibilità di usare più schede video funzionanti sul proprio pc .. ma non esiste una guida , e dopo un paio di ore a perderci tempo ho deciso di scrivere una guida come non facevo da tempo !

 

Risultato :

 

Nvidia 9500 GT:
 Modello Chipset: Nvidia 9500 GT
 Tipo: GPU
 Bus: PCIe
 Larghezza Lane PCIe: x16
 VRAM (totale): 1024 MB
 Fornitore: NVIDIA (0x10de)
 ID dispositivo: 0x0640
 ID revisione: 0x00a1
 Revisione ROM: Nvidia 9500 GT  Slot 2
 Monitor:
Acer AL1714:
 Risoluzione: 1280 x 1024 @ 60 Hz
 Profondità pixel: Colore 32 bit (ARGB8888)
 Mostra numero di serie: ETL1809023  
 Mirror: Spento
 Online: Sì
 Rotazione: Supportata
Nvidia 9500 GT :
 Modello Chipset: Nvidia 9500 GT
 Tipo: GPU
 Bus: PCIe
 Larghezza Lane PCIe: x16
 VRAM (totale): 1024 MB
 Fornitore: NVIDIA (0x10de)
 ID dispositivo: 0x0640
 ID revisione: 0x00a1
 Revisione ROM: Nvidia 9500 GT  Slot 1
 Monitor:
V233H:
 Risoluzione: 1920 x 1080 @ 60 Hz
 Profondità pixel: Colore 32 bit (ARGB8888)
 Mostra numero di serie: LGQ0D0058500
 Monitor principale: Sì
 Mirror: Spento
 Online: Sì
 Rotazione: Supportata
Acer V233H:
 Risoluzione: 1920 x 1080 @ 60 Hz
 Profondità pixel: Colore 32 bit (ARGB8888)
 Mostra numero di serie: LFA0W0064330
 Mirror: Spento
 Online: Sì
 Rotazione: Supportata

 

Cosa ci occorre :

 

Chameleon : R1908

Efi studio

osx86tools

 

 

allora per prima cosa se avete già le vostre due schede montate fate dal terminale un bel :

 

Lista intera dei device

ioreg

 

Lista degli slot pci


ioreg | grep pci-bridge

 

 

Otterrete cosi :

 

 

| |   +-o pci-bridge@1  <class IOPCIDevice, id 0x1000001a2, registered, matched, active, busy 0 (7869 ms), retain 19>
| |   +-o pci-bridge@6  <class IOPCIDevice, id 0x1000001a3, registered, matched, active, busy 0 (8184 ms), retain 19>

 

con il comando ioreg potrete guardare ed essere sicuri che quel bridge sia quello della vostra scheda video :

 

 

-



-o pci-bridge@1  <class IOPCIDevice, id 0x1000001a2, registered, matched, active, busy 0 (7869 ms), retain 21>
| |   | +-o IOPCI2PCIBridge  <class IOPCI2PCIBridge, id 0x1000001c0, registered, matched, active, busy 0 (7832 ms), retain 7>
| |   |   +-o display@0  <class IOPCIDevice, id 0x1000001a4, registered, matched, active, busy 0 (7832 ms), retain 27>
| |   |	 +-o NVDA,Display-A@0  <class IONDRVDevice, id 0x100000334, registered, matched, active, busy 0 (395 ms), retain 10>
| |   |	 | +-o NVDA  <class NVDA, id 0x100000336, registered, matched, active, busy 0 (393 ms), retain 16>


o pci-bridge@6  <class IOPCIDevice, id 0x1000001a3, registered, matched, active, busy 0 (8184 ms), retain 21>
| |   | +-o IOPCI2PCIBridge  <class IOPCI2PCIBridge, id 0x1000001db, registered, matched, active, busy 0 (7806 ms), retain 7>
| |   |   +-o display@0  <class IOPCIDevice, id 0x1000001a5, registered, matched, active, busy 0 (7806 ms), retain 27>
| |   |	 +-o NVDA,Display-A@0  <class IONDRVDevice, id 0x10000032a, registered, matched, active, busy 0 (375 ms), retain 10>
| |   |	 | +-o NVDA  <class NVDA, id 0x10000032c, registered, matched, active, busy 0 (373 ms), retain 16>

 

bene ora conosciamo i pci root delle schede :

 

 


<key>PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>

<key>PciRoot(0x1)/Pci(0x6,0x0)/Pci(0x0,0x0)</key>


 

 

Come faccio a dire questo ??

 

 


PciRoot(0x1)


+-o PCI0@0  <class IOACPIPlatformDevice, id 0x100000129, registered, matched, active, busy 0 (55980 ms), retain 74>
| | +-o AppleACPIPCI  <class AppleACPIPCI, id 0x10000019f, registered, matched, active, busy 0 (55574 ms), retain 44>
| |   +-o pci8086,29e0@0  <class IOPCIDevice, id 0x1000001a1, registered, matched, active, busy 0 (3 ms), retain 18>

PciRoot(0x1)

| |   +-o pci-bridge@1  <class IOPCIDevice, id 0x1000001a2, registered, matched, active, busy 0 (7869 ms), retain 21>
| |   | +-o IOPCI2PCIBridge  <class IOPCI2PCIBridge, id 0x1000001c0, registered, matched, active, busy 0 (7832 ms), retain 7>
| |   |   +-o display@0  <class IOPCIDevice, id 0x1000001a4, registered, matched, active, busy 0 (7832 ms), retain 27>
| |   |	 +-o NVDA,Display-A@0  <class IONDRVDevice, id 0x100000334, registered, matched, active, busy 0 (395 ms), retain 10>

 

ovvero : <key>PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>

 

 

 

 

 

 

PciRoot(0x1)


+-o PCI0@0  <class IOACPIPlatformDevice, id 0x100000129, registered, matched, active, busy 0 (55980 ms), retain 74>
| | +-o AppleACPIPCI  <class AppleACPIPCI, id 0x10000019f, registered, matched, active, busy 0 (55574 ms), retain 44>
| |   +-o pci8086,29e0@0  <class IOPCIDevice, id 0x1000001a1, registered, matched, active, busy 0 (3 ms), retain 18>

PciRoot(0x6)

| |   +-o pci-bridge@6  <class IOPCIDevice, id 0x1000001a2, registered, matched, active, busy 0 (7869 ms), retain 21>
| |   | +-o IOPCI2PCIBridge  <class IOPCI2PCIBridge, id 0x1000001c0, registered, matched, active, busy 0 (7832 ms), retain 7>
| |   |   +-o display@0  <class IOPCIDevice, id 0x1000001a4, registered, matched, active, busy 0 (7832 ms), retain 27>
| |   |	 +-o NVDA,Display-A@0  <class IONDRVDevice, id 0x100000334, registered, matched, active, busy 0 (395 ms), retain 10>


ovvero : <key>PciRoot(0x1)/Pci(0x6,0x0)/Pci(0x0,0x0)</key>

 

quindi ora apriamo :

 

1 ) osx86tools

2 ) add EFI STRING

3 ) GFX STRING

4 ) Custom GeForce HEX

5) Compilate il tutto

 

ed avrete una cosa del genere :

 


[font="Courier"][size="1"]<?xml version="1.0" encoding="UTF-8"?>[/size][/font]
[font="Courier"][size="1"]<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">[/size][/font]
[font="Courier"][size="1"]<plist version="1.0">[/size][/font]
[font="Courier"][size="1"]<dict>[/size][/font]

[font="Courier"][size="1"]<key>PciRoot(0x1)/Pci(0x6,0x0)/Pci(0x0,0x0)</key>[/size][/font]
[font="Courier"][size="1"]<dict>[/size][/font]
[font="Courier"][size="1"]<key>@0,compatible</key>[/size][/font]
[font="Courier"][size="1"]<string>NVDA,NVMac</string>[/size][/font]
[font="Courier"][size="1"]<key>@0,device_type</key>[/size][/font]
[font="Courier"][size="1"]<string>display</string>[/size][/font]
[font="Courier"][size="1"]<key>@0,name</key>[/size][/font]
[font="Courier"][size="1"]<string>NVDA,Display-A</string>[/size][/font]
[font="Courier"][size="1"]<key>@1,compatible</key>[/size][/font]
[font="Courier"][size="1"]<string>NVDA,NVMac</string>[/size][/font]
[font="Courier"][size="1"]<key>@1,device_type</key>[/size][/font]
[font="Courier"][size="1"]<string>display</string>[/size][/font]
[font="Courier"][size="1"]<key>@1,name</key>[/size][/font]
[font="Courier"][size="1"]<string>NVDA,Display-B</string>[/size][/font]
[font="Courier"][size="1"]<key>NVCAP</key>[/size][/font]
[font="Courier"][size="1"]<data>[/size][/font]
[font="Courier"][size="1"]BAAAAAAAAwAEAAAAAAAABwAAAAA=[/size][/font]
[font="Courier"][size="1"]</data>[/size][/font]
[font="Courier"][size="1"]<key>NVPM</key>[/size][/font]
[font="Courier"][size="1"]<data>[/size][/font]
[font="Courier"][size="1"]AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==[/size][/font]
[font="Courier"][size="1"]</data>[/size][/font]
[font="Courier"][size="1"]<key>VRAM,totalsize</key>[/size][/font]
[font="Courier"][size="1"]<string>0x40000000</string>[/size][/font]
[font="Courier"][size="1"]<key>device_type</key>[/size][/font]
[font="Courier"][size="1"]<string>NVDA,Parent</string>[/size][/font]
[font="Courier"][size="1"]<key>model</key>[/size][/font]
[font="Courier"][size="1"]<string>Nvidia 9500 GT </string>[/size][/font]
[font="Courier"][size="1"]<key>name</key>[/size][/font]
[font="Courier"][size="1"]<string>display</string>[/size][/font]
[font="Courier"][size="1"]<key>rom-revision</key>[/size][/font]
[font="Courier"][size="1"]<string>Nvidia 9500 GT  Slot 1</string>[/size][/font]
[font="Courier"][size="1"]</dict>[/size][/font]

</dict>

[font="Courier"][size="1"]</plist>[/size][/font]

 

ora apriamo tex edit e copiate tutto il contenuto

 

rifate la procedura con la seconda scheda

 

ora copiate solo la parte della seconda scheda :

 

<key>PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>
<dict>
<key>@0,compatible</key>
<string>NVDA,NVMac</string>
<key>@0,device_type</key>
<string>display</string>
<key>@0,name</key>
<string>NVDA,Display-A</string>
<key>@1,compatible</key>
<string>NVDA,NVMac</string>
<key>@1,device_type</key>
<string>display</string>
<key>@1,name</key>
<string>NVDA,Display-B</string>
<key>NVCAP</key>
<data>
BAAAAAAAAwAEAAAAAAAABwAAAAA=
</data>
<key>NVPM</key>
<data>
AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
</data>
<key>VRAM,totalsize</key>
<string>0x40000000</string>
<key>device_type</key>
<string>NVDA,Parent</string>
<key>model</key>
<string>Nvidia 9500 GT </string>
<key>name</key>
<string>display</string>
<key>rom-revision</key>
<string>Nvidia 9500 GT  Slot 1</string>
</dict>

 

aprite text edit e copiate in questo modo la seconda parte :

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
[color=#0000ff]<key>PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>
<dict>
 <key>@0,compatible</key>
 <string>NVDA,NVMac</string>
 <key>@0,device_type</key>
 <string>display</string>
 <key>@0,name</key>
 <string>NVDA,Display-A</string>
 <key>@1,compatible</key>
 <string>NVDA,NVMac</string>
 <key>@1,device_type</key>
 <string>display</string>
 <key>@1,name</key>
 <string>NVDA,Display-B</string>
 <key>NVCAP</key>
 <data>
 BAAAAAAAAwAEAAAAAAAABwAAAAA=
 </data>
 <key>NVPM</key>
 <data>
 AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
 </data>
 <key>VRAM,totalsize</key>
 <string>0x40000000</string>
 <key>device_type</key>
 <string>NVDA,Parent</string>
 <key>model</key>
 <string>Nvidia 9500 GT </string>
 <key>name</key>
 <string>display</string>
 <key>rom-revision</key>
 <string>Nvidia 9500 GT  Slot 1</string>
</dict>[/color]
[color=#ff0000]<key>PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>
<dict>
 <key>@0,compatible</key>
 <string>NVDA,NVMac</string>
 <key>@0,device_type</key>
 <string>display</string>
 <key>@0,name</key>
 <string>NVDA,Display-A</string>
 <key>@1,compatible</key>
 <string>NVDA,NVMac</string>
 <key>@1,device_type</key>
 <string>display</string>
 <key>@1,name</key>
 <string>NVDA,Display-B</string>
 <key>NVCAP</key>
 <data>
 BAAAAAAAAwAEAAAAAAAABwAAAAA=
 </data>
 <key>NVPM</key>
 <data>
 AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
 </data>
 <key>VRAM,totalsize</key>
 <string>0x40000000</string>
 <key>device_type</key>
 <string>NVDA,Parent</string>
 <key>model</key>
 <string>Nvidia 9500 GT</string>
 <key>name</key>
 <string>display</string>
 <key>rom-revision</key>
 <string>Nvidia 9500 GT  Slot 2</string>
</dict>[/color]
</dict>
</plist>

 

Ora molto semplicemente cambiate il valore del pci root della seconda scheda al secondo pezzo appena inserito .

 

Ora ecco il barba trucco :

 

 

"NVDA,Parent"
"NVDA,Child"

Alla Prima scheda dovete dare il parametro : Parent

alla seconda scheda invece dovete dare : Child

 

1)

 

<key>device_type</key>

<string>NVDA,Parent</string>

 

 

2)

 

<key>device_type</key>

<string>NVDA,Child</string>

 

Ora apriamo EFI STUDIO :

 

1) add device

2) Copiamo il nostro plist che abbiamo su text edit e incolliamolo dove lui a scritto il suo plist

3) Salviamo la sequenza di numeri , ovvero l'hex da incollare del boot.plist

 

 

ora aprite il file : /Extra/org.chameleon.Boot.plist

 

Per prima cosa dovete cancellare la dicitura : Grapichs enabler

 

poi ora procedete a modificare il file inserendo apposto della mia combinazione in rosso la vostra , riavviate e buon divertimento :

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DropSSDT</key>
<string>Yes</string>
<key>EHCIacquire</key>
<string>Yes</string>
<key>EthernetBuiltIn</key>
<string>Yes</string>
<key>ForceWake</key>
<string>Yes</string>
<key>GenerateCStates</key>
<string>Yes</string>
<key>GeneratePStates</key>
<string>Yes</string>
<key>Kernel Flags</key>
<string>darkwake=0</string>
<key>KeyLayout</key>
<string>mac-it</string>
<key>Legacy Logo</key>
<string>Yes</string>
<key>Wake</key>
<string>Yes</string>

<key>device-properties</key>
<string>[color=#ff0000]940400000100000002000000430200000d00000002010c00d041030a010000000101060000010101060000007fff04001e00000072006f006d002d007200650076006900730069006f006e0000001a0000004e766964696120393530302047542020536c6f74203222000000400030002c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000004e00560043004100500000001800000004000000000003000400000000000007000000000e0000006e0061006d00650000000b000000646973706c617914000000400030002c006e0061006d0065000000120000004e5644412c446973706c61792d41100000006d006f00640065006c000000120000004e766964696120393530302047540e0000004e00560050004d000000200000000100000000000000000000000000000000000000000000000000000014000000400031002c006e0061006d0065000000120000004e5644412c446973706c61792d4220000000400031002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d6163220000005600520041004d002c0074006f00740061006c00730069007a0065000000080000000000004020000000400030002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d616322000000400031002c006400650076006900630065005f00740079007000650000000b000000646973706c61791c0000006400650076006900630065005f00740079007000650000000e0000004e5644412c4368696c64450200000d00000002010c00d041030a010000000101060000060101060000007fff04001e00000072006f006d002d007200650076006900730069006f006e0000001a0000004e766964696120393530302047542020536c6f74203122000000400030002c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000004e00560043004100500000001800000004000000000003000400000000000007000000000e0000006e0061006d00650000000b000000646973706c617914000000400030002c006e0061006d0065000000120000004e5644412c446973706c61792d41100000006d006f00640065006c000000130000004e76696469612039353030204754200e0000004e00560050004d000000200000000100000000000000000000000000000000000000000000000000000014000000400031002c006e0061006d0065000000120000004e5644412c446973706c61792d4220000000400031002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d6163220000005600520041004d002c0074006f00740061006c00730069007a0065000000080000000000004020000000400030002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d616322000000400031002c006400650076006900630065005f00740079007000650000000b000000646973706c61791c0000006400650076006900630065005f00740079007000650000000f0000004e5644412c506172656e74[/color]</string>

</dict>
</plist>

3monitor.tiff

Share this post


Link to post
Share on other sites
Advertisement

Una semplice domanda...

 

Hai necessariamente bisogno della stringa EFI nel org.chameleon.Boot.plist per riconoscere le due o tre schede??

 

Con il nuovo Chameleon 2.1svn dalla revisione1903 in su supporta le schede nVidia con il solo GraphicsEnabler...

 

Puoi farci sapere???

 

Fabio

Share this post


Link to post
Share on other sites

ErmaC io mi sono letto tutte le 62 pagine della discussione per risolvere il problema e dicono :

 

1 ) Per prima cosa quando usate più schede video dovete cancellare la dicitura : GraphicsEnabler

 

La stringa Efi serve per indirizzare il sullo slot PCI della seconda scheda tramite :

 

<key>PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>

 

e tramite il comando : Parent , Child differenziarle . Ovviamente questo si può fare anche con le ati ..

 

Ora il problema è che ho si crea un kext con questi parametri oppure ci vogliono le efi string .

 

Bisogna differenziare le schede e far così capire al sistema come utilizzare ..

 

 

Io e tanto che prova a far funzionare 2 schede video ho iniziato con le 2 x1950xt , sono riuscito sempre a farle vedere al sistema a darli un nome e tutto ma non sono mai riuscito a fargli capire se c'era un monitor collegato e quindi utilizzarla , e anche allora usavo le efi string .. quindi credo sia l'unica strada per ora percorribile .

 

CREDO ..

Share this post


Link to post
Share on other sites

CREDO ..

@empty skull

 

Ribadisco...

se usi Chameleon 2.1svn r1903 in su e hai due o più schede nVidia con il solo GraphicsEnabler=Yes sei sistemato, la nuova fix si occupa proprio di impostare "Child" se una seconda scheda viene trovata...

Provare per credere...

 

Anche io prima sistemavo la cosa (via DSDT) usando child al posto di Parent, ma con il nuovo camaleonte non serve più (Solo nVidia per ora)

 

Fabio

Share this post


Link to post
Share on other sites

Ma io ho provato .. e ho usato la r1908 ... e ti assicuro che con solo :

 

GraphicsEnabler=Yes

 

non va , vede la scheda ma non la usa .. ma questo l'ha sempre fatto ..

 

Provate e fatemi sapere , ma se ho scritto la guida è perché a me non andava se non con questa procedura , spero che voi siate più fortunati !

Share this post


Link to post
Share on other sites

Ciao Fabio ,

Quoto Skull niente da fare neanche per me con 1908 va a nero , devo sempre mettere iniezione .

 

è un pezzo che non ci sentiamo ;)

 

 

gigi

Share this post


Link to post
Share on other sites

Devo togliermi la curiositá.

 

Installate questa versione di chameleon (è della mia branch) ha una folta raccolta di ID di quasi tutte le schede grafiche nVidia uscite fino ad ora.

Vanno installati tutti e tre i binari, non solo rimpiazzato il file boot. (Chameleon Wizard vi agevola la vita)

 

ErmaC-i386-r1918.zip

 

Fabio

Share this post


Link to post
Share on other sites

Ragazzi scusatemi , ma alla fine se la scheda non è per pura sfortuna nei binari .. qui ho scritto come fare .. non era una discussione su questo boot .. ho solo voluto evitare 3 ore di smaneggi alla gente ..

 

Mi sembra assurdo fare una discussione se va o no il boot .. c'è una guida , se vi interessa usatela se no cancellatela .

Non volevo offendere nessuno scrivendo questo tutuorial .. volevo dare una mano .

 

Comunque se la cosa da fastidio , ditemelo subito che non scriverò mai più nulla come facevo da tempo . Io i miei hack funzionanti li ho ..

Share this post


Link to post
Share on other sites
Comunque se la cosa da fastidio , ditemelo subito che non scriverò mai più nulla come facevo da tempo . Io i miei hack funzionanti li ho ..

 

Ciao empty skull.

 

La cosa non da fastidio, anzi tutto il contrario, apprezzo molto l'intervento e la guida che hai proposto.

Il dubbio nasce semplicemente dal fatto che è stata applicata una Fix (temporanea) ai sorgenti del boot allo scopo di ovviare proprio a quel problema,

e permettere l'utilizzo di più schede.

 

Non hai offeso nessuno, l'hack è fatto anche di esperimenti, prove successi e fallimenti...

E condividendo questo genere di cose viene ad arricchirsi/agevolarsi lo "smanettamento" in generale.

 

PS: Ti faccio anche notare che la guida è stata messa in evidenza nella sezione GUIDE.

 

Fabio

Share this post


Link to post
Share on other sites

Scusate ragazzi.

Lo stesso vale per 2 schede diverse (esempio una ATI e una Nvidia)?

Se così fosse, se io volessi far partire come "primaria" la Nvidia" dovrei mettere questa come "parent"?

Grazie per le risposte

Share this post


Link to post
Share on other sites
Guest
You are commenting as a guest. If you have an account, please sign in.
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.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.



×