Jump to content


  • Content count

  • Joined

  • Last visited

About acediac

  • Rank
    InsanelyMac Protégé
  1. [GUIDE] OS X Lion on ThinkPad W520

    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.
  2. [GUIDE] OS X Lion on ThinkPad W520

    - 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.
  3. 10.7.3. is OUT !

    I seem to have lost about 15-20% graphics performance with 10.7.3. Before with 10.7.2: Cinebench FPS was 36-37 Now with 10.7.3: Cinebench FPS is 31-32 Running the benchmark in Win 7 gives a solid 37. CPU benchmark is the same This is with nVidia Quadro 2000M Anyone with similar experience?
  4. [GUIDE] OS X Lion on ThinkPad W520

    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. dsdt-v1.48-converted_8_bit_access.dsl.zip
  5. I seem to be getting fewer PStates with the patched AICPUPM.kext in 10.7.3 compared to the 10.7.2 version: in 10.7.2 MSRDumper PStatesReached: 8 16 22 23 27 28 29 30 31 32 in 10.7.3 MSRDumper PStatesReached: 8 27 28 29 30 31 32 Anyone else getting similar problems? EDIT: Nevermind, it does reach other states, just not as often. It may be my imagination but it just seems to jump between idle and max without using the intervening states a lot. Seemed to work differently in 10.7.2. EDIT2: I had to readd the isa bridge device to the info.plist of AppleLPC and cleared the caches, now it seems to work better.
  6. I just updated to 10.7.3 and my Intel E1000 is working. In fact there is no new kext for it in the update, so not sure why yours is not working. Maybe reinstall the files? I have attached my kext if you want to compare. I have BRCM4322 wireless and that is also working without needing changes. AppleIntelE1000e.kext.tar.gz
  7. [GUIDE] OS X Lion on ThinkPad W520

    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.
  8. [GUIDE] OS X Lion on ThinkPad W520

    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. W520_codec_dump.txt.zip Verbit_output.zip
  9. [GUIDE] OS X Lion on ThinkPad W520

    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.
  10. [GUIDE] OS X Lion on ThinkPad W520

    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… 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. 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. 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) w520_dsdt_optimus.aml.zip
  11. [GUIDE] OS X Lion on ThinkPad W520

    Gothic860, sorry to hear that you gave up your W520! I actually just bought one partially based on this guide because I wanted a good Thinkpad that can also run OSX Lion! In any case, thanks for your efforts, it has saved me a lot of time and research. With a few tweaks to Gothic860's guide, I've got most things working. However one thing that's bugging me at the moment is the fact that my USB 2.0 ports no longer work after waking up from sleep. Has anyone else with a Thinkpad with the same Intel 6 Series/C200 Series Chipset had the same problems and managed to fix it? USB controller PCI IDs are 8086:1c2d and 8086:1c26. I've already added the _DSM methods to both EHC1 and EHC2 with the correct "device-id"s and "AAPL,clock-id" 0x01 and 0x02 respectively. Sleep works properly, everything powers down and turns on again when the power button is pressed, but my USB 2.0 ports will not work after that. Interestingly the USB3.0 ports will work. If you have a similar Thinkpad (T420, T520, W520) without this problem, please let me know so I can narrow down the differences. Thanks!