Jump to content

[GUIDE] OS X Lion on ThinkPad W520

- - - - -

  • Please log in to reply
86 replies to this topic

#41
acediac

acediac

    InsanelyMac Protégé

  • Members
  • Pip
  • 11 posts
Alright folks, I’ve fixed up most of my issues and now I have a machine that’s worthy of being a great hackintosh.

In the interest of giving back to the community and helping my fellow W520 owners, I will detail a few things I’ve done.

My machine is a 4270-CTO with the nVidia Quadro 2000M and 2760QM i7.

Gothic860 has done a lot of the groundwork, so I’ll just list my deviations.

1)Used latest iAtkos L2 installer, when installing, click on customize at the beginning and add drivers like ApplePS2Controller to have working keyboard and trackpad after the initial install (no need for external usb keyboard)

2) Was getting KP 40% of the time when booting into Lion. I’m now quite sure this is due to soundcard initialization at boot. I have not seen any random KPs at boot since I inserted the following into the HDEF device section (after _PRW is fine). I think the important bit is the pin configurations.

				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x12)
						{
							"codec-id",
							Buffer (0x04)
							{
								0x6E, 0x50, 0xF1, 0x14
				   		 },
							"layout-id", // This may be wrong, need more research
							Buffer (0x04)
							{
								0x6E, 0x50, 0x00, 0x00
							},
							"built-in",
	 					   Buffer (One)
							{
								0x00
							},
							"subsystem-id",
							Buffer (0x04)
							{
								0x11, 0xC0, 0x00, 0x00
							},
							"subsystem-vendor-id",
							Buffer (0x04)
							{
								0xAA, 0x17, 0x00, 0x00
							},
							"model",
							Buffer (0x11)
							{
								"Conexant Cx20590"
							},
							"device-type",
							Buffer (0x12)
							{
								"Conexant HD Audio"
							},
							"hda-gfx",
							Buffer (0x0A)
		 				   {
								"onboard-2"
							},
							"PinConfigurations",
							Buffer (0x28)
							{

//Modified again based on linux codec dump

								/* 0000 */	0x40, 0x10, 0x21, 0x00, 0x50, 0x90, 0xA1, 0x61,
								/* 0008 */	0x60, 0x10, 0xa1, 0x00, 0x10, 0x40, 0x21, 0x61,
								/* 0010 */	0xf0, 0x00, 0xf0, 0x40, 0x20, 0x00, 0xf0, 0x40,
								/* 0018 */	0x30, 0x00, 0x17, 0x90, 0x80, 0x00, 0xf0, 0x40,
								/* 0020 */	0x90, 0x00, 0xf0, 0x40, 0x70, 0x00, 0xa6, 0x90,

							}
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}

3) I am using VoodooHDA 2.7.3 and was only getting HDMI devices in the prefpanes. After adding the HDEF section above and setting Vectorize to true and VoodooHDAEnableVolumeChangeFix to true in the VoodooHDA Info.plist, I had the correct 4 devices (Speaker, Headphones, Mic on jack, Mic on laptop)

4) Using a MacbookPro8,2 smbios generated by Chameleon Wizard, as it’s probably a closer match to the W520 specs. (Add power settings to the correct section of AppleGraphicsPowerManagement.kext).

5) The Fan speed reading and battery information problems are a result of a change in Lion’s new AppleACPIPlatform.kext (version 1.4) where they adhere more strictly to byte access of the Embedded Controller fields. I think the reason why some people don’t have a problem with this is purely because they are using an older SnowLeo version of the kext (version 1.3.5). I have modified my DSDT to use byte access so I am able to get correct battery and fan readings in iStats using AppleSmartBatteryManager.kext with the new AppleACPIPlatform.kext. However, I had to revert to the old ACPI kext because of another problem (detailed below).

