overdue-scratch

Author Topic: ATI/AMD GraphicsEnabler support (legacy, modules & missing devices)!  (Read 148646 times)

0 Members and 2 Guests are viewing this topic.

Azimutz

  • VoodooLabs
  • Posts: 420
  • Paranoid Android

    So, what is this topic all about?

  To put it simple, it's a complement to the forge issue tracker, when it comes to the topic's theme. I'm sure
everyone agrees that we have better conditions to exchange info here!? It's also a way to centralize "things" and
make sure my sanity gets intact out of this. Experience and learning are always good "excuses" for doing something.
    The short story:
  As some of you folks might have noticed, Chameleon went through some heavy changes lately; mainly,
reworked SMBIOS patcher, reworked and improved ATI/AMD GraphicsEnabler code and last but absolutely
not the least, the merging of the modules system that Meklort been developing for over an year now, just to mention
a few of the most recent ones and with major impact.
  Specially important to me are the changes on the ATI/AMD GraphicsEnabler code, since they removed the "alleged"
support that the old code provided to legacy cards (non HD). Since i follow/use the Modules system practically since
it was born to the public, keeping a separate module for the ATI legacy, based on what Mek had already created,
is fairly easy.

  To cut it short, as a Chameleon "wannabe" collaborator, i couldn't possibly do this and ignore the rest of the GE code,
without getting a guilty conscience, and since it's a good opportunity to learn, i decided to embrace the cause.
The source of what i've done so far, can be found on my branch in the "trunkGraphicsEnablerModules" folder. Atm,
there's a module for each vendor except in the AMD case, who has 2 (ATi = legacy, AMD = HD).
  The goal is to merge the legacy code with the HD one. Whether the modules will stay separated by vendor  or
get merged back into just one GE module (as they were and most probable situation) is still to decide.

  Meanwhile, as i'm messing with this code and there are a lot of device id's missing from it, i've been accepting
issues on the forge from people asking for them or simply thinking "this is a bug of some sort". It happens that,
using GraphicsEnabler many times is not the full solution for proper graphics display, as e.g. the laptop owners can
certainly confirm. And this is were i need to draw a line to protect my sanity!

  I can't possibly try to code, accept issues and still have to point people to solutions for non Chameleon problems,
or simply teach them how to get a card's subsys id!! So, to make mine (and your's) life easier, there's this topic.
I will explain what i need from you, how to get it and also provide links to some prominent topics on this matter.
As always, i'll try to give general help, if i have free time and you guys behave properly, and not take other's time
with questions you should ask some were else.

    Ok, ok... cut through the crap... so, what do i need to know to post here?

- First of all, don't ask about OSx86/Hackintosh basics! "Apple terminal basics", "osx86 forums",
  "hackintosh bla bla bla", "osx86 bla bla bla", etc... usually produce good results on any search engine.

- Next, whatever the problem you're having, please check first if the device id of your card is added to chameleon code;
  look in the "radeon_cards" area of the code and see if the device id is present there (Command+F usually helps).
  If not, follow the "missing device id's" recommendation below. If you use a legacy card, it will not be present!

--  For the Modules system, if you know how to create a folder named Modules inside Extra folder and copy/paste
  the required module into it, your ok :) yeah, it's as simple as that. This GE modules have no dependencies on others;
  you can just put them in place and give them a ride. Modules are loaded automatically by the booter.
  Don't mix modules, e.g. AMDGraphicsEnabler + nVidiaGraphicsEnabler. If you have a dual card situation,
  try one at a time. If you get in trouble, use GraphicsEnabler=n at the boot prompt, to disable the patch.
  These modules can be used in conjunction with Resolution.dylib (also has no dependencies on others).
  Avoid the ATiGraphicsEnabler.dylib module if you don't have a legacy card.
  The modules should work as the code "before" so, any different problematic behavior, can be considered "prof of crime".
  The jury will decide  ;D
  Jokes apart, any additional info about the device, even when feeding back success, is welcome; card's Name,
 
device id and subsys id are enough, but if you can add a bit more, it will be helpful.

--   For missing device id's, card's Name, device id and subsys id are mandatory!!
  E.g. this is enough:
Quote
AMD Radeon HD 6800M Series, PCI\VEN_1002&DEV_68A8&SUBSYS_050E1025&REV_00
  this is close to excellent. The more informative you are, the faster we can help and add the device.
Don't forget to check the "Useful links" below.

  Note: Why isn't my card's device id on the booter's code, you may ask?
           Mainly because it was taken the decision of only adding device id's, known to be or reported as working.
           But, but,... the device was on the older code?? >:(
           We have an "excuse" for that too :P The new code introduces the use of the subsys id, to sort
           identical device id's assembled by different OEM manufacturers. Since those are rarely reported
           on the PCI db's, or any were else, you get the picture..!?
 
--  For general help, all you need is patience and respect for the topic's priorities.
  Just don't ask dumb questions and someone other than me might feel tempted to help you;
  me, i'll simply delete the post!
  This topic will reside in the "DevTalk" area of the forum, only until i reach the goal mentioned above;
  if it proves useful, it will then be moved to the "General Discussion" area, otherwise most probably will be closed.

--  For all purposes, Chameleon GraphicsEnabler is not the solution for all the graphics problems you can face and
  neither am i! I'm just a noob trying to learn, and give back some of the knowledge and help
  i've received from the "community", so far.

  Don't post pre-compiled binaries; i'll provide all the binaries you'll need (more on that later). You're welcome
to compile and use the source if you have the knowledge, but keep it to your self, unless you have something
to contribute to the code, be it bug, improvement or new feature.

Useful links:
  Topics:
    ATI Radeon HD6000, HD5000 and HD4000 series support in Chameleon, Kabyl's topic for testing GE changes.
    (Collection) ATI Mobility Radeon HD - Tested ATIFramebuffer Solution, the name says it all.
    Editing custom personalities for ATI Radeon HD[45]xxx, don't get fooled by the HD[45]xx.
  PCI ID resources:
    GPU-Z, Everest (AIDA64 now), Windows "Device Manager", lspci command (both Mac & Linux), etc...
      to get the card's info. Any other suggestions are welcome.
    Developer.AMD/gpu_assets: Sept 2008, Jan 2009, July 2010, June 2011, etc..., just follow the pattern.***
    The PCI ID Repository, PCIDatabase, the names say it all.
  Hardware dedicated sites:
    e.g. NotebookCheck...

  Think that's enough to keep you busy for a while. Will post more stuff as i go, if needed. Suggestions are welcome.


ToDo

- post list/s.
« Last Edit: September 06, 2011, 03:22:17 AM by Azimutz »
 System & Patches: http://goo.gl/i961
 Chameleon:
- trunk builds: http://goo.gl/9G1Hq
- pref pane: http://goo.gl/OL2UT

darles

  • Entrant
  • Posts: 4
Re: ATI/AMD GraphicsEnabler support (legacy, modules & missing devices)!
« Reply #1 on: July 06, 2011, 10:01:56 PM »
So here I am :) It would be great if you could put this card:
Chipset Model: Mobility Radeon X1600
Type: GPU
Bus: PCIe
PCIe Lane Width: x16
VRAM (Total): 256 MB
Vendor: ATI (0x1002)
Device ID: 0x71c5
Revision ID: 0x0000



Mod notes: legacy.

Motive for edit: add info.
« Last Edit: July 31, 2011, 01:56:50 AM by Azimutz »

Azimutz

  • VoodooLabs
  • Posts: 420
  • Paranoid Android
Re: ATI/AMD GraphicsEnabler support (legacy, modules & missing devices)!
« Reply #2 on: July 06, 2011, 10:12:50 PM »
Hi.. thanks for showing up, Darles.. was feeling lonely around here ;D
yep, going to take care of it right away... brb

Update: get the package on the first post. Contains just the "boot" file and modules; if you need the rest of the files get them from here; you shouldn't need them if you're using a recent build of the booter.
Use the ATiGraphicsEnabler module; this one uses the old code; still working on merging it with the new.
Put the module on /Extra/modules, the booter will load it automatically; if you need to disable the patch use GraphicsEnabler=n.
Don't use the module with "normal" chameleon and don't forget to remove other patches/kexts before you try this.
Will keep fingers crossed :)
« Last Edit: July 06, 2011, 11:08:11 PM by Azimutz »
 System & Patches: http://goo.gl/i961
 Chameleon:
- trunk builds: http://goo.gl/9G1Hq
- pref pane: http://goo.gl/OL2UT

darles

  • Entrant
  • Posts: 4
Re: ATI/AMD GraphicsEnabler support (legacy, modules & missing devices)!
« Reply #3 on: July 07, 2011, 12:29:50 AM »
No luck, if I try to boot with GraphicsEnabler=Yes I get this: http://m.flickr.com/#/photos/28549387@N07/5909848035/ and nothing more :/

Azimutz

  • VoodooLabs
  • Posts: 420
  • Paranoid Android
Re: ATI/AMD GraphicsEnabler support (legacy, modules & missing devices)!
« Reply #4 on: July 07, 2011, 06:36:48 AM »
Darles, there's two codes conflicting in the picture; you either used the 2 modules (use just the one i pointed, the other is for HD cards) or you used the module with the "normal" booter (use the one on the package) :)

Resuming, replace your current "boot" file by the one in the package and use just ATiGraphicsEnabler module.
 System & Patches: http://goo.gl/i961
 Chameleon:
- trunk builds: http://goo.gl/9G1Hq
- pref pane: http://goo.gl/OL2UT

darles

  • Entrant
  • Posts: 4
Re: ATI/AMD GraphicsEnabler support (legacy, modules & missing devices)!
« Reply #5 on: July 10, 2011, 11:22:29 AM »
No luck - just black screen (tried, x32 and x64 modes, -x, -f) :/ After reinstall, now, with RadeonHD.kext everything is working (even QE!!!) :)

Azimutz

  • VoodooLabs
  • Posts: 420
  • Paranoid Android
Re: ATI/AMD GraphicsEnabler support (legacy, modules & missing devices)!
« Reply #6 on: July 10, 2011, 08:09:01 PM »
Theoretically it should work; dev id is present on both ATIRadeonX1000 and ATI1600Controller; framebuffer is Wormy which is specific to laptops (lvds and dvi connectors)... unless lvds is not the first connector, i don't know why you get black screen :P

As i mentioned on RadeonHD topic, it worked for me with Megalodon fb ( < 10.6.8 ) and works now with Caretta, with respective patches to ATIRadeonX1000 and ATI1300Controller.
Thanks for testing, anyway.
 System & Patches: http://goo.gl/i961
 Chameleon:
- trunk builds: http://goo.gl/9G1Hq
- pref pane: http://goo.gl/OL2UT

darles

  • Entrant
  • Posts: 4
Re: ATI/AMD GraphicsEnabler support (legacy, modules & missing devices)!
« Reply #7 on: July 10, 2011, 08:20:01 PM »
Maybe it's because of EDID? Because radeonhd also don't work without manual seting. Is it possibke to integrate EDID in this module?

akbar102

  • Observer
  • Posts: 20
Re: ATI/AMD GraphicsEnabler support (legacy, modules & missing devices)!
« Reply #8 on: July 15, 2011, 08:06:31 AM »
hi azimuth this my info and working frambuffer:ATI Mobility Radeon HD 4650:

  Name:   ATY,Shrike
  Type:   Display Controller
  Driver Installed:   Yes
  MSI:   Yes
  Bus:   PCI
  Slot:   Slot-1
  Vendor ID:   0x1002
  Device ID:   0x9480
  Subsystem Vendor ID:   0x103c
  Subsystem ID:   0x3628
  Revision ID:   0x0000
  Link Width:   x16
  Link Speed:   2.5 GT/
but the one problem come with 10.6.8 an lion when i booting with graphic enabler after laptop goes to sleep then wakeup my display goes scrambled .i am currenty using ATI_Init.kext and don't have this problem with this kext.
this is my ioreg with ATY_Init.kext that work:
http://up.iranblog.com/images/3vqt2kx9kpmt8ivyv4vm.zip
thanks for your work
« Last Edit: July 15, 2011, 08:10:21 AM by akbar102 »

Azimutz

  • VoodooLabs
  • Posts: 420
  • Paranoid Android
