Jump to content

6870 with 4 monitors. Resetting display settings.


Lynge
 Share

45 posts in this topic

Recommended Posts

well, I took a stab in the dark, but if you want to edit your connector tables properly based on your card, you'll first need a rom dump of the vbios. Your can do this in windows using gpu-z. You'll get a bin file, but can just change the file extension to .rom, then can parse out the connector info using bcc9's script

Link to comment
Share on other sites

Here's an example of 5870 rom connector info. I didn't feel like booting Windows so just downloaded a bios dump online for show and tell purposes.

/Downloads/ati-personality.pl.0.10/radeon_bios_decode <XFX.HD5870.…
…1024.100523.rom
ATOM BIOS Rom:
SubsystemVendorID: 0x1682 SubsystemID: 0x2961
IOBaseAddress: 0x0000
Filename: 587XZF15.BIN
BIOS Bootup Message:
CYPRESS XT GDDR5 32Mx32 C00801 BIOS UCODEv:126							 
PCI ID: 1002:6898
Connector at index 0
Type [@offset 44528]: DisplayPort (10)
Encoder [@offset 44532]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44656]: 0x90, OSX senseid: 0x1
Connector at index 1
Type [@offset 44538]: HDMI-A (11)
Encoder [@offset 44542]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44683]: 0x93, OSX senseid: 0x4
Connector at index 2
Type [@offset 44548]: DVI-I (2)
Encoder [@offset 44552]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 44720]: 0x92, OSX senseid: 0x3
Connector at index 3
Type [@offset 44558]: DVI-I (2)
Encoder [@offset 44562]: INTERNAL_KLDSCP_DAC2 (0x16)
i2cid [@offset 44720]: 0x92, OSX senseid: 0x3
Connector at index 4
Type [@offset 44568]: DVI-I (2)
Encoder [@offset 44572]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 44757]: 0x94, OSX senseid: 0x5
Connector at index 5
Type [@offset 44578]: DVI-I (2)
Encoder [@offset 44582]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 44757]: 0x94, OSX senseid: 0x5

and compared to the Uakari framebuffer it uses:

Personality: Uakari
ConnectorInfo count in decimal: 4
Disk offset in decimal 165952
0000000    00  04  00  00  00  04  00  00  00  71  00  00  12  04  04  01
0000010    04  00  00  00  14  00  00  00  00  71  00  00  01  12  01  03
0000020    00  02  00  00  14  00  00  00  00  71  00  00  00  00  06  05
0000030    00  08  00  00  00  02  00  00  00  71  00  00  22  05  05  04
0000040

Link to comment
Share on other sites

Hi again. Just got distracted by work. Gotta do it to try and make some of those "money" I have heard so much about.

 

Anyway, thanks for the help so far. I have made a bios dump and I have been trying to make sense of the way it is converted into a personality, but I have given up.

 

I have been reading something here: http://www.insanelymac.com/forum/index.php?showtopic=252061 about how to get from bios dump to personality, but I am afraid it goes a little over my head. It's actually a little embarrassing as I call my self a developer and then I can't wrap my head around this :S

 

Could you either please help me understand? Or maybe it is just easier to do it for me? In any case, I am not sure of it makes any difference wether it is made for 10.7 or 10.8

 

Either way, thanks for your time so far :)

 

 

 

Here is the result from the radeon_bios_decode script:

