darraghcoy Posted April 22, 2009 Share Posted April 22, 2009 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 More sharing options...
netkas Posted April 22, 2009 Share Posted April 22, 2009 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 More sharing options...
AccessGranted Posted April 22, 2009 Share Posted April 22, 2009 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 More sharing options...
M0rpheus Posted April 22, 2009 Share Posted April 22, 2009 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 More sharing options...
Black Knight Posted April 22, 2009 Share Posted April 22, 2009 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 More sharing options...
M0rpheus Posted April 22, 2009 Share Posted April 22, 2009 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 More sharing options...
Black Knight Posted April 22, 2009 Share Posted April 22, 2009 Netkas, what do we need to do to enable the second core? Where is the new ATY_init.pkg? What do we need to do with Natit? Is Natit working with 4870X2 yet as that would be easier to explain to noobies than EFI strings. Link to comment Share on other sites More sharing options...
M0rpheus Posted April 22, 2009 Share Posted April 22, 2009 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 More sharing options...
Black Knight Posted April 22, 2009 Share Posted April 22, 2009 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: Link to comment Share on other sites More sharing options...
M0rpheus Posted April 22, 2009 Share Posted April 22, 2009 Hmm yeah I see. I cannot connect another display to the other port though, no matter what I try. It will garble the screen on the main port, and show a black screen on the second connected display if I try. Something isn't right... Link to comment Share on other sites More sharing options...
netkas Posted April 22, 2009 Share Posted April 22, 2009 BlackKnight fill 4800 series section in natit's plist with keys from ur gfx-strings, maybe it will work with natit then. Link to comment Share on other sites More sharing options...
Black Knight Posted April 22, 2009 Share Posted April 22, 2009 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 More sharing options...
darraghcoy Posted April 22, 2009 Share Posted April 22, 2009 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! 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 More sharing options...
Black Knight Posted April 22, 2009 Share Posted April 22, 2009 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 More sharing options...
netkas Posted April 22, 2009 Share Posted April 22, 2009 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 More sharing options...
Black Knight Posted April 22, 2009 Share Posted April 22, 2009 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 More sharing options...
netkas Posted April 22, 2009 Share Posted April 22, 2009 only x2000 was modified, but, putting it to extra isnt good idea Link to comment Share on other sites More sharing options...
Black Knight Posted April 22, 2009 Share Posted April 22, 2009 Why is that? Link to comment Share on other sites More sharing options...
netkas Posted April 22, 2009 Share Posted April 22, 2009 Natit for 4870x2 (and all other too, but updated to work with x2): http://rapidshare.de/files/46858272/Natit.kext.tar.bz2.html Link to comment Share on other sites More sharing options...
netkas Posted April 23, 2009 Share Posted April 23, 2009 ehehehehe - http://forums.macrumors.com/showpost.php?p...p;postcount=981 Link to comment Share on other sites More sharing options...
M0rpheus Posted April 23, 2009 Share Posted April 23, 2009 Netkas, your new Natit works brilliantly so I'm going to change the tutorial I wrote and use that instead of the EFI string. It's easier for most newbies. Thanks Link to comment Share on other sites More sharing options...
darraghcoy Posted April 23, 2009 Share Posted April 23, 2009 Great work guys! That new method looks like a piece of cake Thanks once again! Link to comment Share on other sites More sharing options...
Crawlgsx Posted April 24, 2009 Share Posted April 24, 2009 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 More sharing options...
Crawlgsx Posted April 24, 2009 Share Posted April 24, 2009 also wanted to add on reboot I noticed a TON of errors. I will try to get them (they fly by so fast!) It's all mostly 1 error. These were not their before installing the kexts. Link to comment Share on other sites More sharing options...
BNO Posted April 24, 2009 Share Posted April 24, 2009 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? 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 More sharing options...
Recommended Posts