6) Also upgraded the fan ramp up because it was getting hotter than I preferred. Heat is the enemy of lifespan of components, and I would rather tolerate a bit of noise (not that it’s too bad anyway). According to the documentation, “disengaged mode” may not be good for fan longevity, so the only time I use it is when things are in panic meltdown. I also took advantage of all levels of fan control to have finer temperature gradation. Replace the TCPU method given by Gothic860.

						Method (TCPU, 0, NotSerialized)
						{
							Store (\_SB.PCI0.LPC.EC.TMP0, Local0)
							If (LLessEqual (Local0, 0x31)) // CPU temp is <50C =
			 			   {
							   Store (0x01, \_SB.PCI0.LPC.EC.HFSP) // Set FAN to lowest
							}
							ElseIf (LGreaterEqual (Local0, 0x55)) // CPU temp is >= 85C
							{
   							Store (0x40, \_SB.PCI0.LPC.EC.HFSP) // Set Fan Mode Disengaged - Total Maximum
							}
							ElseIf (LGreaterEqual (Local0, 0x4B)) // CPU temp is >= 75C
							{
							   Store (0x07, \_SB.PCI0.LPC.EC.HFSP) // Set Fan Mode 7 - Maximum Speed
							}
							ElseIf (LGreaterEqual (Local0, 0x46)) // CPU temp is >= 70C
							{
	   						Store (0x06, \_SB.PCI0.LPC.EC.HFSP) // Set Fan Mode 6
							}
							ElseIf (LGreaterEqual (Local0, 0x41)) // CPU temp is >= 65C
							{
							   Store (0x05, \_SB.PCI0.LPC.EC.HFSP) // Set Fan Mode 5 Medium speed
							}
							ElseIf (LGreaterEqual (Local0, 0x3C)) // CPU temp is >= 60C
							{
							   Store (0x04, \_SB.PCI0.LPC.EC.HFSP) // set mode 4 FAN
							}
							ElseIf (LGreaterEqual (Local0, 0x37)) // CPU temp is >= 55 C
							{
							   Store (0x03, \_SB.PCI0.LPC.EC.HFSP) // set mode 3 FAN
							}
							Else // between 50 and 54C
							{
							Store (0x02, \_SB.PCI0.LPC.EC.HFSP) // set mode 2 FAN Low speed
							}
							Return (Local0)
					   }

Also changed Thinkvantage button to only set fan to 7, not disengaged (replace Gothic860’s version):

			 Method (_Q19, 0, NotSerialized)
			 {
					 // Changed Thinkpad key to toggle max fan
					 Name (FANS, One)
					 Store (HFSP, FANS)
					 XOr (FANS, 0x07, Local0)
					 If (Local0)
					 {
							 LED (0xFF, 0x80)
							 Store (0x07, HFSP)
					 }
					 Else
					 {
							 LED (0xFF, 0x80)
							 Store (0x80, HFSP)
					 }
			 }

7) Bought a Dell DW1510 (BRCM 4322) and it works right out of the box (with the whitelist BIOS installed), no DSDT changes required. Dual band AGN and 300 Mbps connection (9MBps real world transfer @ 5Ghz). (Make sure it is has the BRCM4322 chip. The later model DW1520 may not work.)

8) Switching between Optimus (Intel HDA 3000) and nVidia works. The key is to realize that a few address fields in the DSDT will change when you switch from Discrete graphics to Optimus. Therefore you need to have two different versions of the DSDT, one for when Discrete graphics is set in the bios and one for when Optimus is set.

For example, these are some differences in the DSDT:

OperationRegion (MNVS, SystemMemory, 0xBAF9D018, 0x1000) // optimus
OperationRegion (MNVS, SystemMemory, 0xBF79D018, 0x1000) // discrete

OperationRegion (GNVS, SystemMemory, 0xBAF3FE18, 0x01A6) // optimus
OperationRegion (GNVS, SystemMemory, 0xBF73FE18, 0x01A6)  // discrete

Also the _DSM method under Device (VID) changes too.

