Jump to content

Multiple ATI Cards Topic on Snow Leopard


demik475
 Share

34 posts in this topic

Recommended Posts

Hello everybody.

 

I was trying to get two ATI cards working the last two weeks, and got partial success (read : it's useable, but it's missing some features). I wanted dual head desktop, and this was not possible with my ATI Card (Only DVI is working : Sapphire Vapor-X with custom layout)

 

I tested this with two cards :

- Saphhire Radeon 4890 Vapor-X 2 GB (ID: 0x94601002)

\_ http://www.sapphiretech.com/presentation/p...101&pid=298

- Saphhire Radeon 4670 Ultimate 512 MB (ID: 0x94901002)

\_ http://www.sapphiretech.com/presentation/p...001&pid=205

 

For the rest of my rig, please see my sig.

 

The 4890 will be called the Primary card and the 4670 Secondary. I think that every set of 46xx + 48xx can work. It can work with others pairs, but i'm pretty sure it's easier to go with 48xx + 46xx. It could work with 2+ cards too, I'm interested with results. If you are going another card to do this guide, I would suggest any 4670 as second card because of the following reasons :

- 4670 exists on Apple Hardware, thats means no .plist editing (thats goes for 0x94881002 and x94901002)

- 4670 draws very little power (15-40 Watts, 50 peak), and doesn't require an additional PCI power connector

- 4670 exists with passive coolers, such as the Sapphire model (but which is a custom layout board)

 

Whats working :

- Resolution change, both cards

- QE/CI, primary card

- OpenGL, both cards

 

Whats not working :

- QE/CI, secondary cards

- RAM Detection on 2GB+ cards

 

Not tested :

- VGA, HDMI

- OpenCL

 

What's needed :

- Retail Snow Leopard, 10.6.2+

- two different card (by different, I mean with two different PCI IDs)

- Developer tools if 46xx and Chameleon RC4

- a brain

- a motherboard with two PCI x16 slots

- some time

- C knowledge

- Unix tools knowledge (sudo, vim, make...)

- Kext Utility or anything that can rebuild kext caches

 

The idea :

The issue while running dual ATI cards seems to be with ATIRadeonX2000.kext or some injection that goes bad. I've not tried this guide with two identical cards, but there is reports from some people on IRC saying that it's not working, but feel free to report success or not ;)

 

Here is the trick :

For me, ATIRadeonX2000.kext Kernel Panic with a lot of bootloaders, I needed the netkask's custom one. It also goes mad with multiple cards (GPU crashes, freezes, Applications launched on the second card trying to be displayed on the wrong card, cursor going crazy on the second card, etc...). We will be disabling ATIRadeonX2000.kext, which will be run in safe mode. That means no QE/CI on the secondary GPU, but other stuff is working !

 

Steps :

#1#

Get your primary card working, they are a tons of guide for that, I will not explain that here, don't plug your second card yet.

This may help :

- try using different bootloader if it's freezing/KP on ATIRadeonX2000.kext, in order :

- netkask's beta bootloader

- PC EFI 10.5

- Chameleon RC4

(Note : only Chameleon RC4 worked for me, got Kernel Panic on ATIRadeonX2000.kext with PCI EFI or Beta Bootloader)

- Don't forget to add your primary device id to ATI4x00Controller.kext

- You my want to try netkask's patched kext for custom layouts : http://files.netkas.org/QE_CI_Exotic%20patch%2010.6.2.pkg

 

- Do the same by replacing your primary card by your secondary card. DON'T PLUG BOTH YET.

- If your secondary card is working, put your primary card back.

 

#1.b#

This is only needed with 46xx AND Chamelon RC4. If not, you can skip to step 2.

 

Chameleon RC4 is missing some framebuffer settings for 46xx cards, so we need to patch it. It appears that 46xx cards are using the Shrike framebuffer, and Chamelon RC4 inject them as Motmot, plus there is a template "bug".

 

- download Chameleon RC4 sources

- untar sources

- open a terminal and go to the Chameleon sources folder

- edit the i386/libsaio/ati.c file

- Find your PCI ID (around line 200) and change Motmot to Shrike (46xx only)

 

For me :

 

221 { 0x10029490, "Motmot"} ,

