- Joined
- Aug 12, 2010
- Messages
- 1,575
- Motherboard
- X58A-UD3R v2
- CPU
- i7-930
- Graphics
- 5770
- Mac
- Mobile Phone
UPDATED - 8th Sept - NEW CHIMERA 1.5.4 !!!!
So ..... now that we have Chimera, our own branch of Chameleon, we have full control of the ATI/AMD cards loaded by Chimera ! When Kabyl originally set up the ATI.c file he created a testing thread for people to report what framebuffer's they've tried and what their results were. And what I'd like to do here is for users to continue to submit their results here if the right framebuffer isn't auto loaded via Chimera as it stands.
This going to be mainly aimed at the 6XXX users rather than the 5XXX / 4XXX as I think Kabyl has pretty much sorted those cards out but if you have any doubt the have a read below to see.
What you need to test is:
The latest Chimera 1.5.0 or later from MultiBeast 4.0.0 or later
http://tonymacx86.blogspot.com/2011/08/chimera-15-update-sandy-bridge-hd-3000.html
LSPCI tools v1.1 - I've attached it to this post - updated based on rmmcwh's advice
IORegistryExplorer - it's in Xcode Tools or I've attached it to this post
Snow Leopard - 10.6.8 Combo update
Lion - 10.7.1 Combo Update
The first thing to do is to install the above items and to also grab the IDs for your current card using System Profiler > Graphics and also lscpi tools v1.1. To get the full IDs then run the following in Terminal and enter your password when needed
And you should get something like:
This shows that the Video controller on the graphics card has the following IDs:
Vendor ID: 0x1002
Device ID: 0x68b8
Subsystem ID : 1458:21d7
MacMan kindly informed me of some more trickery with lspci tools to get less unkown hardware messages. Try running the following coding:
Then comes the testing of framebuffer's. To do this you need to have GraphicsEnabler=Yes in your boot.plist and also you should clear any AtiConfig key/strings out of your boot.plist too. Also if you are using an edited DSDT for framebuffer injection then please revert back to the unedited version as we are going to get the framebuffer loaded through Chimera instead as it's a bit easier to do and works for guys who are running an EasyBeast install.
Now what to do is to reboot and load verbose boot at Chimera. Once OSX has loaded it is then time to test if you have a framebuffer loaded. They way to do this is via the following command in Terminal:
For me it shows:
And this shows that I have the Vervet framebuffer loaded. And because I haven't set an AtiConfig flag in my boot.plist then I know that my IDs must be correctly in the ATI.c file within Chimera because that framebuffer has autoloaded. This means that you no longer need to do any more reading of this thread as your card is already supported in Chamelon properly. The confirmation of this is if you run bdmesg from Terminal also it will confirm what is Chimera is loading. In Terminal type:
The output is quite long but the bit we are after is near the bottom, just after loading my DSDT:
And what this is showing is that in the ATI.c file - my card is recognised as a 5770 and the default for the card is Vervet (as I'm not forcing one).
If your framebuffer isn't autoloading by ATI.c in Chimera then you will see the following in ioreg:
And this shows that the default RadeonFramebuffer has loaded. This means that the IDs for your card are in the ATI5000controller.kext or ATI6000controller.kext but that there isn't a framebuffer being autoloaded by Chimera. If you try to run Geekbench or DVD player with this then you will see that they most likely crash, To fix this we need to force load a framebuffer.
If your IDs aren't any of the ATIcontroller kexts that I think that you will get a Kernel Panic on booting into OSX and should be able to get through into OSX booting in safe mode "-x" at Chimera. The IDs supported are:
ATI5000Controller.kext (iMac - 1.6.34.13)
ATI6000Controller.kext (iMac - 1.6.34.13) - TO BE UPDATED
And you will need to add the right ID for your card based on vendor and device ID to the list of supported IDs in the info.plist of the relevant kext (Copy a vanilla kext to your desktop and make a second copy of it somewhere else in a folder to keep it safe - for the one on your desktop - right click - show package contents - Contents - Info.plist - open with TextEdit - look for "<key>IOPCIMatch</key>" and you'll see where you need to add your ID - note the format of the other onces "Device then 1002" - then install this modified kext from your desktop by trashing the relevant kext in /S/L/E and installing this modified kext using KextBeast.)
Sorry for the detour for unsupported cards. Back to cards where Radeonframebuffer loads. This means that your card has the right IDs in the relevant kexts but you haven't got the right framebuffers. Here's a list of the current ones supported in the ATI.c to load with AtiConfig but I will update if I find any missing:
4XXX/5XXX and older cards
6XXX and other cards
Unless you start doing some analysis of the framebuffer connector tables, then it is going to be a bit of trial and error to see what framebuffer works best for your card. To get them to load, at the Chimera bootscreen, stop the countdown then type:
But it might not be Duckweed that works best for your card but try the different ones and note that it is case sensitive. By typing the framebuffer at the Chimera screen it means if it doesn't work properly then you can just reboot and try another without having to try and edit your boot.plist. To check that the framebuffer is correctly loaded use the "ioreg | grep ATY" command from Terminal.
If you want the framebuffer to load every time - until we update Chameleon - then add this to your boot.plist:
<key>AtiConfig</key>
<string>XXXXX</string>
Where XXXX is your framebuffer that works best - such as Duckweed etc - and this will force that framebuffer to load every time ! When we update Chimera for your results then you can remove this and feel glad that you've contributed to the community by testing with your card !
Once you have a card working please can you post here with:
- the EXACT model/make of your card with a link to the official website of the card manufacturer and linking to the exact model.
- coding box with your "sudo lspci -nnvd 0x1002: | grep -B2 Subsystem" output
- an ioreg dump (load IORegistryExplorer from Applications - go to root at the top then File > Save as and export your ioreg output - then zip and save as an attachment to your post)
- screenshot of your Graphics section of Profiler and anything else you want to screenshot
- list of how you have your screen / screens connected - DVI / HMDI / DisplayPort / MiniDP and a list of what exact model screens are connected to what ports
- any info on dual or triple displays you have running with a screenshot of Displays in System Prefs showing your dual/triple screens with their orientation to each other.
Please don't quote this original post in any of your posts as I will edit this post from time to time and it will look confusing for those who read the thread after I've changed it.
Also I'd like to thank Kabyl for his efforts in getting ATI.c working in the first place and I've used the tools that he suggested to report cards on his original ATI 4XXX/5XXX thread. Thanks to MacMan and TonyMac for the Chimera branch and helping support for all our hacks. And also to Andy for his initial work on getting the 6XXX cards supported in ATi.c.
Update - 10th May
Updated the LSPCI Tools to v1.1 which should work better !
From MacMan - most common manufacturer IDs in subsys IDs:
So ..... now that we have Chimera, our own branch of Chameleon, we have full control of the ATI/AMD cards loaded by Chimera ! When Kabyl originally set up the ATI.c file he created a testing thread for people to report what framebuffer's they've tried and what their results were. And what I'd like to do here is for users to continue to submit their results here if the right framebuffer isn't auto loaded via Chimera as it stands.
This going to be mainly aimed at the 6XXX users rather than the 5XXX / 4XXX as I think Kabyl has pretty much sorted those cards out but if you have any doubt the have a read below to see.
What you need to test is:
The latest Chimera 1.5.0 or later from MultiBeast 4.0.0 or later
http://tonymacx86.blogspot.com/2011/08/chimera-15-update-sandy-bridge-hd-3000.html
LSPCI tools v1.1 - I've attached it to this post - updated based on rmmcwh's advice
IORegistryExplorer - it's in Xcode Tools or I've attached it to this post
Snow Leopard - 10.6.8 Combo update
Lion - 10.7.1 Combo Update
The first thing to do is to install the above items and to also grab the IDs for your current card using System Profiler > Graphics and also lscpi tools v1.1. To get the full IDs then run the following in Terminal and enter your password when needed
Code:
sudo lspci -nnvd 0x1002: | grep -B2 Subsystem
And you should get something like:
02:00.0 VGA compatible controller [0300]: ATI Technologies Inc Unknown device [1002:68b8] (prog-if 00 [VGA controller])
Subsystem: Giga-byte Technology Unknown device [1458:21d7]
--
02:00.1 Audio device [0403]: ATI Technologies Inc Unknown device [1002:aa58]
Subsystem: Giga-byte Technology Unknown device [1458:aa58]
This shows that the Video controller on the graphics card has the following IDs:
Vendor ID: 0x1002
Device ID: 0x68b8
Subsystem ID : 1458:21d7
MacMan kindly informed me of some more trickery with lspci tools to get less unkown hardware messages. Try running the following coding:
Code:
sudo update-pciids
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 179k 100 179k 0 0 6996 0 0:00:26 0:00:26 --:--:-- 8747
sudo lspci -nnvd 0x1002: | grep -B2 Subsystem
02:00.0 VGA compatible controller [0300]: ATI Technologies Inc Juniper [Radeon HD 5700 Series] [1002:68b8] (prog-if 00 [VGA controller])
Subsystem: Giga-byte Technology Unknown device [1458:21d7]
--
02:00.1 Audio device [0403]: ATI Technologies Inc Juniper HDMI Audio [Radeon HD 5700 Series] [1002:aa58]
Subsystem: Giga-byte Technology Unknown device [1458:aa58]
Then comes the testing of framebuffer's. To do this you need to have GraphicsEnabler=Yes in your boot.plist and also you should clear any AtiConfig key/strings out of your boot.plist too. Also if you are using an edited DSDT for framebuffer injection then please revert back to the unedited version as we are going to get the framebuffer loaded through Chimera instead as it's a bit easier to do and works for guys who are running an EasyBeast install.
<key>GraphicsEnabler</key>
<string>Yes</string>
Now what to do is to reboot and load verbose boot at Chimera. Once OSX has loaded it is then time to test if you have a framebuffer loaded. They way to do this is via the following command in Terminal:
Code:
ioreg | grep ATY
For me it shows:
Not-Shys-Mac-Pro:~ notshy$ ioreg | grep ATY
| | | +-o ATY,Vervet@0 <class IOFBStub, id 0x100000356, registered, matched, active, busy 0 (4122 ms), retain 7>
| | | | +-o ATY_Vervet <class ATIFramebuffer, id 0x10000036a, registered, matched, active, busy 0 (3969 ms), retain 16>
| | | +-o ATY,Vervet@1 <class IOFBStub, id 0x100000357, registered, matched, active, busy 0 (6 ms), retain 7>
| | | | +-o ATY_Vervet <class ATIFramebuffer, id 0x10000037b, registered, matched, active, busy 0 (5 ms), retain 13>
| | | +-o ATY,Vervet@2 <class IOFBStub, id 0x100000358, registered, matched, active, busy 0 (10 ms), retain 7>
| | | | +-o ATY_Vervet <class ATIFramebuffer, id 0x100000381, registered, matched, active, busy 0 (8 ms), retain 13>
| | | +-o ATY,Vervet@3 <class IOFBStub, id 0x100000359, registered, matched, active, busy 0 (6 ms), retain 7>
| | | | +-o ATY_Vervet <class ATIFramebuffer, id 0x100000387, registered, matched, active, busy 0 (5 ms), retain 13>
And this shows that I have the Vervet framebuffer loaded. And because I haven't set an AtiConfig flag in my boot.plist then I know that my IDs must be correctly in the ATI.c file within Chimera because that framebuffer has autoloaded. This means that you no longer need to do any more reading of this thread as your card is already supported in Chamelon properly. The confirmation of this is if you run bdmesg from Terminal also it will confirm what is Chimera is loading. In Terminal type:
Code:
bdmesg
The output is quite long but the bit we are after is near the bottom, just after loading my DSDT:
ATI VGA Controller [1002:68b8] :: PciRoot(0x1)/Pci(0x3,0x0)/Pci(0x0,0x0)
Framebuffer @0xE0000000 MMIO @0xFBEC0000 I/O Port @0x0000DE00 ROM Addr @0x00000000
ATI card POSTed, reading VBIOS from legacy space
ATI Juniper ATI Radeon HD 5770 1024MB (Vervet) [1002:68b8] (subsys [1458:21d7]):: PciRoot(0x1)/Pci(0x3,0x0)/Pci(0x0,0x0)
And what this is showing is that in the ATI.c file - my card is recognised as a 5770 and the default for the card is Vervet (as I'm not forcing one).
If your framebuffer isn't autoloading by ATI.c in Chimera then you will see the following in ioreg:
Not-Shys-Mac-Pro:~ notshy$ ioreg | grep ATY
| | | +-o ATY,ATY,RadeonFramebuffer@0 <class AtiFbStub, id 0x1000003$
| | | | +-o ATY_ATY,RadeonFramebuffer <class ATIFramebuffer, id 0x10$
| | | +-o ATY,ATY,RadeonFramebuffer@1 <class AtiFbStub, id 0x1000003$
| | | | +-o ATY_ATY,RadeonFramebuffer <class ATIFramebuffer, id 0x10$
| | | +-o ATY,ATY,RadeonFramebuffer@2 <class AtiFbStub, id 0x1000003$
| | | | +-o ATY_ATY,RadeonFramebuffer <class ATIFramebuffer, id 0x10$
| | | +-o ATY,ATY,RadeonFramebuffer@3 <class AtiFbStub, id 0x1000003$
| | | | +-o ATY_ATY,RadeonFramebuffer <class ATIFramebuffer, id 0x10$
And this shows that the default RadeonFramebuffer has loaded. This means that the IDs for your card are in the ATI5000controller.kext or ATI6000controller.kext but that there isn't a framebuffer being autoloaded by Chimera. If you try to run Geekbench or DVD player with this then you will see that they most likely crash, To fix this we need to force load a framebuffer.
If your IDs aren't any of the ATIcontroller kexts that I think that you will get a Kernel Panic on booting into OSX and should be able to get through into OSX booting in safe mode "-x" at Chimera. The IDs supported are:
ATI5000Controller.kext (iMac - 1.6.34.13)
0x68981002 0x68991002 0x68E01002 0x68E11002 0x68D81002 0x68C01002 0x68C11002 0x68D91002 0x68B81002 0x68B01002 0x68B11002 0x68A01002 0x68A11002
ATI6000Controller.kext (iMac - 1.6.34.13) - TO BE UPDATED
0x67681002 0x67701002 0x67791002 0x67601002 0x67611002 0x67501002 0x67581002 0x67591002 0x67401002 0x67411002 0x67451002 0x67381002 0x67391002 0x67201002 0x67221002 0x67181002
And you will need to add the right ID for your card based on vendor and device ID to the list of supported IDs in the info.plist of the relevant kext (Copy a vanilla kext to your desktop and make a second copy of it somewhere else in a folder to keep it safe - for the one on your desktop - right click - show package contents - Contents - Info.plist - open with TextEdit - look for "<key>IOPCIMatch</key>" and you'll see where you need to add your ID - note the format of the other onces "Device then 1002" - then install this modified kext from your desktop by trashing the relevant kext in /S/L/E and installing this modified kext using KextBeast.)
Sorry for the detour for unsupported cards. Back to cards where Radeonframebuffer loads. This means that your card has the right IDs in the relevant kexts but you haven't got the right framebuffers. Here's a list of the current ones supported in the ATI.c to load with AtiConfig but I will update if I find any missing:
4XXX/5XXX and older cards
Alopias Alouatta Baboon Cardinal Caretta Colobus Douc Eulemur Flicker Galag Gliff Hoolock Hypoprion Iago Kakapo Kipunji Lamna Langur Megalodon Motmot Nomascus Orangutan Peregrine Quail Raven Shrike Sphyrna Triakis Uakari Vervet Zonalis
6XXX and other cards
Pithecia Bulrushes Cattail Hydrilla Duckweed Fanwort Elodea Kudzu Gibba Lotus Ipomoea Mangabey Muskgrass Juncus
Unless you start doing some analysis of the framebuffer connector tables, then it is going to be a bit of trial and error to see what framebuffer works best for your card. To get them to load, at the Chimera bootscreen, stop the countdown then type:
Code:
AtiConfig=Duckweed -v
But it might not be Duckweed that works best for your card but try the different ones and note that it is case sensitive. By typing the framebuffer at the Chimera screen it means if it doesn't work properly then you can just reboot and try another without having to try and edit your boot.plist. To check that the framebuffer is correctly loaded use the "ioreg | grep ATY" command from Terminal.
If you want the framebuffer to load every time - until we update Chameleon - then add this to your boot.plist:
<key>AtiConfig</key>
<string>XXXXX</string>
Where XXXX is your framebuffer that works best - such as Duckweed etc - and this will force that framebuffer to load every time ! When we update Chimera for your results then you can remove this and feel glad that you've contributed to the community by testing with your card !
Once you have a card working please can you post here with:
- the EXACT model/make of your card with a link to the official website of the card manufacturer and linking to the exact model.
- coding box with your "sudo lspci -nnvd 0x1002: | grep -B2 Subsystem" output
- an ioreg dump (load IORegistryExplorer from Applications - go to root at the top then File > Save as and export your ioreg output - then zip and save as an attachment to your post)
- screenshot of your Graphics section of Profiler and anything else you want to screenshot
- list of how you have your screen / screens connected - DVI / HMDI / DisplayPort / MiniDP and a list of what exact model screens are connected to what ports
- any info on dual or triple displays you have running with a screenshot of Displays in System Prefs showing your dual/triple screens with their orientation to each other.
Please don't quote this original post in any of your posts as I will edit this post from time to time and it will look confusing for those who read the thread after I've changed it.
Also I'd like to thank Kabyl for his efforts in getting ATI.c working in the first place and I've used the tools that he suggested to report cards on his original ATI 4XXX/5XXX thread. Thanks to MacMan and TonyMac for the Chimera branch and helping support for all our hacks. And also to Andy for his initial work on getting the 6XXX cards supported in ATi.c.
Update - 10th May
Updated the LSPCI Tools to v1.1 which should work better !
From MacMan - most common manufacturer IDs in subsys IDs:
Code:
ASUS 1043
ATI 1002
Club3D 1787
Connect3D 1002
Diamond 1002
Force3D 1002
Gigabyte 1458
HIS 1787
MSI 1462
Powercolor 1002
Sapphire 174B
VTX3D 1002
XFX 1682