Jump to content

4890 and 4870 X2


davewolfs
 Share

91 posts in this topic

Recommended Posts

It seems like 4870x2 is working with some fixing now a days. I really would like to request a howto for the beginners.

Would that be possible for someone to write? Wich files do I need and how do make the card to work. Thanks for the good work guys.

 

Seconded! I mean I consider myself to be fairly up on my tech (I'm a C++ programmer) but the discussion here has gone well above my head also. :) Some sort of how-to would be great and would ensure that all those hours of frustration spent trying to figure out this stuff in the first place were not wasted.

 

Great work though! :)

Link to comment
Share on other sites

u can now enable second core, with new aty_init pkg, need to edit natit's plist tho, set PCIClassmatch , to make it attache only to second chip.

 

and it kind of useless if u dont have outptus from second card.

Link to comment
Share on other sites

Seconded! I mean I consider myself to be fairly up on my tech (I'm a C++ programmer) but the discussion here has gone well above my head also. :) Some sort of how-to would be great and would ensure that all those hours of frustration spent trying to figure out this stuff in the first place were not wasted.

 

Great work though! :)

Yea, a beginners guide would be very welcome.

Link to comment
Share on other sites

This method uses an EFI string. If you do not know what that is, look it up. You need to have a vanilla osx86 install with Chameleon bootloader, preferably 2.0 RC1. Thanks for all this must go to both Netkas and BlackKnight for working most of it out and getting the files edited correctly. Thanks guys!

 

UPDATED: This will now use Netkas' new Natit kext, which now works for 4870X2, tested by me. You can ignore the instructions with strikeout through them, I'm leaving them there only for people who prefer to use EFI strings to an injector.

 

 

What you will need -

 

1. KextHelper to install the drivers automatically. http://web.mac.com/v1.42ghz/Kext_Helper/So...Helper%20b7.zip

 

2. ATI drivers for 4870X2 (already modified, no extra modifications needed) http://redirectingat.com/?id=292X457&u...el.tar.bz2.html (thanks to Netkas).

 

3. 10.5.7 OpenGL.framework (this file goes into /System/Library/Frameworks and overrides the one there). http://www.mediafire.com/download.php?z2atjzyjwm5 (thanks drumthrasher109).

 

4. Netkas' Natit for 4870X2: http://redirectingat.com/?id=292X457&u...xt.tar.bz2.html

 

 

 

 

You will also need this ATINDRV.kext which I have attached at the bottom of the thread. This has the Quail framebuffer in it.

 

4. gfxutil (google for it) - Use this to get the device location for your device. Drag the program's executable into Terminal and use the following switch: "- f display"

and you will get output something along the lines of:

 

"DevicePath = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x8,0x0)/Pci(0x0,0x0)"

 

Change the 0x8 that you see to 0x4 so you get something like this:

 

"DevicePath = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x4,0x0)/Pci(0x0,0x0)"

 