Becomes :

 

221 { 0x10029490, "Shrike"} ,

Search the following line (line 668) :

 

if(framebuffer[0] == 'M' && framebuffer[1] == 'o' && framebuffer[2] == 't') //faster than strcmp

Replace by :

 

if(1) // FIXME

(Note : we need to find a better way to fix that, and call evprop_add_ati_template_4xxx(device); only for 4xxx cards, maybe an id range ?)

 

- Save changes

- Type make embedtheme in the Chameleon sources folder :

 

demik@rampage ~/Chameleon-2.0-RC4-r684-src

% make embedtheme

 

- backup your /boot file, for example :

 

sudo cp /boot /boot.old

 

- install your patched Chamelon RC4 :

 

sudo cp Chameleon-2.0-RC4-r684-src/sym/i386/boot /boot

- reboot, it should work with your patched bootloader

- if it works, then go to step 2

 

#2#

- Don't forget to add your secondary device id to ATI4x00Controller.kext if needed

- Rebuild Kext caches if needed

- Reboot to test that

- Shutdown your workstation, and plug the secondary card

 

#3#

- Boot up in safe mode (-x -v flags)

- At this point, you should get both card running and displaying something.

- Edit /System/Library/Extensions/ATIRadeonX2000.kext/Contents/Info.plist

- search for :

 

48 <key>IOPCIMatch</key>

 

Removed every PCI ID but your primary card :

 

46 <key>IOMatchCategory</key>

47 <string>IOAccelerator</string>

48 <key>IOPCIMatch</key>

49 <string>0x94601002</string>

50 <key>IOProviderClass</key>

51 <string>IOPCIDevice</string>

52 <key>IOSourceVersion</key>

 

- Thats why we need two differents PCI IDs. If you find a way to disable ATIRadeonX2000.kext for the second card, this may work with two identical cards.

- Save changes

- rebuild kexts cache (with Kext Utility or something similar)

- Reboot in safe made, this should work

 

#4#

- cross fingers

- reboot in normal mode. If everything goes well, you will get at least :

 

- QE/CI on primary card

- dual+ screen

- Resolution change