ATOM BIOS Rom:
SubsystemVendorID: 0x1787 SubsystemID: 0x2305
IOBaseAddress: 0x0000
Filename: B6615BHA.HH1
BIOS Bootup Message:
BARTS XT 2G GDDR5 BIOS B6727BHA.HH1										
PCI ID: 1002:6738
Connector at index 0
Type [@offset 44205]: DisplayPort (10)
Encoder [@offset 44209]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44341]: 0x90, OSX senseid: 0x1
Connector at index 1
Type [@offset 44215]: DisplayPort (10)
Encoder [@offset 44219]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44368]: 0x91, OSX senseid: 0x2
Connector at index 2
Type [@offset 44225]: DisplayPort (10)
Encoder [@offset 44229]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 44395]: 0x92, OSX senseid: 0x3
Connector at index 3
Type [@offset 44235]: DisplayPort (10)
Encoder [@offset 44239]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 44422]: 0x93, OSX senseid: 0x4
Connector at index 4
Type [@offset 44245]: DisplayPort (10)
Encoder [@offset 44249]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 44449]: 0x94, OSX senseid: 0x5
Connector at index 5
Type [@offset 44255]: DisplayPort (10)
Encoder [@offset 44259]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 44476]: 0x95, OSX senseid: 0x6

Link to comment
Share on other sites

I would, but I dont know how. I dont have 10.8 installed. I can't get past the 2 white screens and the two flickering screens when the os installer boots up.

 

Maybe using -x on the kakewalk installer, but I dont know if this is passed on further. I will give it a try.

I could ofc also try to use duckweed to get at least 2 monitors working, I will try that too. Just a sec.

 

Darn, none of it worked.

Do you think it would make any difference if I used myHack instead to create the install stick?

 

Wonder why that last line didn't get its own post.

 

I can boot the kakewalk stick into singeuser mode, and it seems like any startup options I specify on the initial kakewalk screen, does not get sent along to the osx installer, but that is pure speculation on my part. Do you know of any way to type them again when performing a boot from singeuser mode perhaps?

Link to comment
Share on other sites

You may need to delete ATI6000Controller.kext from your install USB too and re add it after the install is done

 

to make your own USB installer, you can follow this and delete above mentioned kext

 

one addition to linked method, install newest Enoch to your USB since you don't already have a ML install

 

If the USB you already made works, you would just need to add boot flags before booting, so you should never get to single user mode. Never Kakewalked so maybe there's something I don't know, like no chameleon menu?

 

But it sounds like it does, or you wouldn't have had any where to enter -s or -x. So...delete ATI6000Controller.kext from usb, then booth with -x -f -v

Link to comment
Share on other sites

YAY! removing ATI6xxxController.kext from the usb installer did it. I now have a ML install running. Crappy graphics, but now I just need to get xcode and run ioreg to get you that file.

 

I have a question: Do I have to add the removed kext back in before running ioreg? Because I fear that if I add it back, the system wont start up.

  • Like 1
Link to comment
Share on other sites

add it back, you should be fine, it just doesn't seem to work in the installer for some reason. want the ioreg to be done with as much working as possible. Since 10.8 has different connector info already, you can try first with just GE=yes, but then also give stock Bulrushes another try.

Link to comment
Share on other sites

I am speaking to you from the land 4 monitor goodness and "near-OOB" perfection. I am in a state of zen and nothing seems to bother me :D

 

In other words, IT WORKS!!!

 

For some reason, I cannot run the kakewalk installer with the ATI6000Controller.kext it provides, but when it is added back in after the installation is complete, it just works! Everything!

 

I have been trying to see if it is running bad in some way, but I can play 720P movies and play flash games. Any other ideas to gauge if the driver is working like it should?

 

All effects seem to be running.

 

I cannot believe it was this simple. If only my initial ML image had not been corrupt, all this might have been avoided as I would probably have pursued that installation rather than trying to fix the old one. I did however learn something about how these cards a tied in with the system.

 

 

So, to recap.

Graphics card is a Club 3D Radeon HD 6870 Eyefinity 6 Edition

 

I made a Kakewalk install stick (not sure how much this matters, it might also work with custom or myHack sticks). Then I copied the kext: /path to your Kakewalk install stick/System/Library/Extensions/ATI6000Controller.kext to an empty USB stick and removed it from the Kakewalk stick. I did not repair permissions on the Kakewalk stick, probably not important if you do or not.

Then I was able to install 10.8 on the machine.

