bcc9 Posted July 16, 2011 Share Posted July 16, 2011 The only string one needs to inject to get the PCI match to occur without editing the driver's Info.plist is the device-id, in my experience. I haven't seen any info about any benefit for injecting those other strings in your example. "model" is set correctly by the driver automatically. Your subsystem-id, subsystem-vendor-id key values don't match the genuine mac hardware. AAPL,slot-name is not set on genuine mac hardware. Lastly I notice you're using a different value for the device-id; I wonder if you've found a benefit to setting it to 0x0102? Link to comment Share on other sites More sharing options...
bcc9 Posted July 17, 2011 Share Posted July 17, 2011 Lastly I notice you're using a different value for the device-id; I wonder if you've found a benefit to setting it to 0x0102?Answering for myself... I took a look at the PCI ids in intel's HD graphics linux driver:#define PCI_CHIP_SANDYBRIDGE_BRIDGE 0x0100 /* Desktop */ #define PCI_CHIP_SANDYBRIDGE_GT1 0x0102 #define PCI_CHIP_SANDYBRIDGE_GT2 0x0112 #define PCI_CHIP_SANDYBRIDGE_GT2_PLUS 0x0122 #define PCI_CHIP_SANDYBRIDGE_BRIDGE_M 0x0104 /* Mobile */ #define PCI_CHIP_SANDYBRIDGE_M_GT1 0x0106 #define PCI_CHIP_SANDYBRIDGE_M_GT2 0x0116 #define PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS 0x0126 #define PCI_CHIP_SANDYBRIDGE_BRIDGE_S 0x0108 /* Server */ #define PCI_CHIP_SANDYBRIDGE_S_GT 0x010A So yes, mapping to 0x0102 looks more sensible than what I had. Apple's info.plist is setting some featurecontrol variables differently for the desktop PCI id. I haven't noticed any functional difference (the watchdog timer issue remains, for example). Link to comment Share on other sites More sharing options...
dougaa Posted July 17, 2011 Share Posted July 17, 2011 I'm using device ID injection in the DSDT, and trying to get a DVI connection working. I'm having a problem that the driver doesn't consistently load. Sometimes it loads, and I see the behavior bcc9 has described, where it is very slow unless I hotplug the display. But other times, when I haven't made any changes, instead the framebuffer doesn't load. Anyone else seen that? Any suggestions? Link to comment Share on other sites More sharing options...
bcc9 Posted July 17, 2011 Share Posted July 17, 2011 I'm using device ID injection in the DSDT, and trying to get a DVI connection working. I'm having a problem that the driver doesn't consistently load. Sometimes it loads, and I see the behavior bcc9 has described, where it is very slow unless I hotplug the display. But other times, when I haven't made any changes, instead the framebuffer doesn't load. Anyone else seen that? Any suggestions? Doesn't make sense. You could turn on iokit logging to log the kext matching (iolog=0x...) if the matching is truly failing, as opposed to the driver loading but not working as expected. Sounds like you're still back on 10.6? Link to comment Share on other sites More sharing options...
dougaa Posted July 17, 2011 Share Posted July 17, 2011 Doesn't make sense. You could turn on iokit logging to log the kext matching (iolog=0x...) if the matching is truly failing, as opposed to the driver loading but not working as expected. Sounds like you're still back on 10.6? This is with the Lion GM seed (which I have because I am a developer.) I decided to not even attempt Snow Leopard until after Lion is working. I am using a KVM switch, and my display is too old to support HDCP, which generates a DRM warning message when the driver does load. But I agree it makes no sense that it's not consistent. I suspect the matching always works, but it reminds me of something you wrote about the framebuffer not loading if you connect VGA. While there's really no pattern to when it works, it does fail much more often than it works. How do I turn on iokit logging? Link to comment Share on other sites More sharing options...
bcc9 Posted July 17, 2011 Share Posted July 17, 2011 This is with the Lion GM seed (which I have because I am a developer.) I decided to not even attempt Snow Leopard until after Lion is working. I am using a KVM switch, and my display is too old to support HDCP, which generates a DRM warning message when the driver does load. But I agree it makes no sense that it's not consistent. I suspect the matching always works, but it reminds me of something you wrote about the framebuffer not loading if you connect VGA. While there's really no pattern to when it works, it does fail much more often than it works. How do I turn on iokit logging? I remembered the boot argument wrong it's io not iolog. Since you say you're a developer: You set io=0x... in your kernel boot arguments, where the bit settings are defined in IOKit/IOKitDebug.h For example io=0x10 to log the kext matching, 0x4 to log the kext start This is mentioned in the "debugging boot drivers" section of the I/O kit device driver design guidelines document. I suspect this isn't actually your problem and that your driver is in fact loading in all cases it's just failing after start for you some of the time. But you said it wasn't loading, so there you go... Link to comment Share on other sites More sharing options...
dougaa Posted July 18, 2011 Share Posted July 18, 2011 I remembered the boot argument wrong it's io not iolog. Since you say you're a developer:You set io=0x... in your kernel boot arguments, where the bit settings are defined in IOKit/IOKitDebug.h For example io=0x10 to log the kext matching, 0x4 to log the kext start This is mentioned in the "debugging boot drivers" section of the I/O kit device driver design guidelines document. I suspect this isn't actually your problem and that your driver is in fact loading in all cases it's just failing after start for you some of the time. But you said it wasn't loading, so there you go... Thanks for the info. When it doesn't work, I get the kernel message "SNB Framebuffer did not show up, unload". Also, the system report shows no kext loaded for the display. So either the kext never loads, or does load then gets unloaded. I'll see if the io logging provides any clues. When it does work, I've gotten it to work perfectly by following your directions for editing the connector table in the kext. I'll be posting that in the connector thread. I tried putting an Nvidia graphics card, 8600 GS, in my computer, but with no display connected to it. Without the Nvidia card present, the HD 3000 graphics usually fails, and with the Nvidia card present, the HD 3000 graphics usually works. So that's another clue. Of course that's hardly a solution, since if I wanted to use a graphics card I wouldn't be working on the HD 3000 graphics in the first place. One possibility is a bug in Chameleon, since I'm using a current trunk build, and Chameleon is frequently being updated now, and I'll be checking into that. Link to comment Share on other sites More sharing options...
131 Posted July 18, 2011 Share Posted July 18, 2011 Thank you every one here. I3 2105 +GA-H67MA-UD2H-B3 with VGA+DVI+DP+HDMI, ALC889 sound code. BIOS version is F5. Soyo 22" monitor with VGA+DVI input. I had install Mac OS Lion GM, the way i get the QE/CI is that before boot the lion. i plug the VGA+DVI together and boot with -v, after dsmos has arrived, take off the VGA cable, and the screen will be show in the monitor, then till reboot, the system is perfect, the speed is fast.If only plug the DVI cable, when the screen is shown, the speed is very slow, extractly slow....... i will upload my dsdt, now i just chage the IGD0 to IGPU, if i add the 0x0112 ID to the dsdt, the boot will simple? Another question is i don't know how to add the device id to dsdt like this: how to get the value of the red font?-------------------------------------------------------------------------------------------------------------------------- Device (IGPU) { Name (_ADR, 0x00020000) Method (_DSM, 4, NotSerialized) { Store (Package (0x0A) { "AAPL,slot-name", Buffer (0x09) { "built-in" }, "subsystem-id", Buffer (0x04) { 0x00, 0x00, 0x00, 0x00 }, "subsystem-vendor-id", Buffer (0x04) { 0x6B, 0x10, 0x00, 0x00 }, "device-id", Buffer (0x04) { 0x02, 0x01, 0x00, 0x00 }, "model", Buffer (0x17) { "Intel HD Graphics 3000" } }, Local0) MCDP (Arg2, RefOf (Local0)) Return (Local0) } //...other stuff } Link to comment Share on other sites More sharing options...
bcc9 Posted July 18, 2011 Share Posted July 18, 2011 So yes, mapping to 0x0102 looks more sensible than what I had.I take it back, there seems to be more to this... With my pci device id forced to 0x0102, I get a low opengl cinebench score (9.3). With my previous forced value, 0x0126, I get a better score (14.0)... Anyone know why this would be? If only plug the DVI cable, when the screen is shown, the speed is very slow, extractly slow.......That is exactly the driver hang problem addressed by my thread:http://www.insanelymac.com/forum/index.php?showtopic=259705 Link to comment Share on other sites More sharing options...
bcc9 Posted July 22, 2011 Share Posted July 22, 2011 I take it back, there seems to be more to this... With my pci device id forced to 0x0102, I get a low opengl cinebench score (9.3). With my previous forced value, 0x0126, I get a better score (14.0)... Anyone know why this would be? I narrowed this down to the PowerStates key in AppleIntelSNBGraphicFB.kext's Info.plist. 0x0126 and 0x0102 match on slightly different FeatureControl lists, where the 0x0126 list has PowerStates=1 and the 0x0102 version has PowerStates=0. If the 0x0102 Powerstate is changed to match the 0x0126 setting, I get the higher cinebench score. Looks to me like the 0x0126 setting is for higher performance hd 3000 cpu configs, and so one should be using that for the core i7 even though the 0x0126 is a mobile PCI id. Link to comment Share on other sites More sharing options...
iLeopod Posted July 22, 2011 Share Posted July 22, 2011 It seems that the 102 device id belongs to HD 2000. But Apple wants to tell us (at least in IOREG of iMac 12,2 i5) that its an HD 3000. (i5 2500s and i5 2400 have official HD 2000) Link to comment Share on other sites More sharing options...
dougaa Posted July 23, 2011 Share Posted July 23, 2011 Thanks for the info. When it doesn't work, I get the kernel message "SNB Framebuffer did not show up, unload". Also, the system report shows no kext loaded for the display. So either the kext never loads, or does load then gets unloaded. I'll see if the io logging provides any clues. When it does work, I've gotten it to work perfectly by following your directions for editing the connector table in the kext. I'll be posting that in the connector thread. I tried putting an Nvidia graphics card, 8600 GS, in my computer, but with no display connected to it. Without the Nvidia card present, the HD 3000 graphics usually fails, and with the Nvidia card present, the HD 3000 graphics usually works. So that's another clue. Of course that's hardly a solution, since if I wanted to use a graphics card I wouldn't be working on the HD 3000 graphics in the first place. One possibility is a bug in Chameleon, since I'm using a current trunk build, and Chameleon is frequently being updated now, and I'll be checking into that. I eventually figured this out, and it is due to a bug in Chameleon. I described the cause in the Chameleon issue at http://forge.voodooprojects.org/p/chameleon/issues/123/. The problem occurs for versions of Chameleon after r1107. In the issue, I describe how you can fix it for more recent versions. It seems that the 102 device id belongs to HD 2000. But Apple wants to tell us (at least in IOREG of iMac 12,2 i5) that its an HD 3000.(i5 2500s and i5 2400 have official HD 2000) That's generally true, but the 2405S and 2500K have HD 3000. You can see that in the processors in bold at http://en.wikipedia.org/wiki/Sandy_Bridge#Desktop_processors Link to comment Share on other sites More sharing options...
dougaa Posted July 24, 2011 Share Posted July 24, 2011 Now that I have HD 3000 graphics working with Lion, I tried to get it to work with Snow Leopard (10.6.8.) I used the same device id injection in the DSDT. For my GA-H67A-UD3H-B3 motherboard, the display is at PciRoot(0x1)/Pci(0x2,0x0), and I used a device-properties string for that which sets AAPL,os-info as for MacBookPro8,1: <key>device-properties</key> <string>600000000100000001000000540000000100000002010c00d041030a01000000010106000 0027fff04001e0000004100410050004c002c006f0073002d0069006e0066006f0000001800000030490111 111108000001f01f0100000010070000</string> Note: the data between <string> and </string> is one line with no spaces in the plist file. Just doing those things, the DVI connector works with no problems, provided that I also have a connection to the VGA port. Snow Leopard doesn't output anything to the VGA port, but the BIOS boot messages only go to VGA. I can live with that, but it's awkward. I assume a fix would require modifying the connector data in os-info, and I haven't been able to find any information about that. It would be great if someone did have a solution. Edit: I tried using AppleIntelSNBGraphicFB.kext from Lion in Snow Leopard, but it won't load because it needs symbols defined in the Lion kernel. Link to comment Share on other sites More sharing options...
fmac Posted July 24, 2011 Share Posted July 24, 2011 Now that I have HD 3000 graphics working with Lion, I tried to get it to work with Snow Leopard (10.6.8.) I used the same device id injection in the DSDT. For my GA-H67A-UD3H-B3 motherboard, the display is at PciRoot(0x1)/Pci(0x2,0x0), and I used a device-properties string for that which sets AAPL,os-info as for MacBookPro8,1: <key>device-properties</key> <string>600000000100000001000000540000000100000002010c00d041030a01000000010106000 0027fff04001e0000004100410050004c002c006f0073002d0069006e0066006f0000001800000030490111 111108000001f01f0100000010070000</string> Note: the data between <string> and </string> is one line with no spaces in the plist file. Just doing those things, the DVI connector works with no problems, provided that I also have a connection to the VGA port. Snow Leopard doesn't output anything to the VGA port, but the BIOS boot messages only go to VGA. I can live with that, but it's awkward. I assume a fix would require modifying the connector data in os-info, and I haven't been able to find any information about that. It would be great if someone did have a solution. look here = http://www.insanelymac.com/forum/index.php?showtopic=259705 Link to comment Share on other sites More sharing options...
dougaa Posted July 24, 2011 Share Posted July 24, 2011 look here = http://www.insanelymac.com/forum/index.php?showtopic=259705 Thanks, but that thread is for Lion, and I'm looking for a solution for Snow Leopard. The directions there work well for me for Lion. Link to comment Share on other sites More sharing options...
bcc9 Posted July 24, 2011 Share Posted July 24, 2011 I eventually figured this out, and it is due to a bug in Chameleon. I described the cause in the Chameleon issue at http://forge.voodooprojects.org/p/chameleon/issues/123/. The problem occurs for versions of Chameleon after r1107. In the issue, I describe how you can fix it for more recent versions.Great job finding that regression. I wish the chameleon team would keep track of the latest stable version. I guess everyone should stay at <= 1107. Not aware of any important changes since then anyways, are you?That's generally true, but the 2405S and 2500K have HD 3000. You can see that in the processors in bold at http://en.wikipedia.org/wiki/Sandy_Bridge#Desktop_processors Hopefully apple will add more sandy bridge products and clean up their PCI match list in the process... Link to comment Share on other sites More sharing options...
dougaa Posted July 25, 2011 Share Posted July 25, 2011 Great job finding that regression. I wish the chameleon team would keep track of the latest stable version. I guess everyone should stay at <= 1107. Not aware of any important changes since then anyways, are you?Hopefully apple will add more sandy bridge products and clean up their PCI match list in the process... The Chameleon developers just fixed this in the trunk in r1221. So either <= 1107 or >= 1221. I know many changes are being made, not sure if any are very important. I wouldn't be surprised if they're trying to finish a stable release that works with Lion and also with Sandy Bridge. Link to comment Share on other sites More sharing options...
bcc9 Posted July 25, 2011 Share Posted July 25, 2011 The Chameleon developers just fixed this in the trunk in r1221. So either <= 1107 or >= 1221. I know many changes are being made, not sure if any are very important. I wouldn't be surprised if they're trying to finish a stable release that works with Lion and also with Sandy Bridge.The diffs I put together for the chameleon mainline for sandy bridge were commited 2 months ago, and the lion support was in even before that, so seems like a new stable rc is overdue... Oops getting off topic. Link to comment Share on other sites More sharing options...
ltoozdotcom Posted August 30, 2011 Share Posted August 30, 2011 I just want to thank Kyle_c and Lenovo3000, I got my Lenovo G770 10372LU run native resolution 1600x900 with full QE/CI/CL PAINLESSLY. Using Quicktime screen recorder to record Using [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] 3.8 with these only selections add device-properties from Lenovo3000 in com.apple.Boot.plist Just follow Kyle_C instruction and it works perfectly. Thanks again guys, I'm tired of trying the Gateway NV55C with HD5700- Wasted so much time. I used the HDMI output and it automatically show the TV has dual monitor. I can drag the movie across the main screen to the TV. I can't switch the main screen to the TV. Louis Link to comment Share on other sites More sharing options...
BloodyVlad Posted September 25, 2011 Share Posted September 25, 2011 Thanks people! I've got my HD3000 0116 working in 10.6.8 with full resolution (1366x768) and fast speed! But! I have enormous artifacts, garbled icons and Youtube Flash Player hangs in Chrome. Safari fails to start. Even finder windows sometimes restart itself. I have much less artifacts and defects if I start with maxmem=2048, then when using all 4Gb of RAM. Now I have Lenovo3000's device string in Boot.plist, MBP8,1 smbios, and changed my GFX0 to IGD0 in DSDT, but I dont thinks it was really needed. And I have only 2 video kexts loaded - AppleIntelHDGraphics и AppleIntelSNBGraphicsFB. Please help to beat the last problems! Link to comment Share on other sites More sharing options...
LowRidinCrew Posted September 26, 2011 Share Posted September 26, 2011 How can I change my damn 5700 to 3000 ID might as well do that since no one is helping with 5700 Link to comment Share on other sites More sharing options...
ltoozdotcom Posted October 3, 2011 Share Posted October 3, 2011 Is anyone else here trying to get the build-in graphics of an i5/i7 Sandy Bridge CPU working (2xxx, H67 chipset)? Doesn't look like there is solution yet so I would like to compile what doesn't work. Not working: - latest MacPro kext's Not yet tried: - latest 10.6.7 combo update - Lion kext Has anyone the these yet or can think about what might be worth a try? For those who has Sandy Bridge Laptop and has artifacts, screen tearing and white lines after monitor sleep wakes, I fixed it by editing DSDT. DSDTfix youtube video PS: Lenovo3000, this may fix your black screen problem if you haven't fixed it yet. Link to comment Share on other sites More sharing options...
toleda Posted October 5, 2011 Share Posted October 5, 2011 For those who has Sandy Bridge Laptop and has artifacts, screen tearing and white lines after monitor sleep wakes, I fixed it by editing DSDT. DSDTfix youtube video PS: Lenovo3000, this may fix your black screen problem if you haven't fixed it yet. Please post your dsdt edit code. Thanks. Link to comment Share on other sites More sharing options...
ltoozdotcom Posted October 5, 2011 Share Posted October 5, 2011 Please post your dsdt edit code. Thanks. Here you go, This one will show backlight slider + fixed the artifacts and tearing on the screen. I don't believe this one will work with HD3000 + Another graphic card. ONLY HD3000 stand alone laptop. 0x0116 Put this one in /Extra folder and chameleon will load it for you. dsdt.zip Good luck, Louis Link to comment Share on other sites More sharing options...
Tiago Aroeira Marliere Posted October 9, 2011 Share Posted October 9, 2011 Thanks people! I've got my HD3000 0116 working in 10.6.8 with full resolution (1366x768) and fast speed! But! I have enormous artifacts, garbled icons and Youtube Flash Player hangs in Chrome. Safari fails to start. Even finder windows sometimes restart itself. I have much less artifacts and defects if I start with maxmem=2048, then when using all 4Gb of RAM. Now I have Lenovo3000's device string in Boot.plist, MBP8,1 smbios, and changed my GFX0 to IGD0 in DSDT, but I dont thinks it was really needed. And I have only 2 video kexts loaded - AppleIntelHDGraphics и AppleIntelSNBGraphicsFB. Please help to beat the last problems! Hello BloodyVlad, I have a notebook with 1.6.8 w HD3000 0116 without QE/CI. I had to delete de SNBGraphicsFB.kext to make system boot. If i use this kext, my system stuck on a gray screen. Can u send me your AppleIntelSNBGraphicsFB.kext? My system is: Snow Leopard 10.6.8 retail i7 2630QM - HD Graphics 3000 (0116) 4gb RAM Realtek RTL8139/810X wired Ethernet (working with AppleRTL8169Ethernet.kext) Poor Realtek RTL8191se Wlan changed by Atheros 5008x Wlan (working Oob) Realtek alc662 sound (Noisy and garbled Sound VoodooHDA) If i make QE/CI works, i`ll fix the sound and my notebook is OPERATIONAL TO USE! Thanks for your help! Link to comment Share on other sites More sharing options...
Recommended Posts