So if you want to switch between the two, you need two DSDTs which preserve the differences (but are patched with all the other stuff). You need to retrieve the DSDT once under nVidia settings and once under Optimus (boot with GraphicsEnabler=Yes and no DSDT, or retrieve the DSDT under Windows). Then make all other changes to both and save a copy of each in /Extra. You can then load the correct one during boot at Chameleon by using the “DSDT=<dsdt filename>” option, leaving "dsdt.aml" as the one most often used.

When running with Optimus, both the Intel HDA 3000 and the nVidia 2000M are recognized, but only the Intel is used. There is currently no way for OSX to utilize Optimus (that I know of, let me know if I’m wrong), so this is purely for the sake of heat and saving battery life at the moment. Cinebench gives me about 11 frames per second with HDA 3000 and 37 frames per second with nVidia (install Cuda drivers). For some reason my performance figures are a tiny bit faster under Win7, in fact the surprising thing is, Optimus in Win7 was fastest, beating out pure discrete mode… :blink:

9) P-States and Turbo Boost was not working for me following Gothic860’s guide. Basically all I had to do was DISABLE P-State and C-State generation in Chameleon and set DropSSDT to No. This meant that the bios SSDT was used, which contains all the P-State code (_PSS and all that stuff).

You can tell by using MSRDumper.
I was only getting 8 and 24 before, but now I’m getting:
MSRDumper PStatesReached: 8 16 22 23 27 28 29 30 31 32
(I think the numbers are the multipliers that the CPU is using. Base freq is 100, so 8 means 800Mhz, up to 3.2Ghz turbo boost. Max turbo is 3.5Ghz on my CPU I think but it depends on how hot the CPU already is)

Also Cinebench CPU figures have increased to 5.5 from 4.7. (Again tiny bit faster at 5.6 in Win7)

10) If you are like me, you hate using the trackpad and are constantly annoyed at how files will get moved accidentally etc. because of a stray thumb brushing against the trackpad when using the trackpoint. :hammer: Well, disable the trackpad! I set the trackpad to disabled in the bios, but the trackpoint will then not work. To get it working again, edit /System/Library/Extensions/ApplePS2Controller.kext/Contents/Plugins/ApplePS2Trackpad.kext/Contents/Info.plist and remove all other IOKitPersonalities except for Synaptics TouchPad. Or you can just remove the ApplePS2Trackpad.kext plugin altogether. The trackpoint will be recognized as a PS2 mouse. Only problem is, you lose the scrolling function of the middle button, but I never use that anyway.

Problems:
1) I’m still getting the problem where USB 2.0 ports don’t work after waking up from sleep, when using Lion’s AppleACPIPlatform.kext v1.4. (They just don't power up, whereas the USB 3.0 ports do) That is why I’m still using the SnowLeo 1.3.5 version despite the fact that fan speed and battery information are solved. I have tried changing a few more fields to 8-bit access in an attempt to solve it without success. Some of those fields are huge (256 bits +) so I’m not sure how to go about it, and besides, I don’t think they pertain to USB waking. If any Thinkpad *520 owners have USB ports that work after waking while using AppleACPIPlatform 1.4, please talk to me.

2) I was also getting a problem where the USB 3.0 ports would fail after a sustained file transfer. I have upgraded to PXHCD 1.0.8 recently, will see if that cures it.

3) The power source shows as "Battery" when I have no battery plugged in. (It's fine when there is one). Not really a big deal, it just means my power savings settings are wrong. I think this is probably a kext problem rather than a DSDT one, after all Macs don't have removable batteries... :wink2:



I've enclosed my dsdt.aml (Optimus version) for reference, but I highly recommend you extract your own and make modifications, in case the field addresses are wrong. As usual, I give no warranties, express or implied. :king:

No other problems that I know of, but I haven’t tested Firewire, card readers, and external displays.

** Latest AML file as of Jan 31 2012 with linux codec derived pin configuration (see post below)

Attached Files



#42
joshhh

joshhh

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 210 posts
  • Gender:Male
  • Location:Russia, Israel
Hello! I'm using T510i and I used a lot of dsdt info from gothic guide to fix my dsdt and one thing from his versions seems to work like in your problem 1. Powered usb port doesn't wake up sometimes and bluetooth lost until I boot live cd ubuntu

So I figured out a bit and changed my EHCI1/2 sections with different code. After that my powered usb port wakes all time and bluetooth module wakes too, but sometimes to wake BT I need to sleep it again for a few seconds and wake. And here it is bluetooth is on again)