- OpenGL on both cards (I can move my World of Warcraft Window from one card to another without loosing too much FPS (60 synced -> 45 FPS in Dalaran on the 4670)

 

- Screenshot for me : (yeah it's in french, sorry)

dual_ati_rampage.png

 

Good luck for trying

 

Random stuff :

- I got dual head working on the 4890 in Safe mode (DVI + DisplayPort with an HDMI2DVI Dongle plugged in), ATIRadeonX2000.kext {censored}up that

- Got VGA working on the 4670 by using Motmot framebuffer

- I will maintain an array of working dual+ GPU the post below.

- ioreg dump (see attachment)

 

PS :

- sorry for the broken english

- thanks to netkas and other people on #radeonhd for the help

ioreg_4890_4670_working.txt

Link to comment
Share on other sites

Wow! Thank you very much for that. I'm just about to attempt a similar installation. I've got the HIS ATI Radeon 4670 Turbo w/512Mg GDDR3 & dual-DVI + S-video out. It' took me quite a while, but I got working fully with QE&CI in Snow Leopard. But I could never get a unique display(picture) for each monitor. I got an amazing deal on a HIS ATI Radeon 4650 which I hope to get working together.

 

I was not able to recompile the source files into a patched 'boot' file. I get some warnings then it fails by Error 2 (can't find the rule for the ati.o for the libsaio.a). Probably something silly- and oversight on my part...

 

Thanks again and I'm anxious to hear about any progress & experiences along the way.

Link to comment
Share on other sites

That would be awesome! Actually I do not have my second card yet- should come tomorrow or Tuesday. But I am sure that it will have the same devid# (that is what someone else with that card said in another topic). They are both 9490 (the 4600 series).

Mainly I just want to be able to use my dual monitors as TWO monitors- currently I can only get my 4670 to feed the same image to both outputs and any controls to change that are absent from prefpanes.

 

That's going to complicate things that they will have the same ID, yes?

Thanks again for your help and sharing what you've learned! :)

 

It would also be nice if I could utilize DVI- currently the only way I can get any picture is when I have a VGA dongle attacked to both DVI outputs- I can have either one or two monitors attached but as I said- it's the same picture anyway. It's how other can only use the DVI outputs (having the same dev-id #s and everything). It's realy amuzing, too bad I don't know more about what's really causing the issues & discrepencies.

 

HAPPY NEW YEAR!

Link to comment
Share on other sites

That would be awesome! Actually I do not have my second card yet- should come tomorrow or Tuesday. But I am sure that it will have the same devid# (that is what someone else with that card said in another topic). They are both 9490 (the 4600 series).

Mainly I just want to be able to use my dual monitors as TWO monitors- currently I can only get my 4670 to feed the same image to both outputs and any controls to change that are absent from prefpanes.

 

That's going to complicate things that they will have the same ID, yes?

Thanks again for your help and sharing what you've learned! :(

From what I remember, 4650 is a different ID. and, that's going to be easier.

 

It would also be nice if I could utilize DVI- currently the only way I can get any picture is when I have a VGA dongle attacked to both DVI outputs- I can have either one or two monitors attached but as I said- it's the same picture anyway. It's how other can only use the DVI outputs (having the same dev-id #s and everything). It's realy amuzing, too bad I don't know more about what's really causing the issues & discrepencies.

 

Which bootloader are you using ?

Link to comment
Share on other sites

Got the card :) the ID is 9498 (HD4650) and the ID for the one I already had is 9490 (HD4670).

 

I'm using Cham2 RC4. I'm actually currently using a version of boot modded for some features of my mobo & DSDT (ASUS P6T Deluxe v2)... I'll include some information about those, but not expecting you to incorporate it. I made another attempt to mod the file but I wasn't able to get it to compile. I wish I could figure out why I'm having problems because I'm getting to the point that I'd like to be able to make these changes myself! But I greatly appreciate any assistance and/or guidance you are able/willing to share with me.

 

Right now I loose QE/CI & resolutions on my 4670 with they're both plugged in. Apparently, based on my research on here QE/CI will not run on the 4650 at all (at this point) but resolutions can be enabled but it sounds fairly complicated and riddled with limitations (like NOT using GraphicsEnabler=Yes) and maybe 32 bit kernel. I don't know why it's not supported but oh well. I just want to have QE/Ci & resolutions on the 4670...

 

I've also been experimenting with having Chameleon load dumps of the BIOSes of both cards... Do you have any experience with that? Any opinions? Knowledge?

 

Anyway... THANK you very much! I'm very happy to find someone else who is dealing a similar/parallel issue.

 

HAPPY NEW YEAR!!!

Link to comment
Share on other sites

Forgive my being a complete and utter noob at all this but here goes...

 

I've just re-entered the realm of PC building after a 6 year hiatus (seduced by the apple hardware) and I'm building a hackintosh. The only part I have ordered (outside of PSU, Case, and fans) is my board - GIGABYTE GA-EP45-UD3P.

 

I was hoping to run triple displays which is what lead me to this thread (and also lead me away from my iMac), I had planned on using the XFX 1GB iteration of the ATI 4670. (http://www.newegg.com/Product/Product.aspx?Item=N82E16814150450)

 

If I understand this correctly it is not possible to run two identical model cards? The two cards have to be different models? I want to run all 3 displays over DVI from the two separate cards (2 monitors connected to the first card, one monitor connected to the second leaving one port open possibly for a fourth display some day).

 

I'm going to be ordering my cards soon so if there is some testing or experimenting we can do with my system I'm open to it, just let me know what I should order for best results.

 

Thanks and I hope I can help / contribute.

Link to comment
Share on other sites

chukieboy, if going with ATI then you need to have two different variants of ATI cards. I.e. a 4890 and a 4870 or a 4870 and a 4850. If you haven't bought any cards yet then I'd suggest you look into nVidia cards though since they appear to have far better driver support and you can definitely get dual identical nVidia cards working.

Link to comment
Share on other sites

thank you for the clarification spanky! i was at fry's tonight and almost bought two 4670s, luckily i remembered this thread and decided to hold off, bought my optical drives instead.

 

any recommendation on a good nvidia card for running multiple displays on my hackintosh? no gaming going on here so it doesn't have to be high end, whatever is cost effective and will work well.

 

thanks again

Link to comment
Share on other sites

hi demik475

 

thanks for your help can you make boot file for dual ati 4870

 

0x94401002 2cards

 

asus striker exreme

 

thank you.

Link to comment
Share on other sites

So there is no way known as of yet to have 2 cards with the same deviceID running?

 

Not as far as I know, sorry.

 

Got the card :) the ID is 9498 (HD4650) and the ID for the one I already had is 9490 (HD4670).

 

I'm using Cham2 RC4. I'm actually currently using a version of boot modded for some features of my mobo & DSDT (ASUS P6T Deluxe v2)... I'll include some information about those, but not expecting you to incorporate it. I made another attempt to mod the file but I wasn't able to get it to compile. I wish I could figure out why I'm having problems because I'm getting to the point that I'd like to be able to make these changes myself! But I greatly appreciate any assistance and/or guidance you are able/willing to share with me.

 

Right now I loose QE/CI & resolutions on my 4670 with they're both plugged in. Apparently, based on my research on here QE/CI will not run on the 4650 at all (at this point) but resolutions can be enabled but it sounds fairly complicated and riddled with limitations (like NOT using GraphicsEnabler=Yes) and maybe 32 bit kernel. I don't know why it's not supported but oh well. I just want to have QE/Ci & resolutions on the 4670...

 

I've also been experimenting with having Chameleon load dumps of the BIOSes of both cards... Do you have any experience with that? Any opinions? Knowledge?

 

Anyway... THANK you very much! I'm very happy to find someone else who is dealing a similar/parallel issue.

 

HAPPY NEW YEAR!!!

 

Sorry dude, was AFK for a while.

Can you take a pic about the BIOSes dumps ?

 

Try to remove every PCI ID from ATIRadeonX2000.kext but 4670 and rebuild kext caches. You won't get QE/CI with your 4650 atm (second card), but you should get QE/CI working on your primary card (4670). Can you get resolutions working for both cards in safe mode ?

 

Could you post your ati.c patch somewhere, so I can take a look at it ?

 

Happy new year too :)

 

hi demik475

 

thanks for your help can you make boot file for dual ati 4870

 

0x94401002 2cards

 

asus striker exreme

 

thank you.

 

No need for a patched boot file with 48xx cards. It's only for 46xx series. And dual 4870 won't work atm, sorry.

 

chukieboy, if going with ATI then you need to have two different variants of ATI cards. I.e. a 4890 and a 4870 or a 4870 and a 4850. If you haven't bought any cards yet then I'd suggest you look into nVidia cards though since they appear to have far better driver support and you can definitely get dual identical nVidia cards working.

 

I second that :)

Link to comment
Share on other sites

thanks about 4870 2cards. ITs must be work under graphics enabler. i was try. its worked but mouselay problem.

 

thanks.

Link to comment
Share on other sites

Not as far as I know, sorry.

 

 

 

Sorry dude, was AFK for a while.

Can you take a pic about the BIOSes dumps ?

 

Try to remove every PCI ID from ATIRadeonX2000.kext but 4670 and rebuild kext caches. You won't get QE/CI with your 4650 atm (second card), but you should get QE/CI working on your primary card (4670). Can you get resolutions working for both cards in safe mode ?

 

Could you post your ati.c patch somewhere, so I can take a look at it ?

 

Happy new year too :D

 

 

Don't be sorry! You're helping me (us) for free from the kindness of your heart! :D I have been dealing with various other issues myself. Until today- I had no problem sucessfully compiling the new boot files- I did it exactly the same way. And somehow it worked this time! BUT when i used the Shrike FB I didn't get any output (with any combination of adapters, ports, plugs and etc.- spent over an hour testing and trying to get Shrike to work. I'm back to Motmot. I recently reinstalled OS X and now I'm getting terrible mouse jerks and delays on my 4650 (the other screen is fine). But I did not have that problem at all before. I thought I did everything the same. I obviously need to be more careful or keep better "records"/notes! LOL

Even without a special boot file i've been able to get QE/CI with my 4670 and full resolutions change on the 4650- which is good enough for me. I can NOT change resolutions with ANY cards in safe mode- can you?!

I'm just realizing that this terrible cursor/mouse problem may be because I think I actually ADDED the ID for my 4650 (which is 0x94981002) to ATIRadeonX2000 instead of removing it!

Oh, I'm also have to wait up to 3-4 minutes with a blue screen at as the GUI loads- before it was almost instantaneous. I hope that's it- I'm gonna remove all the other IDs now.

 

THANK YOU SO MUCH for this guide- it has been SO helpful!

Link to comment
Share on other sites

Don't be sorry! You're helping me (us) for free from the kindness of your heart! :) I have been dealing with various other issues myself. Until today- I had no problem sucessfully compiling the new boot files- I did it exactly the same way. And somehow it worked this time! BUT when i used the Shrike FB I didn't get any output (with any combination of adapters, ports, plugs and etc.- spent over an hour testing and trying to get Shrike to work. I'm back to Motmot. I recently reinstalled OS X and now I'm getting terrible mouse jerks and delays on my 4650 (the other screen is fine). But I did not have that problem at all before. I thought I did everything the same. I obviously need to be more careful or keep better "records"/notes! LOL

Even without a special boot file i've been able to get QE/CI with my 4670 and full resolutions change on the 4650- which is good enough for me. I can NOT change resolutions with ANY cards in safe mode- can you?!

I'm just realizing that this terrible cursor/mouse problem may be because I think I actually ADDED the ID for my 4650 (which is 0x94981002) to ATIRadeonX2000 instead of removing it!

Oh, I'm also have to wait up to 3-4 minutes with a blue screen at as the GUI loads- before it was almost instantaneous. I hope that's it- I'm gonna remove all the other IDs now.

 

THANK YOU SO MUCH for this guide- it has been SO helpful!

 

You are welcome :D

 

Interesting about Motmot vs Shrike. I have VGA only with Motmot, DVI only with Shrike. Some have only HDMI with Shrike. It's interesting enough to note that somewhere. Maybe a card layout issue.

 

I got the mouse jerking stuff and GUI delays too. That happens because ATIRadeonX2000 is loaded twice (you said you ADDED the ID for tour 4650), and something is {censored}ed up (don't know what yet). THe GUI delays happens when some debugger kicks in and dump lot of data and reboot the GPU. You should have a lot of hex dumps in /var/log/system.log or /var/log/kernel.log. It can happen in standard usage too (try playing a video on the second screen)

 

The best you can do here is to REMOVE the 4650 ID from ATIRadeonX2000. Try it with and without this ID in ATI4600Controller.kext. That should work.

 

Good luck :)

Link to comment
Share on other sites

I removed those IDs from ATIRadeonx2000 as soon as I finished that message and it of course resolved the issues... Silly me for adding them!

I'm currently getting HDMI output (only with something plugged into the DVI output- nothing plugged into the VGA) from my 4650 using Motmot (I believe VGA/CRT can work as well if nothing else is plugged in).

The 4670 (dual-DVI) somehow seems to have changed how it wants to work! LOL Now I can ONLY get output from the 2nd DVI while using a VGA dongle with nothing else plugged in. Before I was able to get output from both ports and something had to be plugged into both ports- even if just a dongle or cable leading "nowhere". Very strange! Seriously!

I really wish I could get DVI to work- at least for the 4670. It does seem odd that netkas said that the FB for the 4600 series is Shrike but it doesn't seem to work at all for me! Possible I made an error while editing the ati.c file? Do you have any suggestions on what I might be able to do to get that working?

 

Would you please send me or post a properly edited version of ati.c? My 4650 (0x10029498) is doing fine using Motmot so maybe better don't change it. But I would like to experiment with using Shrike for the 4670 (0x10029490).

I am using (very happily & successfully) the AsereBLN Booter - Based on Chameleon RC4 / PCEFI10.5. His sources are available at efi x users dot com. I'm posting the ati.c file from his latest release.

I can compile it...

 

THANK YOU!

 

OK- so we're not permitted to upload that type of file...

Link to comment
Share on other sites

Got your private message :) . Looking at this ati.c file asap.

 

OK, so I made a patch myself that I was able to successfully compile (I was having some trouble since I'm unfamiliar with the syntax of the programming language)- but with it I get video corruption on the 4670. the 4650 is still fine though (because I left it using motmot). Do you have any suggestions?

I'm thinking that might mean that it will not work with shrike :D I have tried various combinations of ports and adapters and either I get NO video output, or I get severe corruption- although it will temporarily, intermittently switch to a solid, light blue screen (which I am quite familiar with! LOL)- so that makes me think that maybe it can actually work (since the video corruption is a mostly black screen with rectangle patches of varying densities of scattered pixels.) I would love to get shrike to work on my 4670- but I know I may have to wait for an update from Apple or it may not happen.

 

Thanks for you help, feedback and advice!

Link to comment
Share on other sites

OK, so I made a patch myself that I was able to successfully compile (I was having some trouble since I'm unfamiliar with the syntax of the programming language)- but with it I get video corruption on the 4670. the 4650 is still fine though (because I left it using motmot). Do you have any suggestions?

I'm thinking that might mean that it will not work with shrike :D I have tried various combinations of ports and adapters and either I get NO video output, or I get severe corruption- although it will temporarily, intermittently switch to a solid, light blue screen (which I am quite familiar with! LOL)- so that makes me think that maybe it can actually work (since the video corruption is a mostly black screen with rectangle patches of varying densities of scattered pixels.) I would love to get shrike to work on my 4670- but I know I may have to wait for an update from Apple or it may not happen.

 

Thanks for you help, feedback and advice!

 

Ok. Strange about Shrike, something is broken there. But if you got dual card + dual head working, it's a start. I will wait for 10.6.3 too :D

 

So for the record, both cards ware working with Motmot, and a custom bootloader, 10.6.2, right ?

Link to comment
Share on other sites

Ok. Strange about Shrike, something is broken there. But if you got dual card + dual head working, it's a start. I will wait for 10.6.3 too :)

 

So for the record, both cards ware working with Motmot, and a custom bootloader, 10.6.2, right ?

 

Yes, both work with motmot. i use the boot file I sent you the link- but it has nothing to do with ati or graphics cards. they also work with chameleon 2 rc4 and PC EFI 10.5.

i saw some body else got DVI working with my exact same card- he doesn't know exactly how, but he says he's using cham 2 rc3 and 10.6.2. strange! LOL I have NO idea what direction to take except wait for an update from apple- hopefully 10.6.3 will have something helpful...

Link to comment
Share on other sites

So, I have 2 Gigabyte 4850 cards working just fine with 4 monitors under leopard. You are telling me there is currently no way for me to run Snow Leopard on my setup?

Well I have a dual 4850 setup running. Well the cards are from differnt vendors but both are 4850.

Crossfire connection for windows is connected. Multimonitor not tested yet. graphicsenabler=yes and 10.6.2 - give it a try

Link to comment
Share on other sites

Nice work, but what do you think about my question (to the author or anybody else):

Is there any chance to have working OSX86 on an Alienware M17 with crossfire two cards of ATI 4850 1GB?!

I think that the new iMac uses mobility 4850, but 512MB, mine are 1GB each.

Also how stands the thing about 2 cards/crossfire in a resolution for example like 1920x1200?!

Any little chance may be ;)

 

I know, that I want a lot, but ... by the way.

Thanks a lot.

Link to comment
Share on other sites

Well I have a dual 4850 setup running. Well the cards are from differnt vendors but both are 4850.

Crossfire connection for windows is connected. Multimonitor not tested yet. graphicsenabler=yes and 10.6.2 - give it a try

 

Yeah, I second that - during my 10.6.2 install I chose to run a single card - once all was up and running I put my rig back together for Win7. Hearing all the grief about running two identical cards, I didn't expect OSX to boot; but sure enough, with two Gigabyte HD4850 1GB's it worked?!...Surprised me, especially when I didn't make any soft/kext changes - left all as is, plugged the card in, and booted.

 

ODD BEHAVIOUR:

* Boot time was around a minute longer.

* Took a second or so for the other two screens to bring up the default backdrop from the blue.

* When mouse moves onto the 3rd screen, it appears to scroll inversely.

 

Other than this, the system functioned as normal.

 

NOTE: I didn't change a thing, so with some tweaking - surely this is 100% possible. Cheers All.

Link to comment
Share on other sites

 Share

×
×
  • Create New...