Jump to content

[Fixed] Ghost display on MSI R5770 Hawk in Lion


tallest
 Share

86 posts in this topic

Recommended Posts

EDIT: You can see my solution in post #8, below, as well as various versions of the kext below that.

 

When in Lion, the OS thinks it has two displays, when in fact it only has one. I see an arrangement tab in the system preferences, I can move my mouse off the screen, and System Information reports

 

ATI Radeon HD 5700 Series:

 Chipset Model:	ATI Radeon HD 5700 Series
 Type:	GPU
 Bus:	PCIe
 PCIe Lane Width:	x16
 VRAM (Total):	1024 MB
 Vendor:	ATI (0x1002)
 Device ID:	0x68b8
 Revision ID:	0x0000
 Displays:
SHARP HDMI:
 Resolution:	1920 x 1080 @ 60 Hz
 Pixel Depth:	32-Bit Color (ARGB8888)
 Main Display:	Yes
 Mirror:	Off
 Online:	Yes
 Rotation:	Supported
 Television:	Yes
VGA Display:
 Resolution:	800 x 600 @ 60 Hz
 Pixel Depth:	32-Bit Color (ARGB8888)
 Mirror:	Off
 Online:	Yes
 Rotation:	Supported
Display Connector:
 Status:	No Display Connected
Display Connector:
 Status:	No Display Connected

I have a Gigabyte GA-P35-DS3R with an MSI R5770 (ATI Radeon HD 5770). QE/CI work, out of the box, with GraphicsEnabler=Yes.

 

I followed MaLd0n's installation instructions for Lion, found here. I used his DSDT Auto-Patcher, here. The only kexts I've installed are Lnx2Mac's Realtek Ethernet, the IntelCPUMonitor and SuperIOFamily FakeSMC plugins, AHCIPortInjector, and IOAHCIBlockStorageInjector.

 

I do not have the same problems in my Snow Leopard install. How can I rid myself of this ghost display?

 

Thanks in advance. Apologies if this has been asked before, I couldn't think of a good way to Google for the topic without getting lots of posts about actually having two displays.

 

19 July 2011: Edited title to better reflect problem and solution.

Link to comment
Share on other sites

No solution yet. We probably have the same card (MSI R5770 Hawk?). I've been waiting for the official release of Lion to see if the problem persists before investigating/pushing for an answer. Does yours work properly in Snow Leopard?

 

Post here if you figure it out; I'll do the same. Glad to hear I'm not the only one.

 

Thanks.

Link to comment
Share on other sites

Hello,

 

Yes, I have the same MSI Hawk 5770 card. ;)

 

I've started my Osx86 project only with Lion GM, never tried it on Snow Leopard...

 

At the moment I try to set up the HDMI output... When I connect a HDMI <--> DVI-D cable on the card, the screen is detected as VGA display, like the "ghost display". But I can not choose the right resolution for my screen (1680x1050). :D

Link to comment
Share on other sites

Vervet->Eulemur

I booted with AtiConfig=Eulemur (this is the only 5000 personality that works with my card, other than Vervet), but it still results in an extra display.

 

If I boot with GraphicsEnabler=No, everything works properly, except DVD Player, etc.

 

It took me a minute of Googling to figure out what you're talking about, but now I feel much more informed about AtiConfig. Here's what I think I learned:

 

Booting with GraphicEnabler=No uses the RadeonFramebuffer personality. This results in a working system but some programs, like DVD Player, crash. All three connectors for my card are correctly detected: DP (0x400), HDMI (0x800), and DVI (0x4).

 

Booting with GraphicsEnabler=Yes AtiConfig=Vervet uses the Vervet personality (default for this card). It defines four connectors: DVI (Single link? 0x200), DP (0x400), HDMI (0x800), and DVI (0x4). When this profile is used, Lion recognizes the unnecessary 0x200 DVI as being connected to a VGA display, hence the "Ghost display".

 

Booting with GraphicsEnabler=Yes AtiConfig=Eulemur uses the Eulemur personality. It defines three connectors: VGA (0x10), HDMI (0x800), DVI (0x4). When this profile is used, Lion recognizes the unnecessary 0x10 VGA as being connected to a VGA display, hence the "Ghost display".

 

I am considering modifying the ATI kext per the instructions here. I believe this would let me replace the VGA (0x10) entry in Eulemur with the DP (0x400) entry in Vervet. I hope this would result in Eulemer having the correct three connector entries.

 

Any other suggestions? Am I way off base here?

 

Thanks in advance.

Link to comment
Share on other sites

Editing the Eulemur personality per the instructions here worked!

 

Below I outline the steps I took to replace the Eulemer personality with the Vervet personality modified to only use three connectors.

 

I used ati_personality.pl.0.7 (from the above link) to read all the personalities. I'm only interested in the two working personalities, Vervet and Eulemer. For 32-bit:

$ perl ati-personality.pl -a
... 
Kext ATI5000Controller
...
Personality: Vervet
ConnectorInfo count in decimal: 4
Disk offset in decimal 488552
0000000	00  04  00  00  00  04  00  00  00  71  00  00  12  04  04  02
0000010	04  00  00  00  14  00  00  00  00  71  00  00  01  12  01  04
0000020	00  02  00  00  14  00  00  00  00  71  00  00  00  00  06  03
0000030	00  08  00  00  00  02  00  00  00  71  00  00  22  05  05  01
0000040
...
Personality: Eulemur
ConnectorInfo count in decimal: 3
Disk offset in decimal 488664
0000000	04  00  00  00  14  00  00  00  00  01  00  00  01  02  01  04
0000010	00  08  00  00  00  02  00  00  00  71  00  00  12  04  04  02
0000020	10  00  00  00  10  00  00  00  00  00  00  00  00  10  00  01
0000030
...

For 64-bit:

$ perl ati-personality.pl -x
... 
Kext ATI5000Controller
...
Personality: Vervet
ConnectorInfo count in decimal: 4
Disk offset in decimal 167264
0000000	00  04  00  00  00  04  00  00  00  71  00  00  12  04  04  02
...
Personality: Eulemur
ConnectorInfo count in decimal: 3
Disk offset in decimal 167376
...

The only difference between the 32 and 64 bit output is the disk offset for each, I will use both later.

 

To fix my problem, I extracted the Vervet personality first. It has 4 connectors, so we dump 4*16=64 bytes. Its offset it 488552 from above.

$ cp -r /System/Library/Extensions/ATI5000Controller.kext ./
$ dd if=ATI5000Controller.kext/Contents/MacOS/ATI5000Controller of=Vervet.orig bs=1 skip=488552 count=64

Then I converted it to hex

$ xxd < Vervet.orig > Vervet.orig.hex
$ cat Vervet.orig.hex 
0000000: 0004 0000 0004 0000 0071 0000 1204 0402  .........q......
0000010: 0400 0000 1400 0000 0071 0000 0112 0104  .........q......
0000020: 0002 0000 1400 0000 0071 0000 0000 0603  .........q......
0000030: 0008 0000 0002 0000 0071 0000 2205 0501  .........q.."...

Now I edit the hex file with a text editor, delete the second line (for the unnecessary 0x200 DVI connector), and modify the new second line's first string appropriately (0000030->0000020). I save the new file as Eulemer.new.hex

$ cat Eulemur.new.hex 
0000000: 0004 0000 0004 0000 0071 0000 1204 0402  .........q......
0000010: 0400 0000 1400 0000 0071 0000 0112 0104  .........q......
0000020: 0008 0000 0002 0000 0071 0000 2205 0501  .........q.."...

I convert back to binary and write the new Eulemer profile into the kext. I write the same data to two addresses. From the ati_personality.pl.0.7 output above, the Eulemer personality has a disk offset of 488664 (32-bit) and 167376 (64-bit). It has only 3 connectors, so we write 3*16=48 bytes.

$ xxd -r < Eulemur.new.hex > Eulemur.new
$ dd if=Eulemur.new of=ATI5000Controller.kext/Contents/MacOS/ATI5000Controller bs=1 count=48 seek=488664 conv=notrunc
$ dd if=Eulemur.new of=ATI5000Controller.kext/Contents/MacOS/ATI5000Controller bs=1 count=48 seek=167376 conv=notrunc

Now all that's left is to backup the original ATI5000Controller.kext, replace it with the new one, rebuild caches, and reboot. Voila, no more ghost display.

 

Tell me if this helps or if I've got any typos here.

Link to comment
Share on other sites

Good to hear, that there is a method to fix the problem. :)

Thank's for your investigation and your work tallest!!

 

Would it be possible, that you share your modified ATI5000Controller.kext for all the MSI Hawk 5770 users here?

Link to comment
Share on other sites

Thanks for your information.

After patching your ATI5000Controller, can you use your HDMI audio now in Lion ?

I also use MSI 5770 Hawk card in my Asus P6T SE motherboard.

In Snow Leopard 10.6.6/10.6.7 I can use DP, HDMI, & DVI ports at the same time with working HDMI audio.

After patching ATIFramebuffer and DSDT plus set GraphicsEnabler=Y and Kabyl's boot.

However in Lion I can only use HDMI & DVI ports without working HDMI audio now (just set GraphicEnabler=N).

 

[solved] After patching AppleHDA.kext to new 2.05 version, my HDMI audio works again with the following:

_____________________________________________________________

Personality: Vervet

 

0000000 00 08 00 00 00 02 00 00 00 71 00 00 22 05 05 05 (HDMI audio)

0000010 00 04 00 00 04 06 00 00 00 71 00 00 12 04 04 02 (DP-->HDMI audio with Eyefinity convertor)

0000020 04 00 00 00 14 00 00 00 00 71 00 00 01 02 01 04 (DVI)

0000030 00 02 00 00 14 00 00 00 00 71 00 00 00 00 06 00