Re: ATI/AMD GraphicsEnabler support (legacy, modules & missing devices)!
« Reply #9 on: July 15, 2011, 12:40:06 PM »
Maybe it's because of EDID? Because radeonhd also don't work without manual seting. Is it possibke to integrate EDID in this module?
Sorry for the delay, Darles. I don't think it's a matter of edid but... i don't see any edid info on Mac's dumps (yes there is!),
but i did read around that if the display doesn't send edid info, kaput :P It's possible to inject edid info, but were to?!
Can you send me or post your ioreg?
Wormy is a weird framebuffer... i got this nice dump from a MacBookPro1,1 which even contains a dump of
the cards ROM; analyzing it with radeon_bios_decode i get:
Code: [Select]
PCI ID: 1002:71c5
Connector at index 0 type: DVI-I
Connector at index 1 type: LVDS
Connector at index 2 type: Composite
Connector at index 3 type: DVI-I
Connector at index 4 type: VGA
Connector at index 7 type: DVI-I
notice that the first port is dvi-i; however, on the framebuffer the first is lvds??
And on the ioreg everything matches, 2 connectors, lvds and dvi-i :P weird stuff.
One thing i'm sure, if you didn't got a kp there's still hope; Wormy always gave me kp and instant reboot.
« Last Edit: July 29, 2011, 01:12:14 AM by Azimutz »
 System & Patches: http://goo.gl/i961
 Chameleon:
- trunk builds: http://goo.gl/9G1Hq
- pref pane: http://goo.gl/OL2UT

Azimutz

  • VoodooLabs
  • Posts: 420
  • Paranoid Android
Re: ATI/AMD GraphicsEnabler support (legacy, modules & missing devices)!
« Reply #10 on: July 15, 2011, 09:43:19 PM »
Hi Akbar... sorry for the delay, but as you saw i got pretty busy and frustrated with this ATI stuff.
Let's see... i'm a bit confused with your post; i don't know if you are using ATY_init, Chameleon or both?! :)
I never used ATY_init so, i don't know how it needs to be set up. What i understand is that:
- with the booter and GraphicsEnabler you have the sleep problem
- with ATY_init no sleep problem
Is this it?
« Last Edit: July 17, 2011, 05:25:52 AM by Azimutz »
 System & Patches: http://goo.gl/i961
 Chameleon:
- trunk builds: http://goo.gl/9G1Hq
- pref pane: http://goo.gl/OL2UT

akbar102

  • Observer
  • Posts: 20