See my dsdt in theme [GUIDE] OS X Lion on ThinkPad T510i all working OK! 2...


Problems:
1) I’m still getting the problem where USB 2.0 ports don’t work after waking up from sleep, when using Lion’s AppleACPIPlatform.kext v1.4. (They just don't power up, whereas the USB 3.0 ports do) That is why I’m still using the SnowLeo 1.3.5 version despite the fact that fan speed and battery information are solved. I have tried changing a few more fields to 8-bit access in an attempt to solve it without success. Some of those fields are huge (256 bits +) so I’m not sure how to go about it, and besides, I don’t think they pertain to USB waking. If any Thinkpad *520 owners have USB ports that work after waking while using AppleACPIPlatform 1.4, please talk to me.



#43
acediac

acediac

    InsanelyMac Protégé

  • Members
  • Pip
  • 11 posts

So I figured out a bit and changed my EHCI1/2 sections with different code. After that my powered usb port wakes all time and bluetooth module wakes too, but sometimes to wake BT I need to sleep it again for a few seconds and wake. And here it is bluetooth is on again)

See my dsdt in theme [GUIDE] OS X Lion on ThinkPad T510i all working OK! 2...


I tried out your HDEF changes and your AppleHDA.kext but unfortunately it would not load at all.

Jan 29 04:51:19 calvin kernel[0]: vendor:device: 0x8086:0x1502.
Jan 29 04:51:20 calvin kernel[0]: Sound assertion "false == codecFound" failed in AppleHDADriver at line 1449 goto handler
Jan 29 04:51:20 calvin kernel[0]: Sound assertion "0 == pathMap_aDriverInstance" failed in AppleHDADriver at line 2037 goto Exit
Jan 29 04:51:20 calvin kernel[0]: Sound assertion "0 != createAudioEngines ( fPathMap_aDriverInstance )" failed in AppleHDADriver at line 207 goto Exit
Jan 29 04:51:20 calvin kernel[0]: Sound assertion "false == me->completeStart ()" failed in AppleHDADriver at line 996 goto Exit

I think I have a slightly different audio codec than you, mine is a 14F1:506E Conexant Cx20590.

On the plus side, I have managed to figure out the exact "PinConfiguration" for my Conexant audio. You can follow the steps at http://www.projectos...p?showtopic=465 to get it via windows. For reference mine is:

**Edit: I have subsequently found a different set of PinConfigurations based on a linux dump, see subsequent post.


							"PinConfigurations",
							Buffer (0x28)
							{
								/* 0000 */	0x40, 0x10, 0x21, 0x04, 0x50, 0x90, 0xA1, 0x61,
								/* 0008 */	0x60, 0x10, 0xa1, 0x04, 0x80, 0x40, 0x21, 0x61,
								/* 0010 */	0xf0, 0x01, 0xf0, 0x40, 0xf0, 0x01, 0xf0, 0x40,
								/* 0018 */	0x10, 0x01, 0x17, 0x90, 0xF0, 0x01, 0xf0, 0x40,
								/* 0020 */	0xF0, 0x01, 0xf0, 0x40, 0x70, 0x01, 0xa6, 0x90							  
							}

The other USB waking problem is also not solved. Based on your DSDT, I suspect that you are actually running the older version of the AppleACPIPlatform.kext (the one that was included with VoodooHDA; even though you have now substituted VoodooHDA with AppleHDA you probably did not revert AppleACPIPlatform.) You can check by doing "kextstat | grep ACPIPlatform", if it is version 1.3.5 it's the old one. 1.3.5 works for me also, the problem is getting it to work with Lion's 1.4 version.