_____________________________________________________________

Link to comment
Share on other sites

Hm, I've tried your kext, but no difference for me. :(

 

Here, what I've done:

1. Installed your ATI5000Controller.kext via Kext Utility

2. Insert

<key>GraphicsEnabler</key>

<string>Yes</string>

<key>AtiConfig</key>

<string>Eulemur</string>

into org.chameleon.Boot.plist.

 

But there's no change, still the "ghost VGA screen" beside my DVI screen. :(

Link to comment
Share on other sites

  • 4 weeks later...
  • 2 weeks later...

tallest

 

Do you have any issues with your display waking from sleep when using your modified eulemur personality?

 

I have the same ports as you on a sapphire 5770, i was getting the ghost display, which i managed to remove following your guide ive just got the display problem.

 

The problem occurs on the dvi port i have not tested it on the hdmi/dp connector.

 

Is your dvi port dual link?

 

Thanks Pintglass

Link to comment
Share on other sites

  • 1 month later...
Yes. I can upload it later today...

 

Would be very nice, if you can upload it. Not only for me, but also for the other users, who switches to 10.7.2 with a MSI HAWK 5770.

 

Thanks in advance. :)

Link to comment
Share on other sites

Hello-

I am planning on installing Lion on my HTPC, which has a R5770, today. Assuming I follow the same steps as axm in post 12, will I have a ghost free machine in addition to HDMI sound? Or is the ket posted above only a fix for the ghost issue?

Thanks! (I'm horribly unclear on how to get the 5770 working with sound in Lion)

Link to comment
Share on other sites

I can't help you there. I use DVI to HDMI for my video output and a USB DAC for audio.

 

I don't see HDMI as an option for audio output in System Preferences, but maybe it requires being connected to an audio capable device.

Link to comment
Share on other sites

Tallest:

 

This thread has provided me hope that I can get my Powercolor HD6850 to recognize all 4 video ports on the card. I am posting here, but do not want to hijack your thread. So, I apologize in advance for any appearance of hijacking the thread. I would have just sent a PM, but could not figure out how to attach files to PM.

 

After Installing xCode 4.2 for Lion, I reran in terminal "perl ati-personality.pl -x". When I had run it before, it errored out with some message about not finding my ATi1300Controller.kext. This terminal command generated a slew of txt files on my desktop. Amongst them are the three (3) attached files.

 

ATI6000Controller.txt ATI6000Controller.lipo.txtATI6000Controller.l.txt

Can you help me get my card running as it is capable (recognizing all 4 ports and still being QE/CI compatible (Card is recognized OOB in Lion without adding boot flags/options for AtiConfig or AtiPorts, but no ports listed, and only 1 DVI port works with DVI-I DL to VGA adapter)? I would appreciate your guidance, as I know you had figured out how to do this with your MSI R5570 Hawk card for the ATI5000Controller.kext.

 

So as to avoid any (further?) hijacking, I would welcome your reply by PM if you deem it more appropriate. Thank you for any help you can provide.

 

nesnfsn in sunny South Florida

Link to comment
Share on other sites

I'm still having trouble getting my 5770 working in Lion with no ghost image and HDMI sound.

 

So far, this is what I have done:

 

1. Followed directions on enabling HDMI sound on toleda's guide here.

 

2. Modified ATIController5000 by swapping searching/replacing Vervet personality hex string with those provided by jsl in post #10. i.e. I searched each line of Vervet in ATIController5000 and replaced with the ones given. Each string (i.e. line of the original vervet) was replaced twice. jsl's string for HDMI sound (i.e. replacing the last 01 for HDMI with 05) was consistent with the changes in toleda's guide above.

 

3. added the following to org.Chameleon.Boot.plist:

 

<key>GraphicsEnabler</key>

<string>Yes</string>

<key>AtiConfig</key>

<string>Vervet</string>

 

Unfortunately, this neither fixed the ghost display or gave me HDMI sound. I will need to start again, undoing the changes I have made. If anyone has HDMI sound working without the ghost display in Lion 64-bit, any pointers would be greatly appreciated. This is the last thing i need to get my HTPC up and running...

 

Thanks!

 

EDIT: tallest, looking at your post for the Eulemer fix that worked for you, do you think replacing the last 01 with 05 (which should enable HDMI sound) and setting AtiConfig to Eulemer would work in my situation? Did you make changes to both the 32-bit and 64-bit address spaces in the ATIConfig5000 you posted?

Link to comment
Share on other sites

FINALLY! I was able to get HDMI sound (without the ghost screen) through my R5770 in 10.7.2:

 

1. I was able to get my ALC889 working using this kext and DSDT edit.

 

2. Followed toleda's instructions here.

 

3. Used ATIController5000.kext that tallest provided and changed the last 01 for the hdmi string to 05.

 

Thanks to the authors of the above!

 

Now, I'm off to rock some LCD Soundsystem (and turn off verbose mode)!

Link to comment
Share on other sites

 Share

×
×
  • Create New...