Jump to content

Solved | Ati Mobility HD5470: Getting closer to getting LVDS working, need help


mac-fish
 Share

27 posts in this topic

Recommended Posts

So i've been trying to get LVDS on my Toshiba C660-1H6 with a mobility HD5470 512MB gpu to work for days. So far i've tried:

 

- 10.6.4 + Graphics Update + 10.6 kexts + Chameleon with kabyls AtiConfig parameter

- 10.6.8 + same as above

- 10.7 + patched ATI5000Controller.kext + [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] with ATI patches too (most successful until now)

- Patching the personality myself by reading Encoder / Transmitter from Ubuntu

- Injecting EDID

 

I tried upgrading my SL installation to Lion and after some initial issues got it running.

I installed the kext from here: http://www.kexts.com/view/1501-hd_5470_mob...ci_lion_gm.html and got QE / CI working again. on VGA only though.

However, unlike in SL in system settings there was a second display listed. Changing its resolution did not affect the LVDS at all. However it was listed under the same name as the internal display was in about this mac ( the new system profiler replacement with way less info ) (something along the lines of spdisplay_etc) Also, the backlight of the LVDS was on.

 

So I tried adjusting the patched Eulemur FB from the kext to fit the senseid of my LVDS that i got from the vgabios dump from everest. The result was that either the kext was screwed up and OS X would just lock up where the ATI kext gets initiated, or VGA stopped working too. I edited it this way:

Personality of my patched framebuff appled to "Eulemur" as below:

0000000 02 00 00 00 40 00 00 00 09 01 00 00 12 01 00 04 <-- senseid byte

0000010 00 08 00 00 00 02 00 00 00 01 00 00 20 00 01 01 <-- senseid byte

0000020 10 00 00 00 10 00 00 00 00 00 00 00 10 10 02 08 <-- senseid byte

 

to

0000000 02 00 00 00 40 00 00 00 09 01 00 00 12 01 00 07 <-- senseid byte

0000010 00 08 00 00 00 02 00 00 00 01 00 00 20 00 01 01 <-- senseid byte

0000020 10 00 00 00 10 00 00 00 00 00 00 00 10 10 02 08 <-- senseid byte

(left the other values as they were since VGA was working)

 

So can someone explain to me why editing this kext in 0xED will screw it up totally? And also, why is there only one occurence of the patched Eulemur in this kext and not even vanilla Eulemur appears anywhere in this kext? According to the personality editing tutorials, there are 2 occurences of each personality in the kext: the 32bit and the 64bit one. Also, arch=x86_64 makes the bootloader lock up at Graphics Card initialization.

 

Can anyone help?

 

EDIT: Check last post for kext and info

Link to comment
Share on other sites

I get QE/CI in Lion 10.7 with edid injection and graphics enabler enabled. No patched Framebuffer. Howeve my internal screen is recognized as CRT, so i get a black screen when wake up from sleep. Try this, hex edit de framebuffer, and use aty_init with your deviceid inside. For some people aty_init works and graphics enabler dont.

Link to comment
Share on other sites

I get QE/CI in Lion 10.7 with edid injection and graphics enabler enabled. No patched Framebuffer. Howeve my internal screen is recognized as CRT, so i get a black screen when wake up from sleep. Try this, hex edit de framebuffer, and use aty_init with your deviceid inside. For some people aty_init works and graphics enabler dont.

 

Nami, try and add this for wake from sleep issue

 

sudo pmset -a hibernatemode 0

Link to comment
Share on other sites

Lion_kexts.zip Hi, try to use this..

its for lion 10.7.1 with sleepenabler