Re: ATI/AMD GraphicsEnabler support (legacy, modules & missing devices)!
« Reply #11 on: July 16, 2011, 07:53:47 AM »
hi azimutz.ya i now your the only man that remain in ati scene in chameleon .
before 10.6.8 update i am used the chameleon graphic enabler and it was ok.
but after 10.6.8 update i get a problem chameleon inject my device and my system boot correct with qe/ci but after my system going to sleep or my display  turn off by system after wake up from sleep or turn on my display  my screen goes scrambled(screen is full of garbage's color).
so currently i am booting with GraphicsEnabler=No and using ATY_Init.kext for device injection and with this kext dont have chameleon problem .
i am try to add missing entry from ioreg with ATY_Init to ati.c and compile it but nothing change.
in 10.6.7 i must binpatch ATIFrameBuffer.kext with custom personailty for shrike buffer(bbc9 and mucha guide) but in 10.6.8 and lion this personality for framebuffer transfered to ATI4600Controller.kext.
i think this is the source of problem with chameleon may be when system goes to sleep it forget my custom personality and look for it in Atiframebuffer but it transferred to ATI4600controller and when it cant find it use the default value that my screen with out binpatch is scrambled too.
thanks for your help

Quote
i am in mac os x lion and add my device id to ati.c:
{ 0x9480, 0x3628103C,   CHIP_FAMILY_RV730,       "ATI Radeon HD 4650M", kShrike       },
but every time i am booting i get a black screen that come after a gray screen and nothing else.
my system is: hp dv6_1125
ati mobility radeon hd 4650   10029480  -3628103c
also with legacy ati from chazi i can get mu graphic work but after sleep or display dim
my screen goes scrambled. (i am mod shrike frambuffer personality)

Reason for edit: adding info posted on issue 116.
« Last Edit: July 20, 2011, 01:55:16 AM by Azimutz »

Azimutz

  • VoodooLabs
  • Posts: 420
  • Paranoid Android
Re: ATI/AMD GraphicsEnabler support (legacy, modules & missing devices)!
« Reply #12 on: July 17, 2011, 08:00:15 AM »
Hi Akbar,
hopefully i'm not the only one, or we are in big trouble ;D
Ok, let's see:
1 - on 10.6.7 GraphicsEnabler (GE) worked fine; legacy or new code?
2 - on 10.6.8 GE still fine, but sleep, etc... problems; legacy or new code?
3 - on Lion black screen with GE; legacy or new code?
4 - with ati_init all fine; on 10.6.7, 10.6.8 or Lion? all?
5 - the ioreg you posted, was with ati_init or Chameleon? If Chameleon, legacy or new code?
Answer the questions using the numbering as reference; don't "improvise", be direct!
Your English is confusing me. :P You can improvise after answering.

Quote
i think this is the source of problem with chameleon may be when system goes to sleep it forget my custom personality and look for it in Atiframebuffer (FB) but it transferred to ATI4600controller and when it cant find it use the default value that my screen with out binpatch is scrambled too.
Not possible! The FB's changed from ATIFramebuffer.kext to the Controller kexts on 10.6.8 and Lion.
The system knows were they are.

Some info: Shrike is indeed a good framebuffer for your card, but you can also use Gliff; same connectors as Shrike.
On the legacy code, Peregrine is the FB used for your dev id, but that one is gone on 10.6.8/Lion.

See ya later...

p.s.: just noticed; according to your rom (extracted from ioreg), the subsys id you're adding is wrong;
       it should be 3629; maybe that's your problem!? ;)
« Last Edit: July 17, 2011, 08:04:17 AM by Azimutz »
 System & Patches: http://goo.gl/i961
 Chameleon:
- trunk builds: http://goo.gl/9G1Hq
- pref pane: http://goo.gl/OL2UT

akbar102

  • Observer
  • Posts: 20
Re: ATI/AMD GraphicsEnabler support (legacy, modules & missing devices)!
« Reply #13 on: July 17, 2011, 12:04:19 PM »
hi azimutz first sorry for my bad english:
1:in 10.6.7 GE work fine with legacy(with new code always give me a black screen-also change 3628 to 3629 but black screen)
2-in 10.6.8 GE legacy fine except sleep...
3-on lion GE legacy is fine except sleep ...(new code never work for me)
4-with ATY_Init work fine with 10.6.7,10.6.8 and lion without any problem
5-the ioreg is with ATY_Init
----i am try Gliff also it work but have sleep problem like Shrike.
thanks for your help
--------------------------------------------------------------------------------------------------------------------
with new code in boot screen i can see that say the card posted and show the ram as 1024 mb that is correct the only problem is in last step that my screen goes gray and black with backlight.
this is my dsdt.
http://up.iranblog.com/images/4cr0no4d1e56hzgddmk.zip
------------------------------------------------------------------------------------------------------------------------
this is device and subsystem id from win7:
PCI\VEN_1002&DEV_9480&SUBSYS_3628103C&REV_00
« Last Edit: July 17, 2011, 05:30:11 PM by akbar102 »

Azimutz

  • VoodooLabs
  • Posts: 420
  • Paranoid Android
Re: ATI/AMD GraphicsEnabler support (legacy, modules & missing devices)!
« Reply #14 on: July 18, 2011, 04:10:54 PM »
Hi Akbar, sorry for leaving you waiting on irc and don't excuse for your English, mine is not perfect too :P
Thanks for the feedback; it's more clear now. Strange windows showing the subsys id as 3628; on the rom
i extracted from your ioreg is 3629; but the rom looks weird to me... can you extract it under windows and post?

Another bit of info; the card's chipset is M96; RV730 is old stuff. This info comes from the device ids list
published by AMD; but this is not important for the code or problem.

Weird that the legacy code is working fine for you on 10.6.8 and Lion; the framebuffer that's used (Peregrine)
doesn't show anymore; did you edited the FB on the legacy code?
The new code seems to be working fine; you probably are having a connector problem; try to see if you are logged in,
or if you can login and get the ioreg; you can do it blindly :P or if you have the means, VPN into the machine and then
you can see what's going on.
 System & Patches: http://goo.gl/i961
 Chameleon:
- trunk builds: http://goo.gl/9G1Hq
- pref pane: http://goo.gl/OL2UT