#44
joshhh

joshhh

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 210 posts
  • Gender:Male
  • Location:Russia, Israel
You have to patch you apple hda with following command

sudo perl -pi -e 's|\x84\x19\xd4\x11|\x6E\x50\xf1\x14|g' /System/Library/Extensions/AppleHDA.kext/Contents/MacOS/AppleHDA

And yes I use older ACPI Platform to get working battery detection

Last - your pin configuration from windows may not be working solution at all, mine config from win 7 wasn't right and I changed it a lot to get speakers and mic working

If you have linux codec dumps or voodoohda dumps we can try to make applehda config for cx20590 together

ps. T510/510i has cx20585 codec

#45
acediac

acediac

    InsanelyMac Protégé

  • Members
  • Pip
  • 11 posts

You have to patch you apple hda with following command

sudo perl -pi -e 's|\x84\x19\xd4\x11|\x6E\x50\xf1\x14|g' /System/Library/Extensions/AppleHDA.kext/Contents/MacOS/AppleHDA

And yes I use older ACPI Platform to get working battery detection

Last - your pin configuration from windows may not be working solution at all, mine config from win 7 wasn't right and I changed it a lot to get speakers and mic working

If you have linux codec dumps or voodoohda dumps we can try to make applehda config for cx20590 together

ps. T510/510i has cx20585 codec


I noticed that the AppleHDA.kext I got from you was already patched to your 14F1:5069 codec, so I searched and replaced that instead. However, i STILL get the same "Sound assertion "false == codecFound" failed in AppleHDADriver" message. In fact I was getting corruption on the screen and a subsequent KP soon after, so that was bad.

However I have managed to get a linux codec dump and was able to use the verbit script to produce another pinConfiguration. It doesn't seem to affect VoodooHDA though, so maybe VoodooHDA doesn't use it.

My new PinConfiguration:

// W520 Linux codec dump derived PinConfiguration for Cx20590						  
								/* 0000 */	0x40, 0x10, 0x21, 0x00, 0x50, 0x90, 0xA1, 0x61,
								/* 0008 */	0x60, 0x10, 0xa1, 0x00, 0x10, 0x40, 0x21, 0x61,
								/* 0010 */	0xf0, 0x00, 0xf0, 0x40, 0x20, 0x00, 0xf0, 0x40,
								/* 0018 */	0x30, 0x00, 0x17, 0x90, 0x80, 0x00, 0xf0, 0x40,
								/* 0020 */	0x90, 0x00, 0xf0, 0x40, 0x70, 0x00, 0xa6, 0x90,

As for battery detection, I have made changes to my DSDT to use 8-bit access for fan speed and battery information, and it will work properly with AppleSmartBatteryManager.kext and version 1.4 of AppleACPIPlatform.kext (readings show up in iStat menus). However, like I said before, my USB does not work after sleep with that ACPIPlatform, which is why I don't use it yet.

If you want to see the changes for 8-bit access, just search for all parts of my AML that are using the B1B2, B1B4 and L1L4 functions. I just followed instructions from Zprood in http://www.insanelym...howtopic=272459.

Attached Files



#46
joshhh

joshhh

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 210 posts
  • Gender:Male
  • Location:Russia, Israel
Thanks for dumps, I'll try to check it as soon as possible to make cx20590 working with applehda

Battery part is also interesting, check it too and give a result

I noticed that the AppleHDA.kext I got from you was already patched to your 14F1:5069 codec, so I searched and replaced that instead. However, i STILL get the same "Sound assertion "false == codecFound" failed in AppleHDADriver" message. In fact I was getting corruption on the screen and a subsequent KP soon after, so that was bad.

However I have managed to get a linux codec dump and was able to use the verbit script to produce another pinConfiguration. It doesn't seem to affect VoodooHDA though, so maybe VoodooHDA doesn't use it.

