kizwan Posted March 18, 2011 Share Posted March 18, 2011 Did you noticed that the fan keeps spinning all the time?the cpu usage is not high, so does the graphics i think. do you have any solution for that? I didn't noticed it on my notebook. The fan also doesn't produced too much noise either. Link to comment Share on other sites More sharing options...
hjs89 Posted March 18, 2011 Share Posted March 18, 2011 Did you noticed that the fan keeps spinning all the time?the cpu usage is not high, so does the graphics i think. do you have any solution for that? I noticed that and I think that it's warmer than when I'm running Windows. But it happened before using RadeonHD too. I think that it's because SpeedStep is not enabled yet. It's my next step. Link to comment Share on other sites More sharing options...
wmarsh Posted March 18, 2011 Author Share Posted March 18, 2011 Now we got port 0, port 1, and port 2 work with QE & CI for mobility radeon HD 4330. Thank you crazybirdy, you have been most helpful. I applied your string, and according to ioreg -l (attached) it should be working. Even EDID is correctly there. But I still have black screen. I am thinking I am cursed and this hack works for everyone except me. [EDIT -- CCC reports NullCPUPowerManagement.kext interferes with LVDS initialization. http://www.insanelymac.com/forum/index.php...t&p=1656810 I had this and removed it. However, I still have black screen. I agree with hjs89 that I am very close. But I need some ideas here.] Link to comment Share on other sites More sharing options...
hjs89 Posted March 18, 2011 Share Posted March 18, 2011 Thank you crazybirdy, you have been most helpful. I applied your string, and according to ioreg -l (attached) it should be working. Even EDID is correctly there. But I still have black screen. I am thinking I am cursed and this hack works for everyone except me. I think that if you have black screen and your displays are detected you are close to get it working. I think that there are more pieces of the puzzle. Patching with the same strings in different framebuffers doesn't give the same result. Try change ControlFlags for LVDS from 0x40 to 0x100:- 02 00 00 00 00 01 00 00 09 01 00 00 12 00 00 07 (LVDS) I tested this and my display isn't detected and I've a corrupted grey and black squares. In the other hand I 've done some more test. With Peregrine with this string for HDMI: 00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 02 (Worked for me some time ago) And the both displays are detected without signal. I've tested Shrike with LVDS+BLANK+BLANK and the display was detected but I've a black screen. I don't know why Shrike is not working if I use the same sting . BTW, I'm not using Kabyl's boot file anymore since I saw a System Profiler's screenshots at mucha's thread. I compiled Chameleon 2 from official trunk with these changes in ati.c file:-Original: const char *ati_efidisplay_0[] = { "@0,ATY,EFIDisplay", "TMDSB" }; Mod: const char *ati_efidisplay_0[] = { "@0,ATY,EFIDisplay", "LVDS" }; and Original: { 0x10029553, "Peregrine"} , Mod: { 0x10029553, "Shrike"} , For the changes from TMDSB to LVDS, I have no idea whether it effected or not on LVDS functionality. I'm too lazy to test. I changed it because I saw in mucha's screenshot of the IORegistry (ATY,EFIDisplay). I noticed that with Kabyl's boot there is no information about PCI card in System Profiler. Is there any more difference? Are the ports working better or something? I use kabyl's boot file because it's easier to change the framebuffer. And the change about const char. Anybody knows what is this about? Thanks for your support Kizwan! Link to comment Share on other sites More sharing options...
wmarsh Posted March 18, 2011 Author Share Posted March 18, 2011 Hi all! CCC reports NullCPUPowerManagement.kext interferes with this hack http://www.insanelymac.com/forum/index.php...t&p=1656810 I am wondering if other kext might also. It would be very helpful to me if some of you who have this working would report what kext if any you have in /Extra/Extensions. Then by process of elimination we can figure out what works and what does not. Link to comment Share on other sites More sharing options...
crazybirdy Posted March 18, 2011 Share Posted March 18, 2011 Thank you crazybirdy, you have been most helpful. I applied your string, and according to ioreg -l (attached) it should be working. Even EDID is correctly there. But I still have black screen. I am thinking I am cursed and this hack works for everyone except me. According to your posts @#145 & #152, I think the patch string should be the same as my post @#175 for port 1 as below. 02 00 00 00 40 00 00 00 09 01 00 00 12 00 01 01 LVDS 10 00 00 00 10 00 00 00 00 01 00 00 00 10 00 02 VGA I wonder about that, if something else cause the black screen, maybe some kexts interfere with LVDS initialization just like CCC's report. What if a clean install and update to 10.6.6, then patch with 4330 only? You can test it if you have time to do it. EDIT What I have in /Extra/Extensions is as below. dsdt.aml AHCIPortInjector.kext AppleACPIPS2Nub.kext AppleACPIThermal.kext ApplePS2Controller.kext FakeSMC.kext IOAHCIBlockStorageInjector.kext IOATAFamily.kext IONetworkingFamily.kext IOUSBFamily.kext SleepEnabler.kext Link to comment Share on other sites More sharing options...
kizwan Posted March 18, 2011 Share Posted March 18, 2011 I noticed that with Kabyl's boot there is no information about PCI card in System Profiler. Is there any more difference? Are the ports working better or something? I use kabyl's boot file because it's easier to change the framebuffer. And the change about const char. Anybody knows what is this about? Thanks for your support Kizwan! Chameleon 2 from trunk inject more items in IORegistry than Kabyl's does. I'm going to test Kabyl's boot file again later. I switched back to official Chameleon 2 when I saw mucha use the same boot file. This is brief history when I'm successfully got output on the internal LCD (before mucha post the guide). I learn about ATY,ControlFlags when I compared the IORegistry with the IORegistry dump when I use 10.7 kexts (only VGA & HDMI working). With this information, I just search in ATIFramebuffer for LVDS connection (02 00 00 00 40 00 00 00) & for HDMI connection (00 08 00 00 04 02 00 00) (at this time I thought HDMI ControlFlags is 0x204 - based on the IORegistry dump with 10.7 kexts). Copied the LVDS & HDMI connections & paste in Peregrine connections table. At first I got black screen on both display but when I unplugged the HDMI cable, internal LCD display blue screen & then desktop appeared. When plugged in the HDMI cable again, internal LCD blank again (external monitor too). Since I got no output with HDMI, I'm testing VGA instead. Based on the IORegistry dump with 10.7 kexts, I found VGA ControlFlags is 0x10. So, I searched for VGA connection in ATIFramebuffer (10 00 00 00 10 00 00 00). Copied & paste it in Peregrine connections table. Peregrine is useful for testing because it only have two connections. You won't make mistake there (I think putting BLANK in the connections table is not good idea because it can cause wrong result - false positive). At first try with LVDS & VGA, I got output at both display. When mucha release the guide, I only make corrections on the Encoder & transmitter to get all three connections working with Shrike. (mucha told me the LVDS & HDMI are conflicting with each other - use the same link. That's why I got blank screen earlier.) I use Shrike because mucha also have HD4xxx graphic card & using Shrike fb. There is an unknown byte:- 02 00 00 00 00 01 00 00 09 01 00 00 12 00 00 07 (LVDS) Try change on both connection (LVDS & HDMI) from 01 to 00. Test it & see whether it make the screens working or not. 02 00 00 00 40 00 00 00 09 00 00 00 12 00 00 07 (LVDS) OR 02 00 00 00 00 01 00 00 09 00 00 00 12 00 00 07 (LVDS) 00 08 00 00 00 02 00 00 00 00 00 00 10 01 02 02 (HDMI) It would be very helpful to me if some of you who have this working would report what kext if any you have in /Extra/Extensions. I have:- AppleACPIPS2Nub.kext ApplePS2Controller.kext fakesmc.kext IDT92HD73C1X5_R2.kext (for audio) IOnetworkingFamily.kext (for LAN) ATI4570.Fix.v2.kext (for injecting graphic card device ID to ATI4600Controller) I use iMac11,1 as machine identification in smbios.plist. Link to comment Share on other sites More sharing options...
wmarsh Posted March 18, 2011 Author Share Posted March 18, 2011 There is an unknown byte:-02 00 00 00 00 01 00 00 09 01 00 00 12 00 00 07 (LVDS) Mucha's guide says thats the Features byte for use internal Doubt if thats the problem c0ke made me feel better with PM-- he has same VBIOS as I do and is just as stuck. Least I'm not the only one. According to your posts @#145 & #152, I think the patch string should be the same as my post @#175 for port 1 as below. 02 00 00 00 40 00 00 00 09 01 00 00 12 00 01 01 LVDS 10 00 00 00 10 00 00 00 00 01 00 00 00 10 00 02 VGA I wonder about that, if something else cause the black screen, maybe some kexts interfere with LVDS initialization just like CCC's reports. What if a clean install and update to 10.6.6, then patch with 4330 only? You can test it if you have time to do it. EDIT What I have in /Extra/Extensions is as below. dsdt.aml AHCIPortInjector.kext AppleACPIPS2Nub.kext AppleACPIThermal.kext ApplePS2Controller.kext FakeSMC.kext IOAHCIBlockStorageInjector.kext IOATAFamily.kext IONetworkingFamily.kext IOUSBFamily.kext SleepEnabler.kext I have Disabler.kext also. Perhaps that is the problem? Is anyone working with Disabler.kext? Link to comment Share on other sites More sharing options...
kizwan Posted March 18, 2011 Share Posted March 18, 2011 Mucha's guide says thats the Features byte for use internalDoubt if thats the problem Quoting from mucha's guide:- 3-Features; /* Features byte 0 , for example for LVDS screen it's almost 0x09 = 0x01 + 0x08 > Internal + Backlight */ #define FEATURE_USE_INTERNAL 0x01 #define FEATURE_USE_RGB_ON_YUV 0x04 #define FEATURE_USE_BACKLIGHT 0x08 #define FEATURE_BACKLIGHT_INVERTED 0x10 #define FEATURE_USE_CLAMSHELL 0x20 /* 1 byte, hardcoded for each connector type 0x0002 : LVDS > Features : 0x09 0x0004 : DVI-? > Features : 0x00 0x0010 : VGA > Features : 0x00 0x0080 : S-Video > Features : 0x04 0x0200 : DVI-? > Features : 0x00 0x0400 : DisplayPort > Features : 0x00 0x0800 : HDMI > Features : 0x00 0x1000 : DVI-? > Features : 0x00 */ /* Features byte 1 , no idea ???*/ Byte 1 is unknown. It doesn't hurt to try. Link to comment Share on other sites More sharing options...
crazybirdy Posted March 18, 2011 Share Posted March 18, 2011 I have Disabler.kext also.Perhaps that is the problem? Is anyone working with Disabler.kext? As I know, the function of Disabler.kext is the same as NullCPUPowerManagement.kext. How about delete Disabler.kext, /S/L/E/AppleIntelCPUPowerManagement.kext and AppleIntelCPUPowerManagementClient.kext, and try again? Link to comment Share on other sites More sharing options...
wmarsh Posted March 18, 2011 Author Share Posted March 18, 2011 As I know, the function of Disabler.kext is the same as NullCPUPowerManagement.kext.How about delete Disabler.kext, /S/L/E/AppleIntelCPUPowerManagement.kext and AppleIntelCPUPowerManagementClient.kext, and try again? Did this, still black screen. I know I am cursed. Link to comment Share on other sites More sharing options...
crazybirdy Posted March 18, 2011 Share Posted March 18, 2011 Did this, still black screen. I know I am cursed. I agree it, after so many tests you have done. Link to comment Share on other sites More sharing options...
wmarsh Posted March 18, 2011 Author Share Posted March 18, 2011 I agree it, after so many tests you have done. Only kext I have left not on your list is PlatformUUID.kext perhaps I will remove it and see what happens. Link to comment Share on other sites More sharing options...
hjs89 Posted March 18, 2011 Share Posted March 18, 2011 There is an unknown byte:-02 00 00 00 00 01 00 00 09 01 00 00 12 00 00 07 (LVDS) Try change on both connection (LVDS & HDMI) from 01 to 00. Test it & see whether it make the screens working or not. 02 00 00 00 40 00 00 00 09 00 00 00 12 00 00 07 (LVDS) OR 02 00 00 00 00 01 00 00 09 00 00 00 12 00 00 07 (LVDS) 00 08 00 00 00 02 00 00 00 00 00 00 10 01 02 02 (HDMI) When I use Lion's FB my ATY,ControlFlags for HDMI port is 0x204 too. Should I try 00 08 00 00 04 02 00 00? One thing that I've noticed about Lion's FB. I don't remember now who, but someone said that in Lion's the personalities are in the ATIxxxxController. I checked with otool and I found Flicker, Gliff and Shrike in ATI4600Controller. However when I tried to use these personalities It didn't work. So maybe when it doesn't detect a personality (for example if I try to load Peregrine and this isn't in the ATI4600Controller) It tries to do one "on the fly" reading the Vbios or wherever? One more thing, is possible to extract the personality strings that I'm using? (more than connector type and controlflags). About the diabler kext, I only have these: (E/E) FakeSMC (E/E) NullCPUPowerManagement (I tried removing this but the same happened and the system was more unstable) (E/E) OrangeIconFix (S/L/E) VoodooHDA (S/L/E) VodooPS2Controller My SMProductName in smbios.plist is MacBookPro3,1 Link to comment Share on other sites More sharing options...
kizwan Posted March 18, 2011 Share Posted March 18, 2011 When I use Lion's FB my ATY,ControlFlags for HDMI port is 0x204 too. Should I try 00 08 00 00 04 02 00 00? You can try but I doubt it will work. I don't remember now who, but someone said that in Lion's the personalities are in the ATIxxxxController. I checked with otool and I found Flicker, Gliff and Shrike in ATI4600Controller. However when I tried to use these personalities It didn't work. bcc9 did mentioned about this. So maybe when it doesn't detect a personality (for example if I try to load Peregrine and this isn't in the ATI4600Controller) It tries to do one "on the fly" reading the Vbios or wherever? (Assuming you're referring to 10.6.6 kexts) Don't think so. It still refer to Peregrine connections table, if you set framebuffer to Peregrine. One more thing, is possible to extract the personality strings that I'm using? (more than connector type and controlflags). Sorry, I don't understand. What do you mean? About the diabler kext, I only have these: (E/E) FakeSMC (E/E) NullCPUPowerManagement (I tried removing this but the same happened and the system was more unstable) (E/E) OrangeIconFix (S/L/E) VoodooHDA (S/L/E) VodooPS2Controller My SMProductName in smbios.plist is MacBookPro3,1 Need to patch your DSDT so that you can remove NullCPUPowerManagement for good. Can you give me the IORegistry dump when internal LCD have signal? If I'm not mistaken it was Peregrine right? Also make sure the external monitor is connected to HDMI port when you dump the IORegistry. Please dump IORegistry using IORegistryExplorer app. I want to compare yours with mine. Thanks. Link to comment Share on other sites More sharing options...
wmarsh Posted March 18, 2011 Author Share Posted March 18, 2011 BTW, I'm not using Kabyl's boot file anymore since I saw a System Profiler's screenshots at mucha's thread. I compiled Chameleon 2 from official trunk with these changes in ati.c file:-Original: const char *ati_efidisplay_0[] = { "@0,ATY,EFIDisplay", "TMDSB" }; Mod: const char *ati_efidisplay_0[] = { "@0,ATY,EFIDisplay", "LVDS" }; and Original: { 0x10029553, "Peregrine"} , Mod: { 0x10029553, "Shrike"} , For the changes from TMDSB to LVDS, I have no idea whether it effected or not on LVDS functionality. I'm too lazy to test. tongue.gif I changed it because I saw in mucha's screenshot of the IORegistry (ATY,EFIDisplay). Kizwan, could you enlighten me any reasons for this? Am am also using recompiled trunk, but without this (TMDSB to LVDS) change, and am wondering if it might be why my LVDS does not initialize. Is this cosmetic or does it have some functionality? Link to comment Share on other sites More sharing options...
hjs89 Posted March 18, 2011 Share Posted March 18, 2011 So maybe when it doesn't detect a personality (for example if I try to load Peregrine and this isn't in the ATI4600Controller) It tries to do one "on the fly" reading the Vbios or wherever? (Assuming you're referring to 10.6.6 kexts) Don't think so. It still refer to Peregrine connections table, if you set framebuffer to Peregrine. I was talking about 10.7 Framebuffer One more thing, is possible to extract the personality strings that I'm using? (more than connector type and controlflags).Sorry, I don't understand. What do you mean? If is possible extract all the string in Ioreg, for example. If it is possible I would extract the strings under Lions FB and know more about it. My LVDS displays was working but with wrong colors, maybe it was running a wrong encoder. Need to patch your DSDT so that you can remove NullCPUPowerManagement for good. Can you give me the IORegistry dump when internal LCD have signal? If I'm not mistaken it was Peregrine right? Also make sure the external monitor is connected to HDMI port when you dump the IORegistry. Please dump IORegistry using IORegistryExplorer app. I want to compare yours with mine. Thanks. I'm a totally noob about DSDT, I think that I can improve it a lot. I'm interested on SpeedStep and NullCPU fixes. I found one about speedstep but was to "hard stuff" to start. Do you know any good guide to start modding the DSDT? I've attached my current IORegistry dump. Now I'm using trunk's boot file with Peregrine. Peregrine Personality strings are these: 02 00 00 00 40 00 00 00 09 01 00 00 12 00 00 07 00 08 00 00 00 02 00 00 00 01 00 00 10 01 01 02 @Wmarsh, if you upload your ioreg dump from terminal please do "ioreg -w0". If you don't type de -w0 you can't see all de values, because only displays the weight of your terminal window. ioreg_hjs89.zip Link to comment Share on other sites More sharing options...
wmarsh Posted March 19, 2011 Author Share Posted March 19, 2011 @Wmarsh, if you upload your ioreg dump from terminal please do "ioreg -w0". If you don't type de -w0 you can't see all de values, because only displays the weight of your terminal window. Gladly. This is ioreg -l -w0 so it should contain everything. I am completely at a loss what to try next. My read of this -- admittedly not as big an expert as some -- is that everything is connected properly and I should be another success. I did try an experiment. I tried booting with an old monitor on VGA after using FN-F1 to switch the screens (so BIOS and Chameleon are on external monitor.) When I do that, I do after booting get display on the external (not on LVDS), but it has the green apple in upper left. This I had seen before. But the new thing I noticed is the display resolution was the native display resolution of my internal LVDS screen, not the native resolution of the monitor. Made me wonder if this initialization problem was from some confusion as to which display belongs to which port. I do not see any such in this ioreg. Perhaps others know more. Link to comment Share on other sites More sharing options...
crazybirdy Posted March 19, 2011 Share Posted March 19, 2011 Gladly. This is ioreg -l -w0 so it should contain everything. o display0 <class IODisplayConnect, id 0x100000329, registered, matched, active, busy 0 (3 ms), retain 5> +-o AppleDisplay <class AppleDisplay, id 0x10000032b, registered, matched, active, busy 0 (1 ms), retain 6> { "DisplayProductID" = 524 "IODisplayEDID" = <00ffffffffffff0030e40c020000000000130103902313780a1be59e595098260e5 054000000010101010101010101010101010101012f2640a060841a303020350059c21000001b2f2640a 060841a303020350059c21000001b000000fe004d54364b47803135365744310a0000000000000000000 000000002010a202000bc> "IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/AGP@1/IOPCI2PCIBridge/ VID@0/ATY,Peregrine@0/ATY_Peregrine/display0/AppleDisplay-30e4-20c" "DisplayVendorID" = 12516 So, you got QE/CI with Peregrine already, just not on the right output. I think you may double check if the EDID is the same as EDIDViewer or not, and eidt the file /System/Library/Displays/Overrides/DisplayVendorID-30e4/DisplayProductID-20c. EDIDViewer http://www.eldim.fr/products/display-contr...lite-free-tools Make sure the DisplayVendorID and DisplayProductID is following the rule. Link to comment Share on other sites More sharing options...
kizwan Posted March 19, 2011 Share Posted March 19, 2011 Kizwan, could you enlighten me any reasons for this? Am am also using recompiled trunk, but without this (TMDSB to LVDS) change, and am wondering if it might be why my LVDS does not initialize. Is this cosmetic or does it have some functionality? I don't know what it is for too. I just changed it when I saw it in one of the mucha's screenshot. It's probably nothing. At that time, I'm thinking before following mucha's guide, better got my setup matched with mucha's. I never tested the TMDSB since I got mine working. So, I don't know for sure. I probably going to try it later. Link to comment Share on other sites More sharing options...
kizwan Posted March 19, 2011 Share Posted March 19, 2011 If is possible extract all the string in Ioreg, for example. If it is possible I would extract the strings under Lions FB and know more about it. My LVDS displays was working but with wrong colors, maybe it was running a wrong encoder. I don't think it is possible to get all of 'em from IORegistry although I didn't look to it further. Yeah, I got the same thing on mine when with 10.7 kexts. The only different between yours & mine (before mucha's guide available) are I didn't get output on HDMI with 10.6.6 kexts. At that time, I only concentrate on getting HDMI working because I think LVDS is hard to get it working. I only tried LVDS after I found about ATY,ControlFlags. I'm a totally noob about DSDT, I think that I can improve it a lot. I'm interested on SpeedStep and NullCPU fixes. I found one about speedstep but was to "hard stuff" to start. Do you know any good guide to start modding the DSDT? I didn't know any complete or perfect guides for DSDT mods. Everything I know about DSDT are based on lot of practice & trial. There are a lot of (useful) posts regarding DSDT mods in this forum but they're scattered & usually only focusing on fixing specific things. For you, I recommend start with fassl's DSDTPatcher. It can fix your DSDT with basic fix/patch. With this patcher, it can fixed CPU aliases which is the reason why you need NullCPUPowerManagement. So, you can remove NullCPUPowerManagement after you applied basic patch using DSDTPatcher. I've attached my current IORegistry dump. Now I'm using trunk's boot file with Peregrine. Peregrine Personality strings are these: 02 00 00 00 40 00 00 00 09 01 00 00 12 00 00 07 00 08 00 00 00 02 00 00 00 01 00 00 10 01 01 02 Thanks. I'll look into this later. Link to comment Share on other sites More sharing options...
jvilla Posted March 19, 2011 Share Posted March 19, 2011 can i do this without dumping my video rom? i have a dell sxps 1645 with ati mobility 4670 that has the rom integrated into the bios.. i was wondering if this is still possible.... Link to comment Share on other sites More sharing options...
kizwan Posted March 19, 2011 Share Posted March 19, 2011 can i do this without dumping my video rom? i have a dell sxps 1645 with ati mobility 4670 that has the rom integrated into the bios.. i was wondering if this is still possible.... Fortunately I have been working on XPS 1645's BIOS (A12) before (not related to OS X). So I have the decompressed BIOS with me. This is VBIOS for your HD4670 graphic card. VBIOS version: 011.022.009.003.036993 OPROM00_XPS1645_A12_HD4670.zip Link to comment Share on other sites More sharing options...
wmarsh Posted March 19, 2011 Author Share Posted March 19, 2011 Well you are one sharp eyed crazybirdy! This EDID is correct -- I had inserted it in the default of /System/Library/Displays/Overrides/DisplayVendorID-756e6b6e/DisplayProductID-517 I missed that these IDs did not match. So I made sure the VendorID and DeviceID were correct and moved it to the right spot. Unfortunately I still have black screen on reboot. This likely fixed the odd display resolution when I boot on external monitor, but I have not tested that. I am wondering, given that NullCPUPowerManagement.kext blocked screen initialization for CCC, do we need some function in AppleIntelCPUPowerManagement.kext to wake the LVDS screen? In other words, has everyone who has this working already put the speedster fix in their DSDT so they can leave these kext functional? To date, I have not bothered to do this, mostly because OS X without QE/CI is of limited utility and I have been too lazy. Link to comment Share on other sites More sharing options...
kizwan Posted March 19, 2011 Share Posted March 19, 2011 I just tested with Kabyl boot file. Set the default framebuffer to Shrike for my card in ati.c. I found something interesting. When boot with Kabyl's boot file, the external monitor which connected to HDMI port blank. I did restart to make sure it is not rare symptom but the external monitor still blank. I got output on the external monitor after I change the resolution to lower & to higher again. Just tested by rebooting & cold-booting my notebook, the external monitor doesn't blank anymore. Link to comment Share on other sites More sharing options...
Recommended Posts