(could be different, depends on which slot your card is in your PC. DO NOT JUST COPY THIS STRING. It may not work. You must get your own string.

 

ALSO IMPORTANT: Only use from "PciRoot", don't include the "DevicePath" as part of the string. When later converting it to the EFI hex string it will cause an error if you do include it.

 

(Thanks to BlackKnight for letting us know how to do this).

 

Okay, now we should have just about everything we need to get started. So here we go:

 

1. Install all the neccessary kexts and Natit using Kexthelper, and install the Opengl.framework file manually by copy/pasting and entering your password at the prompt.

 

2. If you have used gfxutil to get your correct device location, put that into the top of the "4870X2.plist" file I have provided at the bottom of the page. Mine is already in there, but change it to whatever it said for your system.

 

 

3. Now comes the tricky stuff: you need to convert the plist file with your modified device path to a hex string that will go into the boot file, to make the whole thing work.

 

Drag gfxutil into Terminal again, and use the commands "-i xml -o hex /(insert your path to 4870X2.plist here) ./4870X2.hex". This is simply:

 

-i - input file and type XML

-o output file and type HEX

 

then the location of the input file, and 4870X2.hex as the output file which will be dumped in /Users/(you)/

 

 

4. Copy com.apple.boot.plist to your desktop from /Library/Preferences/SystemConfiguration/

 

 

5. Open the 4870X2.hex file with TextEditor. You will see a huge string of numbers and letters. Copy the entire contents of the hex file, and paste them into your boot.plist file on your desktop so it looks like this:

 

<?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>Kernel</key>

<string>mach_kernel</string>

<key>Kernel Flags</key>

<string></string>

<key>device-properties</key>

<string>ec0300000100000001000000e00300001300000002010c00d041030a000000000101060000010

01060000000101060000040101060000007fff04001e0000004100540059002c00560065006e0064

06f0072004900440000000800000002100000280000004100540059002c004d0065006d005200650

76006900730069006f006e00490044000000060000000100240000004100540059002c004d006500

d00560065006e0064006f007200490044000000060000000600360000004100410050004c002c006

00750078002d0070006f007700650072002d0063006f006e006e0065006300740065006400000008

00000010000000e0000006e0061006d0065000000130000004154592c517561696c506172656e741

0000006400650076006900630065005f0074007900700065000000......... etc etc....</string>

</dict>

</plist>

 

You will need to add the <key>device-properties</key> and the <string>(HEX STRING)</string> yourself.

 

 

6. You should now copy your com.apple.boot.plist BACK to it's original home in /Library/Preferences/SystemConfiguration, deleting the original one first. You will be asked for your password to both delete and copy the new file.

 

 

 

Delete /System/Library/Extensions.mkext.

 

If you restart your machine now, on the next boot use the -f -v flags to rebuild the cache.

 

If you're lucky everything should work now.

 

 

I had the problem of only the port FURTHEST away from the motherboard worked, with a straight DVI connection. The other port simply led to a garbled screen.

 

 

Good luck guys and gals!

 

- M0rpheus

 

(P.S. Any probs understanding my instructions, post here. I'm sure there are easier ways, although I found EFIStudio not to work to my liking. I preferred manually copy/pasting the files and found it worked better).

ATINDRV.kext.zip

4870X2.plist.zip

Link to comment
Share on other sites

Thanks for the credit guys. I wanted this just as bad as you guys did.

 

M0rpheus, what didn't you like about EFIstudio? All you had to do was copy the plist that I sent you into the Resources/graphics cards folder inside it. Then when you open EFIStudio it shows up as another option. After you add it, you just change your pci address at the top and it changes the hex in realtime. Then you just write it to com.apple.Boot.plist. This bypasses almost half of your instructions.

 

Also, do you not have Motmot in your ATINDRV.kext? They both work just fine, but I'm told that Motmot is the one that came with Mac Pros and is designed for 4870 while Quail is designed for 4850 from IMac.

 

What brand of 4870X2 do you have? Is it ATI Reference as in not some crazy cooling system that required a different design of the board? This may only work perfectly for the reference models, just like pretty much every other graphics card that the OSX86 scene has gotten to work without problems. Sometimes board changes cause things like only working through DVI->VGA, single head output, etc. If you have a reference model, then maybe we can get both ports working. Let me know.

 

UPDATE: I just tested with mine and I have dual head display through HDMI on each output.

Link to comment
Share on other sites

Thanks for the credit guys. I wanted this just as bad as you guys did.

 

M0rpheus, what didn't you like about EFIstudio? All you had to do was copy the plist that I sent you into the Resources/graphics cards folder inside it. Then when you open EFIStudio it shows up as another option. After you add it, you just change your pci address at the top and it changes the hex in realtime. Then you just write it to com.apple.Boot.plist. This bypasses almost half of your instructions.

 

Also, do you not have Motmot in your ATINDRV.kext? They both work just fine, but I'm told that Motmot is the one that came with Mac Pros and is designed for 4870 while Quail is designed for 4850 from IMac.

 

What brand of 4870X2 do you have? Is it ATI Reference as in not some crazy cooling system that required a different design of the board? This may only work perfectly for the reference models, just like pretty much every other graphics card that the OSX86 scene has gotten to work without problems. Sometimes board changes cause things like only working through DVI->VGA, single head output, etc. If you have a reference model, then maybe we can get both ports working. Let me know.

 

The plist you sent me wasn't complete, I got frustrated and then figured out what was wrong with it after. It was just missing a <dict> and another </dict> at the end. Either way I'm used to doing it manually as I tried EFI strings a while ago before I even knew about EFIStudio. Anyone who does know how to use it is free to do it that way for sure. I just ran into trouble using it and gave up, thought this was easier for me haha.

 

I have Motmot and Quail, either way it seems to be working with Quail so I don't see the point in editing it to go back to Motmot now. So far so good!

 

I have an HIS 4870X2. As Netkas said, the other port can be made working. However that is using Natit and not EFI strings. So yeah, we might have to see about how to get the second ports to work correctly.

Link to comment
Share on other sites

See I never got Natit working correctly. It doesn't seem to see the card correctly, but using the EFI string it does. I'm happy for now with 1 DVI port working, but it would be nice to get the other one going as well.

 

I just tried plugging in a DVI2VGA adapter to the second port closest to the MoBo, it screwed up my screen on the main display. Unplugging both and plugging in just the original DVI cable worked again. Hmm...

Link to comment
Share on other sites

The plist you sent me wasn't complete, I got frustrated and then figured out what was wrong with it after. It was just missing a <dict> and another </dict> at the end. Either way I'm used to doing it manually as I tried EFI strings a while ago before I even knew about EFIStudio. Anyone who does know how to use it is free to do it that way for sure. I just ran into trouble using it and gave up, thought this was easier for me haha.

 

I have Motmot and Quail, either way it seems to be working with Quail so I don't see the point in editing it to go back to Motmot now. So far so good!

 

I have an HIS 4870X2. As Netkas said, the other port can be made working. However that is using Natit and not EFI strings. So yeah, we might have to see about how to get the second ports to work correctly.

 

I also had been using the manual gfxutil long before EFI studio, but I find the app makes it much easier to test the configuration out. I find it strange that you had a problem with that plist I sent you as it was the file taken straight from my EFIStudio folder.

 

As far as the other port, that is not the same as the other core. I have both ports working, but only one core. Both of my ports are attached to the same master core and yours should be too. I am pretty sure that the HIS model is still an ATI reference model, so I am not quite sure why you don't get both ports working.

Here's a pic to verify:

Picture%206.png

Link to comment
Share on other sites

My only guess is that your second port is somehow connected to the other core. I haven't heard of it before, but who knows? I just got my card and so I'm a little new to the 4870x2, but I had the 3870x2 and it was also reference designed and I had both ports working. Maybe working with netkas and getting the second core working will solve your problem.

Link to comment
Share on other sites

Fantastic! Really appreciate the tutorial you guys have written there, I'll try it out for myself as soon as I get a chance. Thanks a million! :blink:

 

Just wondering out of curiosity, how have you found the behaviour of the X2's fan speed under OSX? I presume the driver would do no fan control, or am I wrong ? The bios default speed for this card is waaay too low in my opinion (80c idle temps on my system!) so I'm guessing a bios flash is in order to keep the temps down ?

Link to comment
Share on other sites

netkas,

 

funny you should say that as that is the exact place that I got the efi gfx strings from. I just copied the entire 4800 series section and put it into a plist for EFIStudio. I'll try it though as it would be nice to have an easier option for newbies.

 

darraghcoy,

 

Mine is pretty quiet; probably a little higher than the windows idle speed.

 

Believe it or not, you only need to bump it from 27 to 32 % to get sub 60*C temps. Sometimes even as low as sub 50* depending on your airflow.

Link to comment
Share on other sites

Black Knight, well then. its strange, maybe u need to add pciclass match to natit ,as shown in example

 

<key>IOPCIClassMatch</key>

<string>0x03000000&0xffffffff</string>

<key>IOPCIMatch</key>

<string>0x00001002&0x0000ffff</string>

IIRC, two ur chips have different PCI Class.

 

Black Knight, also try to play with aty_init and natit (without class match) from latest post on netkas.org

Link to comment
Share on other sites

netkas, I hadn't been to your site in just a few days and so much has happened, lol. I will play with those things, but I can't for several hours, I gotta go do stuff. I'll let you know how it goes though. I just have one question though, when you sent me those modified driver files, was it only ATIRadeonX2000.kext that needed to be modified? I'm really hoping that the other files didn't as I can load ATIRadeonX2000.kext in the Extra folder, but not the other ones.

Link to comment
Share on other sites

Fantastic! I have been following this scene for a while now and since last August when I got my X2 been dieing to use OSX with a full res. I can't thank you enough!

 

I have the Visiontek 4870 X2 which I am pretty sure is just a reference card.

 

I have followed the instructions and tried multiple times, but no matter what I do, after reboot I have black and white garble :) .

 

I am installing the 4 kexts, natit, and copy/pasting the OpenGL (it doesn't paste though, I have to go into each folder and copy paste teh files, if I try to copy/paste the folder I get a permissions error) then rebooting and starting up with -F -V.

 

I have tried DVI (to dvi montior) in primary port (closest to mobo) with DVi/Vga adapter in 2ndary, and visa versa, as well as just DVI in primary with nothing in 2nd port, all with fresh installs of kexts etc..

 

No matter what I do I end up with black and white garble, Did I miss something?

Link to comment
Share on other sites

Fantastic! I have been following this scene for a while now and since last August when I got my X2 been dieing to use OSX with a full res. I can't thank you enough!

 

I have the Visiontek 4870 X2 which I am pretty sure is just a reference card.

 

I have followed the instructions and tried multiple times, but no matter what I do, after reboot I have black and white garble :huh: .

 

I am installing the 4 kexts, natit, and copy/pasting the OpenGL (it doesn't paste though, I have to go into each folder and copy paste teh files, if I try to copy/paste the folder I get a permissions error) then rebooting and starting up with -F -V.

 

I have tried DVI (to dvi montior) in primary port (closest to mobo) with DVi/Vga adapter in 2ndary, and visa versa, as well as just DVI in primary with nothing in 2nd port, all with fresh installs of kexts etc..

 

No matter what I do I end up with black and white garble, Did I miss something?

I would advise you to do the file copy stuff using terminal.

Set the permissions correctly and try again.

 

Example for permission changes:

chown -R root:wheel /System/Library/Extensions/Natit.kext
chmod -R 755 /System/Library/Extensions/Natit.kext

Repeat this for all kexts you update.

 

To update the OpenGL.framework I would advise this:

mkdir /backup
mv /System/Library/Frameworks/OpenGL.framework /backup
mv /where/the/new/framework/is/OpenGL.framework /System/Library/Frameworks
chown -R root:wheel /System/Library/Frameworks/OpenGL.framework
chmod -R 755  /System/Library/Frameworks/OpenGL.framework

Link to comment
Share on other sites

 Share

×
×
  • Create New...