My new PinConfiguration:

// W520 Linux codec dump derived PinConfiguration for Cx20590						  
								/* 0000 */	0x40, 0x10, 0x21, 0x00, 0x50, 0x90, 0xA1, 0x61,
								/* 0008 */	0x60, 0x10, 0xa1, 0x00, 0x10, 0x40, 0x21, 0x61,
								/* 0010 */	0xf0, 0x00, 0xf0, 0x40, 0x20, 0x00, 0xf0, 0x40,
								/* 0018 */	0x30, 0x00, 0x17, 0x90, 0x80, 0x00, 0xf0, 0x40,
								/* 0020 */	0x90, 0x00, 0xf0, 0x40, 0x70, 0x00, 0xa6, 0x90,

As for battery detection, I have made changes to my DSDT to use 8-bit access for fan speed and battery information, and it will work properly with AppleSmartBatteryManager.kext and version 1.4 of AppleACPIPlatform.kext (readings show up in iStat menus). However, like I said before, my USB does not work after sleep with that ACPIPlatform, which is why I don't use it yet.

If you want to see the changes for 8-bit access, just search for all parts of my AML that are using the B1B2, B1B4 and L1L4 functions. I just followed instructions from Zprood in http://www.insanelym...howtopic=272459.



#47
joshhh

joshhh

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 210 posts
  • Gender:Male
  • Location:Russia, Israel
Ok I've patched applehda for you cx20590

to get it working install next, removing voodoo is necessary

Attached File  AppleHDA.kext-cx20590.zip   1.57MB   232 downloads

and modify your HDEF section to correct one


Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0E)
{
"AAPL,slot-name",
Buffer (0x09)
{
				"Built in"
},
"device-id",
Buffer (0x04)
{
				0x6e, 0x50, 0xF1, 0x14
},
"layout-id",
Buffer (0x04)
{
				0x0C, 0x00, 0x00, 0x00
},
"model",
Buffer (0x1A)
{
				"HD Audio Conexant Cx20590"
},
"name",
Buffer (0x11)
{
				"Conexant Cx20590"
},
"device_type",
Buffer (0x11)
{
				"Audio Controller"
},
"PinConfigurations",
Buffer (One)
{
				0x00
}
}, Local0)
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
	Return (Local0)
}


#48
acediac

acediac

    InsanelyMac Protégé

  • Members
  • Pip
  • 11 posts
Hey Josh, it works! The audio will also automatically switch to headphones when plugged in. Some minor problems are that the internal microphone is always on and very sensitive and does not switch to the side jack even when i plug in a microphone headset.

Can I ask what changes you did to make it work or a link to instructions? Thanks! I also didn't put in my pin configuration this time, I just left it zero like in your post. I wonder if that made a difference.

#49
joshhh

joshhh

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 210 posts
  • Gender:Male
  • Location:Russia, Israel
Hello!

Can you help me to fix dsdt for appleacpi 1.4.0? I add some global code to the end of file but don't know what to do next

Attached File  dsdt-v1.48-raw-noerrors-01 10.dsl.zip   50.8KB   13 downloads

#50
acediac

acediac

    InsanelyMac Protégé

  • Members
  • Pip
  • 11 posts

Hello!

Can you help me to fix dsdt for appleacpi 1.4.0? I add some global code to the end of file but don't know what to do next

Attached File  dsdt-v1.48-raw-noerrors-01 10.dsl.zip   50.8KB   13 downloads


See if this works. I have left in original code commented out so you can see what changes I have made.
This DSDT should allow you to see battery and fan speed in iStats Menu when you use AppleACPIPlatform 1.4.0 but I'd be interested to see if you get the same problem with USB not waking up after sleep. Please let me know.

Attached Files



#51
joshhh

joshhh

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 210 posts
  • Gender:Male
  • Location:Russia, Israel
Thank's a lot! Now Battery and fan sensor is working well,