I then finished installing Kakewalk to the machine and before I rebooted, I got the kext from the other usb stick and put it back in /System/Library/Extensions/

Repair permissions and reboot with boot options -v -f. It should now recognize all 4 monitors.

 

TL;DR-version: The ATI6000Controller.kext cannot be present during OSX 10.8 installation, but must be injected afterwards to make the card work.

 

My specs:

Gigabyte X58A UD7

Club 3D Radeon HD 6870 Eyefinity 6 Edition 2GB

Intel core i7 9200

12 GB 1079 MHz DDR3

Intel 80GB SSD

 

Huge thanks to all who helped. Especially eep357 who let me waste such a large amount of his time with this enormous detour :D Thanks mate, I definitely ow you the infamous beer everyone seems to hand out :)

 

This thread could be renamed, if you wish, to something that would help others with the same card, find this little workaround.

 

Again, thanks for the help :D

Link to comment
Share on other sites

The only problem so far is that I have one of the smaller monitors in portrait mode, and moving windows around on it, seems a bit choppy.

Plus, I can no longer select what resolution I want for the monitors. Not that it has selected a wrong one. I suspect it is simply no longer an option in ML?

Link to comment
Share on other sites

So in reply to your prior post, ATI6000Controller issue while booting the ML installer is a known issue that effects any method you use, be it kakewalk, or home made, but is only a problem with the installer and is OK post install. I don't have a 6000 series card, so usually takes me a few minutes to remember that. For resolution on the monitors, double check as you should see something like this, where resolution only changeable if you switch to "scaled"

DELL 2407WFP.jpg DELL 2407WFP2.jpgVW37L HDTV10A-1.jpg

If it's still not changeable, double check what frame buffer is loaded, if generic or any other than bulrushes, you can once again try manually setting it along with AtiPorts=6. I also have a couple versions of the ATI6000 controller I edited the other day as I thought you already had gotten ML up and running when I did it.

Link to comment
Share on other sites

eep357: Yep, switching to scaled enables the resolution selector again. Thanks.

 

My framebuffer line looks like this:

ATY,AMD,RadeonFramebuffer@0  <class AtiFbStub, id 0x100000338, registered, matched, active, busy 0 (1965 ms), retain 8>

 

The only problems I am having with it is the slight chopping when dragging a large window to the vertical screen (I can live with this) and when maximizing chrome, the transition effect is also choppy. Not so when doing the same with Textmate for some reason. Maybe it is just a product of having such a large amount of screen realestate?

 

I just tried booting with Bulrushes and I got all black screens.

Link to comment
Share on other sites

The slight choppiness could either be from the fact that you're using the default FB as opposed to one that could be more optimized for your card. Another thing is that because of the 4 monitors the gpu has to power, there's also the 1024 memory size that will certainly play a big role when going beyond 2+ 1080p resolutions. I'd love to know what your gpu temps are like though because I know the more monitors I hook into my 6870 the more the temp bumps to push each one.

Link to comment
Share on other sites

Would gladly provide you with the temps, any suggestions on how to get them?

 

My card has 2048 and it shows up as such, but maybe that's not what you meant?

 

eep357: If you still have those files, I would love to try them out or did you need any more info to make them work?

Link to comment
Share on other sites

oops, sorry this thread got lost in my shuffle :) First try just forcing Bulrushes using bootflag: ATIConfig=Bulrushes

and digging for modified files, I believe/hope it was this modified ATI6000.zip

 

For temps, install FakeSMC from here HWSensors and include the radeon monitor plug-in (whatever it may be called this month) and then install a monitoring app such as iStat http://bjango.com/mac/istatmenus/

Link to comment
Share on other sites

I second the fact that I lost track of the thread because I didn't easily see it anymore but if 2048 is your number then it's the framebuffer that most likely isn't correctly set because a 2gb framebuffer on the gpu should easily handle 4 simultaneous 1080p outputs.

Link to comment
Share on other sites

 Share

×
×
  • Create New...