Jump to content

[GUIDE] OS X Lion on ThinkPad W520


107 posts in this topic

Recommended Posts

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.

- 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.

- 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?

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.

  • 1 month later...
  • 2 weeks later...

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.

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.

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 ...".

hi fellas, i've edited the Info.plist by copy-pasting chatbox's above (& gotten louder volume with it), but still no automatic switch when i plug in headphones. is there anything else you did differently to make auto-switching work?

---

w520 / voodooHDA 2.7.3

 

System Info reads:

Intel Corporation 6 series / C200 series chipset family high definition audio controller (0x1c208086)

---

any help greatly appreciated!

  • 3 weeks later...
  • 2 weeks later...

Hello,

 

I have succesfully installed (the easy way, with iATKOS L2) and after some more customization I got everything working, and I'm in fact running 10.7.4, but the smart battery seems not to be available for 10.7.4. Also I have a problem with the keyboard, I'm using voodooPS2 with thinkpadUltraNav but the key right of the left shift is not working in the right way, in my Spanish keyboard the < and the º are swapped. I suppose that in an english keyboard the keys would be ` and §. After some googling it seems to be a problem with the VoodooPS2 simulating a 102 keys on a 101 one. Any clue about those problems?

 

Edit:

Neither the sound is working (tried voodooHDA 2.7.3), I'm going back to 10.7.3.

 

Regards

  • 4 weeks later...

After some work and some more googling and experimenting I finally got a perfect W520 Book Pro :-D, everything is working, even optimus.

 

Well sort of, I have two DSDT, one with intel + disabled nvidia (about 8 hours of battery life) and the other with nvidia as primary (changing BIOS to discrete only) that gives about 3 hours. I've followed this guide with little additions, for example to get trackpoint working I need to install VoodooPS2 removing all under plugins and adding there the ThinkpadUltraNav.kext. For switching off the nvidia and getting no heat under normal use I modify the DSDT moving the part inside the _PS3 of the nvidia card (discarding the first if) under other Method() and calling this method after initializing the duallink and after the WAK method.

 

I've attached both of my DSDT the W520_optimus.dsl is the one I use usually, it works with optimus in the BIOS and just use the integrated intel video and switch off the nvidia (as right now there is no way to use optimus under OSX, although it could change with the patch for the MBPR just released), if you need the nvidia card you should change in the BIOS to discrete only and use the other W520_discrete.dsl (DSDT=/Extra/W520_discrete.aml). I've attached the .dsl so be sure that it match your configuration, I have the 2820QM and the Quadro 2000M. You could check the differences with your own, to compile them just use the iasl included with OSX.

 

Regards!

W520_DSDTs.zip

First of all: Thank you for your continued support in getting things to work. My hackintoshed W520 turned out to be more than i could have ever wished for.

The only problem I am facing is the battery life with NVidia graphics. The switch to HD3000/Optimus has not turned out to be quite easy as it was for some of you.

 

For starters: I extracted my optimus-enabled DSDT using a Linux distribution, decompiled it with iasl in OSX and then continued patching it like I did before with the NVidia-enabled DSDT.

 

I am using the MacBookPro8,3 SMBIOS, as my Processor matches its i7-2720QM @ 2,2 GhZ variant. Speedstep and TurboBoost are also working properly, when using a patched AICPUPM (with SpeedStepper).

 

Now to the strange part: When I boot Lion with Optimus enabled, everything works - QE/CI, and I can play Hardware-Accelerated Videos.

The only Problem: The Display is a mess. It uses about 16 colors, has a reddish tint and psychedelically switches colors.

System Report does show the device, but it is not detected as an Intel HD3000, but as an "Unknown Device". I have attached a photo to demonstrate this weirdness:

 

What can I do to solve this Problem? Shouldn't the HD3000 be detected without using a modified DSDT, as the MacBookPro8,3 uses it?

The IntelHD3000 kexts are on my System, unmodified. I am using Lion 10.7.3 with a legacy ACPI kext (for getting USB and Battery working properly).

For those who have managed to do it - is a modified DSDT necessary to get the Display to show up correctly? Did you have this error?

 

Thanks in advance! You are my heroes ;)

post-989734-0-67485600-1340794587_thumb.jpg

I've gotten the display to work properly. I realized that I absolutely HAD to edit the DSDT in order for it to function - I analyzed kahuna0k's dsl files (integrated vs. optimus) in a diff-checker and edited my optimus-enabled dsdt accordingly. Now I've gotten the display with HD3000 to work, BUT with a few issues.

 

- Video Outputs don't work. I haven't tested VGA yet, but Display Port won't work at all.

 

Apart from that, battery life has increased a bit, but not to 8 hours, with the brightness locked I get 5 hours idling.

 

People who have had success with using the HD3000, have you also encountered these problems and if so, did you manage to fix them?

 

EDIT: I have fixed the Turboboost issue. I have been always getting different P-State readings using MSRDumper, and the cure for all these problems (and Missing C-State Generation) seems to be a custom ssdt.aml. RevoGirl posted a script on her blog (Get it here: http://revogirl.word...te-ssdt-pr-dsl/) which you can use to generate a fitting ssdt.dsl for your CPU. Just compile it using iasl and put the ssdt.aml into your Extra folder, where Chameleon will search for it and use it automatically. I have turned off all CPU features in Chameleon Wizard. The Result: All P-States are now being reported by MSRDumper, and Power Management finally works (Battery indicator shows 7 hours while idling).

 

There is still the problem with missing video output.

Now that's a shame. But maybe that means I can finally enjoy my Hackintosh and do some actual work on it, rather than tinkering with maximizing hardware compatibility ;)

 

I have not lost hope yet... maybe some day we will be able to switch graphics cards while OSX is running. If it is possible on real MacBookPros with gfxCardSwitcher (which Open Source by the way...), then there must be a possibility. Sadly, I don't have enough experience to tackle such a project, so I have to wait and see what happens in the future. And to everyone still using VoodooHDA: please do yourself a favor and get the patched AppleHDA from joshhh and edit the DSDT accordingly. It works beautifully, it's kind of unreal. For everyone interested in audio: I ran Logic and other pro audio applications and never had one hiccup. Even with the lowest latency settings - but of course, the performance ceiling is then greatly lowered by the CPU, so find a comfortable spot in the midrange.

 

EDIT: joshhh posted the Procedure in this exact thread. Here is the Post you need:

http://www.insanelymac.com/forum/index.php?showtopic=273621&view=findpost&p=1791513

Sorry for the late reply, I've been on holidays without internet access. As you've already pointed out video out is linked only to the nvidia card, but anyway I usually don't need both video out and battery life. I've tried to use the AppleHDA patched by joshhh but I'm getting:

 

 

Sound assertion "false == codecFound" failed in AppleHDADriver at line 1449 goto handler

Sound assertion "0 == pathMap_aDriverInstance" failed in AppleHDADriver at line 2037 goto Exit

Sound assertion "0 != createAudioEngines ( fPathMap_aDriverInstance )" failed in AppleHDADriver at line 207 goto Exit

Sound assertion "false == me->completeStart ()" failed in AppleHDADriver at line 996 goto Exit

 

even after patching the DSDT. I'm using the T510 appleHDA from this post

 

http://www.insanelym...howtopic=274218

 

any clue?

 

EDIT: Fixed using Joshhh version in this same post :-D ... google too much ...

 

 

What about 10.7.4? I'm thinking on upgrading, as the only thing preventing me was the sound not working with VoodooHDA, is it working with patched AppleHDA ??

 

One more thing I tried revogirl's script to generate SSDT trying to optimize battery life, but I'm getting a panic with an error in the stepper building. I'll check because I think that my own DSDT already includes the SSDT

 

Regards

Yeah, was meaning to link to joshhh's post first but then thought it would'nt be necessary, as everyone would probably have read the whole thread... Fixed that now for clarification.

 

Glad you could get it to work, VoodooHDA is a pain in the ***.

I have not yet upgraded to 10.7.4 and don't see a need to do it, as everything I need just runs fine in 10.7.3. I don't need the hassle. You could download the ComboUpdate and inspect the package with Pacifist and see if there are new versions of kexts you have currently patched/modified. You would at least need to patch these again after the update, but I would not recommend the procedure unless you can make a complete disk image beforehand in case everything goes FUBAR. About the SSDT generation script - I can't be of any more help, sorry. Sadly, RevoGirl died of complications of her Leukemia treatment recently, and consequently, her blog was shut down. I just followed her instructions, maybe you could try doing it again if you find a cached version of her blogpost i linked earlier.

Hello chaps!

Thank you for creating the guide, and to everyone else that has helped getting OSX running on the w520 :)

 

With the help of joshhh i finally got audio, good job!

 

DSDT editing was scary :/

 

I flashed the bios with the the modified 1.34 without whitelist and replaced the card with the artheros 9285 which i had stole from my wrecked asus. Tried modifiying IO80211Family to enable the wlan card, it worked but i could not connect to "N" networks, so i used this kext from http://www.osx86.net...-half_size.html

 

Now i can atleast access N networks up to 150mbit.

Whats lacking now on my W520 is Battery Indicator, Sleep and Speedstep. So a bit more work left.

 

EDIT: Downgraded to 10.7.3.

 

Thank you everyone!

 

EDIT:

1. Tried trying hard to get speedstepping to work on 10.7.4. I only get 8 and 24 P States, atleast it clocks down the cpu.

2. I got battery working with this little snippet http://www.osx86.net...id=2732&page=2. No DSDT editing, just installed with kext and it works. Abit slow on updating battery status but heck, works for me.

Edited by nukedeath
×
×
  • Create New...