I've asked about USB sleep problem on local russian forum, think someone can help us to deal with bug

See if this works. I have left in original code commented out so you can see what changes I have made.
This DSDT should allow you to see battery and fan speed in iStats Menu when you use AppleACPIPlatform 1.4.0 but I'd be interested to see if you get the same problem with USB not waking up after sleep. Please let me know.



#52
devfom

devfom

    InsanelyMac Protégé

  • Members
  • Pip
  • 12 posts
  • Gender:Male
  • Location:Russia
Hello brotherhoods.
Did anyone got update to 10.7.3?
Do you have any problems with that?

#53
acediac

acediac

    InsanelyMac Protégé

  • Members
  • Pip
  • 11 posts
- Backed up and imaged the disk
- Installed 10.7.3 from combo package downloaded from Apple site, not software update
- Repatched AppleIntelCPUPowerManagement and re-added ID to AppleLPC
- removed AppleHDA and reinstalled VoodooHDA

Seems to work ok but I have lost some openGL graphics performance according to Cinebench.

#54
devfom

devfom

    InsanelyMac Protégé

  • Members
  • Pip
  • 12 posts
  • Gender:Male
  • Location:Russia

- Backed up and imaged the disk
- Installed 10.7.3 from combo package downloaded from Apple site, not software update
- Repatched AppleIntelCPUPowerManagement and re-added ID to AppleLPC
- removed AppleHDA and reinstalled VoodooHDA

Seems to work ok but I have lost some openGL graphics performance according to Cinebench.


Ok, will check it later.
One more question: Are you have the CMOS resets(I'm not sure about this name, but it's looks like the double booting after pressing Start button) when shutdown or restart?

#55
acediac

acediac

    InsanelyMac Protégé

  • Members
  • Pip
  • 11 posts
if you are getting a "CMOS checksum error" you need to patch AppleRTC as described by gothic. (I did not have to change alignment in the DSDT)

If you are talking about how the W520 sometimes turns off again after pressing the power button, I sometimes get that one time after switching graphics settings in the bios (eg. from discrete to optimus or vice versa). Subsequent boots will be ok. It doesn't do that if I don't change bios settings.

#56
jny

jny

    InsanelyMac Protégé

  • Members
  • Pip
  • 7 posts
Just got hold af a brand-new T520. Will try to get it up and running using this thread.

#57
ovof

ovof

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 235 posts
I've got the same issue with USB not working after wake, does any one find the solution ?

Thanks !

#58
Chatbox

Chatbox

    InsanelyMac Protégé

  • Members
  • Pip
  • 4 posts
Hi guys, can someone give me a hand, please?

I got most of the system up and running by following this guide. CineBench gave 35FPS, however, the CPU only got a score of 3.5. I'm using an i7-2760QM, and I think the score for this should be around 5, isn't it?

Can someone test the CPU score on their system and let us know how many points you get?

Update:
Nevermind, my mistaken. Missed the step where I should have selected "Drop SSDT" from the Chameleon Wizard.
After selecting the option, saved the file, reboot, re-run CineBench...I now have 5.43 for the CPU score.

#59
Chatbox

Chatbox

    InsanelyMac Protégé

  • Members
  • Pip
  • 4 posts
Hi all, I finally got the sound working with VoodooHDA 2.7.3 from this post: http://www.tonymacx8...pic.php?t=25934

