kizwan Posted March 15, 2011 Share Posted March 15, 2011 Kizwan, thank you for laying this out, but your patch does not work on my Inspiron 1545 Possibly its due to variation in video hardware. I have a different VBIOS than what you posted. And unfortunately I get a garbled screen using RadeonHD.kext in debug mode, which makes it hard to follow mucha's guide. I put terminal into dock and hope to get the dmseg output that way, might have to try VNC to get it. You'll need to check the "transmitter" & "encoder" values for your graphic card. But I think it should work. Did you check whether ATIFramebuffer.kext loaded or not? Link to comment Share on other sites More sharing options...
wmarsh Posted March 16, 2011 Author Share Posted March 16, 2011 You'll need to check the "transmitter" & "encoder" values for your graphic card. But I think it should work. Did you check whether ATIFramebuffer.kext loaded or not? I think this is the correct patch for Inspiron 1545: 02 00 00 00 40 00 00 00 09 01 00 00 12 00 00 01 10 00 00 00 10 00 00 00 00 01 00 00 00 10 01 02 But I still don't have joy. I think its the injector. Am now revisiting the DSDT patches that gave me ATY node to connect to. Unfortunately I have too many and have to restore the old graphics system to read them and figure out the right one. Link to comment Share on other sites More sharing options...
kizwan Posted March 16, 2011 Share Posted March 16, 2011 Am now revisiting the DSDT patches that gave me ATY node to connect to. Unfortunately I have too many and have to restore the old graphics system to read them and figure out the right one. You don't need to use DSDT. Just use standard Chameleon 2 RC5 (or latest trunk) boot file. It automatically use Peregrine with your card. Just use GraphicsEnabler=Yes. I have tested two different sets of "transmitter" & "encoder" on my card (4570) & I found both work. So, it should work on your card too. Even when you already put the correct "transmitter" & "encoder" for your card, it doesn't work. I think something is going on here. Did you check whether ATIFramebuffer.kext loaded or not? The VBIOS is extracted directly from Inspiron 1545's BIOS, so it should be correct based on this screenshot by c0ke. Based on the above screenshot, the VBIOS version is 011.022.003.006.032831. This is the header of the graphic card's ROM file:- Please check the VBIOS version (011.022.003.006.032831). Link to comment Share on other sites More sharing options...
wmarsh Posted March 16, 2011 Author Share Posted March 16, 2011 Please check the VBIOS version (011.022.003.006.032831). Mine is 011.018.000.016.031245 I can send you the rom, but as I got dmesg per mucha's guide, I think I have the right numbers No ATIFramebuffer still does not load. I have a black screen, so no connection is made. Don't have an external monitor available -- might later tonight. I will try trunk with Graphics Enabler yes next. Link to comment Share on other sites More sharing options...
kizwan Posted March 16, 2011 Share Posted March 16, 2011 Mine is 011.018.000.016.031245I can send you the rom, but as I got dmesg per mucha's guide, I think I have the right numbers No ATIFramebuffer still does not load. I have a black screen, so no connection is made. Don't have an external monitor available -- might later tonight. I will try trunk with Graphics Enabler yes next. I have the VBIOS. I'll update the both guide. 25_26.zip Link to comment Share on other sites More sharing options...
kizwan Posted March 16, 2011 Share Posted March 16, 2011 This is HD 4330 with VBIOS version 011.018.000.016.031245:- ATOM BIOS Rom: SubsystemVendorID: 0x1028 SubsystemID: 0x02aa IOBaseAddress: 0x0000 Filename: BR31245C.001 BIOS Bootup Message: Dell_Roberts_M92S_GDDR3 M92 GDDR3 64bit 450e/600m Connector at index 0 type: VGA (1) Connector's i2cid: 91 Connector at index 1 type: LVDS (7) Connector's i2cid: 90 This is HD 4330 with VBIOS version 011.022.003.006.032831:- ATOM BIOS Rom: SubsystemVendorID: 0x1028 SubsystemID: 0x02aa IOBaseAddress: 0x0000 Filename: BR32831.001 BIOS Bootup Message: BR32831-001 M92 DDR2 64bit 450e/500m Connector at index 0 type: VGA (1) Connector's i2cid: 91 Connector at index 1 type: LVDS (7) Connector's i2cid: 90 Both have identical connection & identical senseid. So no need to update the guide. I think I know why it doesn't work for you. It is because ATIFramebuffer.kext is not loaded. Whether the display is working or not, ATIFramebuffer.kext should loaded when you boot with GraphicsEnabler=Yes. Try execute this command to refresh the kext cache:- touch /System/Library/Extensions Then reboot. Check again to see whether ATIFramebuffer.kext loaded or not. Link to comment Share on other sites More sharing options...
wmarsh Posted March 16, 2011 Author Share Posted March 16, 2011 Check again to see whether ATIFramebuffer.kext loaded or not. I removed all DSDT except the one with no graphics injectors. I removed RadeonHD.kext from /S/L/E I replaced bootloader with current trunk Rebooting with patched ATI4600Controller, I still get black internal monitor. Without it, ATIFramebuffer, ATISupport, and ATIRadeonX2000 all load. kextutil -v ATI4600Controller says it successfully loaded. Link to comment Share on other sites More sharing options...
kizwan Posted March 16, 2011 Share Posted March 16, 2011 I removed all DSDT except the one with no graphics injectors.I removed RadeonHD.kext from /S/L/E I replaced bootloader with current trunk Rebooting with patched ATI4600Controller, I still get black internal monitor. Without it, ATIFramebuffer, ATISupport, and ATIRadeonX2000 all load. kextutil -v ATI4600Controller says it successfully loaded. OK. Now you got the ATIFramebuffer.kext loaded. Redo the ATIFramebuffer patch. Link to comment Share on other sites More sharing options...
wmarsh Posted March 16, 2011 Author Share Posted March 16, 2011 OK. Now you got the ATIFramebuffer.kext loaded. Redo the ATIFramebuffer patch. Well, I redid the patch -- it is pretty easy to screw up hex editing. I also removed the EDID injection from /System/Library/Display/Overides And I removed AtiConfig, Atibinimage, and Display Information from /Extra/com.apple.Boot.plist Still it does not connect for me. I've been working on this so long, there's probably something left over somewhere from prior attempts. Maybe I need a fresh install. Link to comment Share on other sites More sharing options...
kizwan Posted March 16, 2011 Share Posted March 16, 2011 Well, I redid the patch -- it is pretty easy to screw up hex editing. I also removed the EDID injection from /System/Library/Display/Overides And I removed AtiConfig, Atibinimage, and Display Information from /Extra/com.apple.Boot.plist Still it does not connect for me. I've been working on this so long, there's probably something left over somewhere from prior attempts. Maybe I need a fresh install. Do you have IORegistryExplorer? Can you save the IORegistry using the IORegistryExplorer app & post it here? Well, I redid the patch -- it is pretty easy to screw up hex editing. This is 10.6.6 ATIFramebuffer.kext which already patched with Inspiron 1545's HD 4330 connections table for both 32bit & 64bit (Peregrine framebuffer). ATIFramebuffer.kext.zip ATOM BIOS Rom: SubsystemVendorID: 0x1028 SubsystemID: 0x02aa IOBaseAddress: 0x0000 Filename: BR31245C.001 BIOS Bootup Message: Dell_Roberts_M92S_GDDR3 M92 GDDR3 64bit 450e/600m Connector at index 0 type: VGA (1) Connector's i2cid: 91 Connector at index 1 type: LVDS (7) Connector's i2cid: 90 ATOM BIOS Rom: SubsystemVendorID: 0x1028 SubsystemID: 0x02aa IOBaseAddress: 0x0000 Filename: BR32831.001 BIOS Bootup Message: BR32831-001 M92 DDR2 64bit 450e/500m Connector at index 0 type: VGA (1) Connector's i2cid: 91 Connector at index 1 type: LVDS (7) Connector's i2cid: 90 senseid = (i2cid And 0xf) + 1 VGA: (91 And 0xf) + 1 = 2 LVDS: (90 And 0xf) + 1 = 1 02 00 00 00 40 00 00 00 09 01 00 00 02 01 00 01 (LVDS) 10 00 00 00 10 00 00 00 00 01 00 00 00 10 00 02 (VGA) Install it & make sure fix the permission if necessary. Reboot & make sure the ATIFramebuffer.kext is loaded. Also make sure to set GraphicsEnabler=Yes. If there still no output on the internal monitor, check the bytes 12 (0x0C) & 13 (0x0D) using the mucha's guide. The rest of the bytes already correct. 0x 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ----------------------------------------------------------------- 000 | 02 00 00 00 40 00 00 00 09 01 00 00 02 01 00 01 (LVDS) 010 | 10 00 00 00 10 00 00 00 00 01 00 00 00 10 00 02 (VGA) Link to comment Share on other sites More sharing options...
wmarsh Posted March 16, 2011 Author Share Posted March 16, 2011 Found one problem. Had an old com.apple.Boot.plist in /System/Library/Preferences/SystemConfiguration with GraphicsEnabler = n Got rid of it; Now everything loads I have QE on external monitor with green apple in upper left. Nothing on LVDS I will recheck bytes 13 and 14 as you say -- still think they should be 12 00 but obviously I am not working. Might also be EDID issue, but I can but back those fixes and see. Link to comment Share on other sites More sharing options...
c0ke Posted March 16, 2011 Share Posted March 16, 2011 Please provide me a readout from your graphic card's ROM file. Use radeondump from here. Example of the output:- ATOM BIOS Rom: SubsystemVendorID: 0x1028 SubsystemID: 0x02bd IOBaseAddress: 0x0000 Filename: BR034783.006 BIOS Bootup Message: BR034783-006 M92 DDR3 64bit 500e/800m Connector at index 0 type: VGA (1) Connector's i2cid: 95 Connector at index 1 type: HDMI-A (11) Connector's i2cid: 91 Connector at index 2 type: LVDS (7) Connector's i2cid: 90 Hi kizwan, finally I've got the rom, booting in 32bit mode, everything seems to be similar to the one you posted but the IOBaseAddress value. I've got a different mobility HD4330 with 512 mb vram. Can I use the same ATIFramebuffer you posted above in order to try? Here's the radeondump printout: ATOM BIOS Rom: SubsystemVendorID: 0x1028 SubsystemID: 0x02aa IOBaseAddress: 0xde00 Filename: BR32831.001 BIOS Bootup Message: BR32831-001 M92 DDR2 64bit 450e/500m Connector at index 0 type: VGA (1) Connector's i2cid: 91 Connector at index 1 type: LVDS (7) Connector's i2cid: 90 Link to comment Share on other sites More sharing options...
kizwan Posted March 16, 2011 Share Posted March 16, 2011 Found one problem. Had an old com.apple.Boot.plist in /System/Library/Preferences/SystemConfiguration with GraphicsEnabler = n Got rid of it; Now everything loads I have QE on external monitor with green apple in upper left. Nothing on LVDS I will recheck bytes 13 and 14 as you say -- still think they should be 12 00 but obviously I am not working. Might also be EDID issue, but I can but back those fixes and see. Can you post the IORegistry dump? I want to examine it. Hi kizwan, finally I've got the rom, booting in 32bit mode, everything seems to be similar to the one you posted but the IOBaseAddress value.I've got a different mobility HD4330 with 512 mb vram. Can I use the same ATIFramebuffer you posted above in order to try? The 256 MB video RAM in the previous post is typo. Just ignore it. The IOBaseAddress & the video RAM are not important. What important are the connections (VGA & LVDS) & i2cid value which are identical with the one in my guide. Please try the ATIFramebuffer.kext in my previous post. The guides for 32-bit & 64-bit at Post #120 & Post #122 respectively are for Dell Inspiron 1545 with ATI Radeon HD 4330. The steps are derived from bcc9's guide which you need to follow first before following mucha's guide. After you have followed my edited guides for Dell Inspiron 1545, if the display still not working properly, you'll need to obtain correct Transmitter & Encoder by following the mucha's guide. Link to comment Share on other sites More sharing options...
Ccc Posted March 16, 2011 Share Posted March 16, 2011 The guides for 32-bit & 64-bit at Post #120 & Post #122 respectively are for Dell Inspiron 1545 with ATI Radeon HD 4330. The steps are derived from bcc9's guide which you need to follow first before following mucha's guide. After you have followed my edited guides for Dell Inspiron 1545, if the display still not working properly, you'll need to obtain correct Transmitter & Encoder by following the mucha's guide. you need not to follow bcc's guide for hex addresses because mucha has updated his Howto and give all . just download the attachment and use hex editor to search for the hexadecimal code that mucha give then begin to edit according to your own parameters. see the following instructions, the following came from mucha's instructions,mucha's updated instructions -------------------------- How to Easy Quick Patch your desired Framebuffer personality (without calculating the adresses and for both i386 and x86_64): You should have a hexadecimal editor: 1- Download the attached : Sharks_FB.txt Birds_FB.txt and Monkeys_FB.txt, 2- Open the text file select and copy the desired personality hexadecimal code (the one you want to patch), 3- Open ATIFramebuffer.kext and Drag ATIFramebuffer binary to hexadecimal editor, 4- Select : edit>search , in the search fields paste the clipboard content and choose hex value & wrap option, 5- You should find 2 instances of the searched personality: the first one is for x86_64 and the second for i386 (make sure you have only 2), 6- Patch and save your binary, install reboot an ENJOY For Radeon HD 3XXX and prior choose Sharks, For Radeon HD 4XXX choose Birds, For Radeon HD 5XXX choose Monkeys. Link to comment Share on other sites More sharing options...
c0ke Posted March 16, 2011 Share Posted March 16, 2011 Can you post the IORegistry dump? I want to examine it. The 256 MB video RAM in the previous post is typo. Just ignore it. The IOBaseAddress & the video RAM are not important. What important are the connections (VGA & LVDS) & i2cid value which are identical with the one in my guide. Please try the ATIFramebuffer.kext in my previous post. The guides for 32-bit & 64-bit at Post #120 & Post #122 respectively are for Dell Inspiron 1545 with ATI Radeon HD 4330. The steps are derived from bcc9's guide which you need to follow first before following mucha's guide. After you have followed my edited guides for Dell Inspiron 1545, if the display still not working properly, you'll need to obtain correct Transmitter & Encoder by following the mucha's guide. Ok, it seems to be clear now! I will give it a try as soon as I'll have enough time and report results! thank you again! Link to comment Share on other sites More sharing options...
Ccc Posted March 16, 2011 Share Posted March 16, 2011 Our thanks to dong (for his RadeonHD.kext we have tried to obsolete and his tool)to bcc9 for inventing the method. to mucha for the last piece to the puzzle does mucha's method means that all ati cards (3xxx,4xxx,5xxx) could work in OSX in principle? Link to comment Share on other sites More sharing options...
kizwan Posted March 16, 2011 Share Posted March 16, 2011 Ok, it seems to be clear now! I will give it a try as soon as I'll have enough time and report results! thank you again! No problem. Happy to help. The guide was meant to show you how to obtain the necessary information (this is for anybody who want to learn). You don't need to redo it. Just copy the offset to Peregrine's connection table & start patching them. OR you can just test the ATIFramebuffer.kext I posted earlier. does mucha's method means that all ati cards (3xxx,4xxx,5xxx) could work in OSX in principle? In theory, yes. That's the idea of the guide. Link to comment Share on other sites More sharing options...
c0ke Posted March 16, 2011 Share Posted March 16, 2011 No problem. Happy to help. The guide was meant to show you how to obtain the necessary information (this is for anybody who want to learn). You don't need to redo it. Just copy the offset to Peregrine's connection table & start patching them. OR you can just test the ATIFramebuffer.kext I posted earlier. In theory, yes. That's the idea of the guide. Just tried: replaced my actual 10.7 Ati4600controller (with my card's devId corrected in info.plist), atiframebuffer and atisupport kexts with the original 10.6 ati4600controller (devId modded), atisupport and the atiframebuffer you posted. Repaired and booted with -f, I've got blank screen after spinning wheel and grey apple logo, on both external vga screen and internal lvds lcd. Maybe I did some mistake, I will try once more when I'll have more time to spend, maybe better following kizwan's guide. Link to comment Share on other sites More sharing options...
kizwan Posted March 16, 2011 Share Posted March 16, 2011 Just tried: replaced my actual 10.7 Ati4600controller (with my card's devId corrected in info.plist), atiframebuffer and atisupport kexts with the original 10.6 ati4600controller (devId modded), atisupport and the atiframebuffer you posted.Repaired and booted with -f, I've got blank screen after spinning wheel and grey apple logo, on both external vga screen and internal lvds lcd. Maybe I did some mistake, I will try once more when I'll have more time to spend, maybe better following kizwan's guide. Do you have another computer? The best way to work/troubleshoot the problem is to connect remotely from another computer. You can dump the IORegistry, check whether necessary kexts loaded or not, etc with this method. I'm guessing the ATIFramebuffer.kext is not loaded. Please execute this command to refresh the kext cache:- touch /System/Library/Extensions Then reboot. Make sure you boot with GraphicsEnabler=Yes. Make sure Peregrine framebuffer is use by checking in IORegistry. If you can give me the IORegistry dump, I can look into it further. Link to comment Share on other sites More sharing options...
wmarsh Posted March 16, 2011 Author Share Posted March 16, 2011 does mucha's method means that all ati cards (3xxx,4xxx,5xxx) could work in OSX in principle? Exactly. Someone should put a news piece in the news section. Can you post the IORegistry dump? I want to examine it. Yes, but I want to try a few other things 1st. This is from my dmseg output Mapping DIG1 encoder to KLDSKP_UNIPHYE Crtc[0]: found native mode from Monitor[LVDS Panel]: Modeline "1600x900" 97 1600 1648 1680 1760 900 903 908 926 Connector "PANEL" uses Monitor "LVDS Panel": DxModeValid: ATOM CRTC 1 Listing modesetting layout: ATOM CRTC 1: tied to Atom PLL 1 and LUT A: Outputs: AtomOutput UniphyE (PANEL) ATOM CRTC 2: unused Unused Outputs: AtomOutput DACA Mucha says this in his guide: Based upon the above information my SPECIFIC videocard routing is: CRTC0>DIG1>UNIPHYE>LVDS Encoder= 0x00 Transmitter = 0x12 CRTC1>DAC > DACA >VGA Encoder=0x10 Transmitter = 0x00 So I really think I am correct on transmitter and encoder bytes as I have same dmesg. I am about to try your ATIFramebuffer.kext anyway [EDIT -- Didn't work, and I lost output on external monitor.] Your graphics chip and mine I believe both are based on RV710 (at least it says so at notebookcheck.net and in chameleon code) So we must be using the right framebuffer (Peregrine does work for you, right?) I did find another problem -- I had recompiled chameleon for Shrike per mucha's guide and had forgotten to move the original booter back. It would be easier on a virgin system. Link to comment Share on other sites More sharing options...
mxunal Posted March 16, 2011 Share Posted March 16, 2011 good job guys. now, we are waiting a "how to" that starts from the first operation (windows deleting) for newbies. Link to comment Share on other sites More sharing options...
wmarsh Posted March 16, 2011 Author Share Posted March 16, 2011 good job guys. now, we are waiting a "how to" from the first operation (windows deleting) for newbies. It will happen We have successes -- I am not yet one -- when I am I will post guide at top of this thread for my machine (Dell Inspiron 1545) Given the variability in laptops, I doubt this will ever be a simple hack Link to comment Share on other sites More sharing options...
hjs89 Posted March 16, 2011 Share Posted March 16, 2011 For first time my LVDS display is working correctly!! I've followed mucha's guide. I've tested Shrike, Vervet and Peregrine and now Peregrine is working, but not the hdmi port . I'll post more feedback in his post to try to fix it. Link to comment Share on other sites More sharing options...
kizwan Posted March 17, 2011 Share Posted March 17, 2011 I am about to try your ATIFramebuffer.kext anyway[EDIT -- Didn't work, and I lost output on external monitor.] The only things left to do is put the right Encoder & Transmitter values in the kext file. Are you doing from scratch again? For first time my LVDS display is working correctly!! I've followed mucha's guide. I've tested Shrike, Vervet and Peregrine and now Peregrine is working, but not the hdmi port . I'll post more feedback in his post to try to fix it. Congratulation! Another 4570 got the LVDS working. When I found about the ControlFlags, I'm able to get LVDS working & then VGA port working but not HDMI. When mucha release the guide about the link, I was able to get HDMI working by making a correction on the Encoder & Transmitter values. Link to comment Share on other sites More sharing options...
hjs89 Posted March 17, 2011 Share Posted March 17, 2011 I don't know why but I can't post on mucha's post , so I'll post here what is happening me. ------------------------------------------------------------ Thank you for this guide!! It's awesome. I've done some test and now my LVDS port is working but not the HDMI. I'm going to post the information of my graphics card (mobility 4570 9553:1002, similar to kizwan's one) These are my conectors in my Vbios: $ ./radeondump < 9553.0301.00E0.vga.rom ATOM BIOS Rom: SubsystemVendorID: 0x1025 SubsystemID: 0x0205 IOBaseAddress: 0x2000 Filename: BR33359D.bin BIOS Bootup Message: Acer_JV50_MV_M92M2_XT_DDR3 M92 DDR3 64bit 680e/800m Connector at index 0 type: LVDS (7) Connector's i2cid: 96 Connector at index 1 type: VGA (1) Connector's i2cid: 90 Connector at index 2 type: HDMI-A (11) Connector's i2cid: 91 And the radeon's log: RHDAtomOutputAllocFree Mapping DIG1 encoder to KLDSKP_UNIPHYE Crtc[0]: found native mode from Monitor[LVDS Panel]: Modeline "1366x768" 72 1366 1414 1446 1486 768 771 775 806 Connector "PANEL" uses Monitor "LVDS Panel": RHDValidateScaledToMode rhdModeValidateCrtc DxModeValid: ATOM CRTC 1 rhdAtomOutputModeValid Listing modesetting layout: ATOM CRTC 1: tied to Atom PLL 1 and LUT A: Outputs: AtomOutputtainCountUniphyE (PANEL) ATOM CRTC 2: unused Unused Outputs: AtomOutputDACA, AtomOutputUniphyA I tried patching Shrike, Vervet and Peregrine: Shrike = Both displays were detected, however there wasn't any signal in both display (black screens) (checked via VNC) 02 00 00 00 40 00 00 00 09 01 00 00 12 00 00 07 LVDS 10 00 00 00 10 00 00 00 00 01 00 00 00 10 01 01 VGA 00 08 00 00 00 02 00 00 00 01 00 00 20 01 02 02 HDMI Vervet = Both displays were detected, however there wasn't any signal in both display (black screens) (checked via VNC) 02 00 00 00 40 00 00 00 09 01 00 00 12 00 00 07 LDVS 10 00 00 00 10 00 00 00 00 01 00 00 00 10 01 01 VGA 00 08 00 00 00 02 00 00 00 01 00 00 20 01 02 02 HDMI 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BLANK Peregrine = LVDS is working fine. HDMI display is detected but there isn't any signal (black screen). 02 00 00 00 40 00 00 00 09 01 00 00 12 00 00 07 LVDS 00 08 00 00 00 02 00 00 00 01 00 00 20 01 02 02 HDMI There is one thing that I can't understand. Why if I patched the three personalities with the same code LVDS is only working in Peregrine? About HDMI. Some time ago it worked under Vervet personality with these code: 00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 02 I haven't tried yet to use it now. Do you have any idea why the other personalities are not working? I want be able to use the three ports and I won't be able to do it with peregrine Link to comment Share on other sites More sharing options...
Recommended Posts