:(

 

which personality was edited in this kext? or is it just vanilla ATI5000Controller? It doesn't detect the LVDS at all :P

 

 

I get QE/CI in Lion 10.7 with edid injection and graphics enabler enabled. No patched Framebuffer. Howeve my internal screen is recognized as CRT, so i get a black screen when wake up from sleep. Try this, hex edit de framebuffer, and use aty_init with your deviceid inside. For some people aty_init works and graphics enabler dont.

 

So i tried installing ATY_init, but how do i get it to recognize the 5400 series? ATY_Init is obviously not made for this card, but the IOPCIMatch has it within its range. I just have to make an entry in Info.plist about 5400 but there's so much Information about it that you have to type in that i do not know. How to fix this?

Link to comment
Share on other sites

Okay, so i got a tiny bit closer to getting it to work, i edited the personality further so now the 2nd connector looks like this:

 

02000000 14000000 09010000 0112 0107

 

This makes the Display show up as LVDS screen (it shows up as 13inch for some reason, but i guess that doesn't matter)

So, the screen is still black on the LVDS though; i guess it's due to the ControlFlags (0x0014 here(?)) which stands for

0x0200 : DVI-? > ControlFlag : 0x0014

 

anyway, editing it to LVDS ControlFlag:

0x0002 : LVDS > ControlFlag : 0x0040 / 0x0100

which means the ControlFlag portion is now:

40000000

or

00010000

(is this correct?)

this results in the LVDS / second connector not being recognized at all anymore.

 

so my thoughts are: Are Encoder/Transmitter even important for me to get it to work? Because when i was on Ubuntu trying to get that combination once, i got

DIG0 as output, which results in the transmitter being 00. That means that only the combos: 10 00, 00 00 or, if you take some assumptions from members around here into account, also 22 05, are available.

Is this correct?

 

Also, the ControlFlags are, according to guide

http://www.insanelymac.com/forum/index.php...252061&st=0

important. Should i leave the DVI flag? Its not correct for LVDS, but it does break the connector if i change it (also, why?)

Link to comment
Share on other sites

I have similiar problem, but my LVDS screen works on original personalities of Hoolock after EDID injection. My screen is working in this config, but it not wake from sleep - black. When I try patch framebuffer, I have blackscreen and non-detected screen in system (I see this in IORegistryExplorer with using VNC). I trying AtiConfig=RadeonFramebuffer, all ports is detected, HDMI works, VGA works, LVDS screen not detected. I don't have any idea :blink: and need sleep. Anyone have idea for resolving this problem?

Link to comment
Share on other sites

I have similiar problem, but my LVDS screen works on original personalities of Hoolock after EDID injection. My screen is working in this config, but it not wake from sleep - black. When I try patch framebuffer, I have blackscreen and non-detected screen in system (I see this in IORegistryExplorer with using VNC). I trying AtiConfig=RadeonFramebuffer, all ports is detected, HDMI works, VGA works, LVDS screen not detected. I don't have any idea :blink: and need sleep. Anyone have idea for resolving this problem?

 

Did you try the SleepEnabler and ATI5000 kext posted by someone here? Also, what did your screen look like without EDID injection? And how to find the VendorID of a display if its never been reported in IOReg?

Link to comment
Share on other sites

I think that SleepEnabler is only for enabling sleep on systems without DSDT, but I have fully patched DSDT with patched GFX section (i have nice sh** in this section :blink:). Of course I try SleepEnabler, never before I don't try this.

My screen without EDID is... black, because of lack of resolution. Try EDID inject, Hoolock framebuffer, and change resolution with VNC - for me it's working fine.

Link to comment
Share on other sites

I think that SleepEnabler is only for enabling sleep on systems without DSDT, but I have fully patched DSDT with patched GFX section (i have nice sh** in this section :blink:). Of course I try SleepEnabler, never before I don't try this.

My screen without EDID is... black, because of lack of resolution. Try EDID inject, Hoolock framebuffer, and change resolution with VNC - for me it's working fine.

 

I just tried injecting EDID... but it stays the same generic EDID as before! from my EDID i got Vendor and Display IDs

 

it's ....0030e46a02.....

therefore: DisplayVendorID-30e4 and DisplayProductID-02a6

is this correct? the EDID when i export it from switchresX is different however... so its not getting injected... but why?

Link to comment
Share on other sites

You doing it wrong. ;)

You must inject EDID in DisplayVendorID-756e6b6e and DisplayProductID-717.

 

Yep i just realized that and it works!!! :D After so much time of wrong approaches!!! Will upload kext soon for others that try to get LVDS on this device :)

 

thanks to everyone =)

 

EDIT: Kext should work for anyone on Lion with [url=&quot;http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/&quot;]#####[/url] 3.8 and senseid 7

post-127150-1313705655_thumb.png

ATI5000Controller.kext.zip

Link to comment
Share on other sites

What framebuffer you patch? Please test sleep ;)

 

EDIT: Can you post your log from IORegistryExplorer?

 

I patched Vervet, since it was the one that had the most positive results while i was testing different personalities (both displays always recognized); Sleep does not work unfortunately, also Brightness changing leads to a panic. I think this is some general ACPI problem since the panic is also about IOACPIPlatform. Someone posted a command somewhere to "fix" this (setpm someparametershere), however i didn't try that yet.

 

attached ioreg -l as txt file :)

Link to comment
Share on other sites

OK, for me it's working too... I think that the ControlFlags is important for screen to function correctly, but when I set ControlFlags to properly for LVDS, my LVDS screen is don't recognized anymore. I try with ATY_Init.

Link to comment
Share on other sites

Cant see your ioreg. Is sleep working after running sudo pmset -a hibernatemode 0 ? Your internal display is recognizes as ldvs in ioreg ?

 

2nd try ;p i'll try that command. yes it should be recognized as LVDS, as it is in about mac (i edited personality so it is recognized properly, just edit the 3rd segment to 09010000 should work fine

 

EDIT: pmset does not fix sleep, the device turns off for a second then starts back up and i get a blackscreen (no way to VNC into it too, probably crashed) but i still have sleepenabler in there, will try some other possibilities

ioreg.txt

Link to comment
Share on other sites

2nd try ;p i'll try that command. yes it should be recognized as LVDS, as it is in about mac (i edited personality so it is recognized properly, just edit the 3rd segment to 09010000 should work fine

 

EDIT: pmset does not fix sleep, the device turns off for a second then starts back up and i get a blackscreen (no way to VNC into it too, probably crashed) but i still have sleepenabler in there, will try some other possibilities

 

I think that´s because in yout ioreg yout monitor is recognizes as CRT and not LVDS. If you try to connect a vha monitor to the pc, tou will get imagem when wake from sleep. Vervet is loaded but its not right. Are you editing the right offset? They are different for 32 and 64 bits.

Link to comment
Share on other sites

I think that´s because in yout ioreg yout monitor is recognizes as CRT and not LVDS. If you try to connect a vha monitor to the pc, tou will get imagem when wake from sleep. Vervet is loaded but its not right. Are you editing the right offset? They are different for 32 and 64 bits.

 

i've been only editing the 64bit offset, also it might be detected as CRT since i could'nt edit the ControlFlag. As soon as i edited it, the display stopped working completely.

 

EDIT: i updated the 32bit offset, now brightness works, but sleep causes a panic. IOReg still shows the LVDS as display type 10 (CRT?) though

Link to comment
Share on other sites

Can you attach ioreg? You need to use AppleACPIPlataform from Snow Leopard to avoid kernel panic.

 

I think it should be SL ACPIPlatform running because i installed a package that makes voodoobattery work again, which only works with 10.6.8 acpiplatform. but can you upload SL kext for me? or tell me the version? Also i just realized it randomly still panics to brightness change. sleep still not working.

Link to comment
Share on other sites

I think it should be SL ACPIPlatform running because i installed a package that makes voodoobattery work again, which only works with 10.6.8 acpiplatform. but can you upload SL kext for me? or tell me the version? Also i just realized it randomly still panics to brightness change. sleep still not working.

Hi mac-fish,

 

I have tried to get my Acer 7740G to work properly with the HD 5470 512MB card with no success. I tried the ATI5000Controller.kext that you attached in this post and I still get a black back-lite screen. Is it possible to make the same modifications that you made with the ioreg.txt file hat I have arched? I am just not sure where to begin.

ioreg.txt

Link to comment
Share on other sites

Hi mac-fish,

 

I have tried to get my Acer 7740G to work properly with the HD 5470 512MB card with no success. I tried the ATI5000Controller.kext that you attached in this post and I still get a black back-lite screen. Is it possible to make the same modifications that you made with the ioreg.txt file hat I have arched? I am just not sure where to begin.

 

try, as in this thread it was mentioned, injecting your EDID: http://www.insanelymac.com/forum/index.php?showtopic=208410 you can get it from windows linux / etc installs easily.

Link to comment
Share on other sites

  • 3 weeks later...

alright so after some time of not caring about the brightness issue, i got back to it with some spare time, and saw that the panic caused by brightness change was on CPU 0x2. so i booted with cpus=1 arch=i386, and there we go: brightness changing worked fine. no delayed panics or anything. any ideas how to fix this issue? is it caused by wrong busratio or something similar?

Link to comment
Share on other sites

 Share

×
×
  • Create New...