I then modified its Info.plist with the NodeToPatch Config numbers (hex) of my W520 to the following (used the linux codec dump and verbs's output):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>11A511</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>VoodooHDA</string>
<key>CFBundleIdentifier</key>
<string>org.voodoo.driver.VoodooHDA</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>VoodooHDA</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
<string>2.7.3</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>2.7.3</string>
<key>DTCompiler</key>
<string>4.2</string>
<key>DTPlatformBuild</key>
<string>4B110</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>10J567</string>
<key>DTSDKName</key>
<string>macosx10.6</string>
<key>DTXcode</key>
<string>0410</string>
<key>DTXcodeBuild</key>
<string>4B110</string>
<key>IOKitPersonalities</key>
<dict>
<key>VoodooHDA</key>
<dict>
<key>CFBundleIdentifier</key>
<string>org.voodoo.driver.VoodooHDA</string>
<key>IOClass</key>
<string>VoodooHDADevice</string>
<key>IOMatchCategory</key>
<string>VoodooHDADevice</string>
<key>IOPCIPrimaryMatch</key>
<string>0x1c208086</string>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>IOUserClientClass</key>
<string>VoodooHDAUserClient</string>
<key>InhibitCache</key>
<true/>
<key>MixerValues</key>
<dict>
<key>iGain</key>
<string>90</string>
<key>iMix</key>
<string>0</string>
</dict>
<key>NodesToPatch</key>
<array>
<dict>
<key>Codec</key>
<integer>0</integer>
<key>Config</key>
<string>0x04211040</string>
<key>Node</key>
<integer>25</integer>
</dict>
<dict>
<key>Codec</key>
<integer>0</integer>
<key>Config</key>
<string>0x61a19050</string>
<key>Node</key>
<integer>26</integer>
</dict>
<dict>
<key>Codec</key>
<integer>0</integer>
<key>Config</key>
<string>0x04a11060</string>
<key>Node</key>
<integer>27</integer>
</dict>
<dict>
<key>Codec</key>
<integer>0</integer>
<key>Config</key>
<string>0x90170110</string>
<key>Node</key>
<integer>31</integer>
</dict>
<dict>
<key>Codec</key>
<integer>0</integer>
<key>Config</key>
<string>0x90a60170</string>
<key>Node</key>
<integer>35</integer>
</dict>
</array>
<key>Noise</key>
<integer>2</integer>
<key>Vectorize</key>
<true/>
<key>VoodooHDAEnableHalfMicVolumeFix</key>
<true/>
<key>VoodooHDAEnableHalfVolumeFix</key>
<true/>
<key>VoodooHDAEnableMuteFix</key>
<true/>
<key>VoodooHDAEnableVolumeChangeFix</key>
<true/>
<key>VoodooHDAVerboseLevel</key>
<integer>1</integer>
</dict>
</dict>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.iokit.IOAudioFamily</key>
<string>1.1fc9</string>
<key>com.apple.iokit.IOPCIFamily</key>
<string>2.1</string>
<key>com.apple.kpi.iokit</key>
<string>9.0.0</string>
<key>com.apple.kpi.libkern</key>
<string>9.0.0</string>
<key>com.apple.kpi.mach</key>
<string>9.0.0</string>
<key>com.apple.kpi.unsupported</key>
<string>9.0.0</string>
</dict>
</dict>
</plist>


System was able to go through 380 kext load-reload cycles before KPing. (I was having a number of random KP when loading VoodooHDA prior to this, so that's why I wanted to test this config)
(while true; do echo Unloading; kextunload /System/Library/Extensions/VoodooHDA.kext; sleep 1; echo Loading; kextload /System/Library/Extensions/VoodooHDA.kext; sleep 1; done) (without the brackets)


Also, when you plugin the headphone, audio-out would automatically go to the headphone instead of the speaker. Unplugging the headphone would make the sound go back to the built-in speakers.

#60
Shikumo

Shikumo

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts
Small hint for all interested.
You can follow this guide http://www.insanelym...howtopic=278208 to get native speed stepping, that means no need to patch AppleIntelCPUPowerManagement.kext or use of NullCPUManagement.kext. I've successfully tested this on my W520 (BIOS 1.36). The file you should be looking for to patch is F7731..CE58_1_704.ROM where you can search for the same byte sequence as in the linked guide.

Edit: For 10.7.4 and probably ML you need to enable DropSSDT, GeneratePStates and GenerateCStates in you chameleon configuration, otherwise your kernel will panic with an "P-State stepper error ...".





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy