InfiniteMac OSx86

InfiniteMac OSx86 (http://infinitemac.com/forum.php)
-   10.X (http://infinitemac.com/forumdisplay.php?f=36)
-   -   Asus K50IN (http://infinitemac.com/showthread.php?t=4409)

sacrificeme 08-15-2011 01:53 PM

Quote:

Originally Posted by man_of_the_oak (Post 54925)
IMHO tutorial on applelife.ru is a piece of shit. Especially information about DSDT and kexts like VoodooPower in their Extra.zip attached to the post o.O WTF?

Agreed, no success if you go step by step from Buhgalter guide.. Only when combaine all, success of apllelife and you post with S/L/E and something from other threads i get it working.. Will wait for you guide, will make clean install after you posted it!

Any one please suggest software for our hacks like acronis, get image of hdd with chameleon+sl+windows 7, so i can get all back if clear install gone wrong.

flip360 08-15-2011 02:56 PM

Quote:

Originally Posted by man_of_the_oak (Post 54925)
I will share everything in my upcoming tutorial, guys ^^ + NEVER, EVER use someone's DSDT, I've got much more knowledge than last time I've worked with Hackintoshes and trust me, you may even destroy your hardware while using someone's DSDT. Always create your own and simply fix it.
Anyway, to all Lion lovers, I am going to create LegacyHDA for this one, it will work with 10.6.8 too, of course.

Thanks buddy, will wait for the tutorial :) what do you use for dsdt editing?

Cheers

man_of_the_oak 08-15-2011 03:14 PM

Quote:

Originally Posted by flip360 (Post 54927)
Thanks buddy, will wait for the tutorial :) what do you use for dsdt editing?

Cheers

TextWrangler + iASLMe :-)

gabguig 08-15-2011 04:08 PM

It was very useful for someone consseguise correct kext or Appleps2Controller voodops2. Because they are disturbing the sleep of the laptop.
Has anyone fixed the dsdt but I do not know if aver something else to do.
At the moment the kext works but voodops2 Appleps2Controller and disrupt sleep. And to get sleep to work I have to use an external USB optical mouse.
Also an updated guide for this laptop would be particularly useful.
Congratulations for your great work of the forum.
Pardon by my English is not the best.
Greetings. (Y)

flip360 08-15-2011 04:23 PM

Quote:

Originally Posted by man_of_the_oak (Post 54928)
TextWrangler + iASLMe :-)

as soon as you have the tutorial completed let me know to reformat the front page with the fresh stuff ;)
(erase the old if its ok with you)

Cheers

man_of_the_oak 08-15-2011 05:34 PM

Quote:

Originally Posted by flip360 (Post 54930)
as soon as you have the tutorial completed let me know to reformat the front page with the fresh stuff ;)
(erase the old if its ok with you)

Cheers

It's ok ^^

I think that I've found out why there is Unknown AHCI Controller in System Profiler...

In our DSDT, even though AHCI seems to work, there is NO SATA device :eek: I am going to create an IORegistryExplorer dump under 10.6.7 and use the information to inject SATA device into the DSDT... it should fix the problem. I'll keep you updated.

flip360 08-15-2011 07:25 PM

Quote:

Originally Posted by man_of_the_oak (Post 54931)
It's ok ^^

I think that I've found out why there is Unknown AHCI Controller in System Profiler...

In our DSDT, even though AHCI seems to work, there is NO SATA device :eek: I am going to create an IORegistryExplorer dump under 10.6.7 and use the information to inject SATA device into the DSDT... it should fix the problem. I'll keep you updated.

Great work man_of_the_oak, keep us updated :)

man_of_the_oak 08-15-2011 09:25 PM

edit: actually it seems that ATA0 is SATA in our DSDT o.O How lame... Anyway, I am working on it...

gabguig 08-15-2011 09:35 PM

Good! :D

man_of_the_oak 08-17-2011 02:00 PM

Hey guys!
Unfortunately it's not clear for me why our chipset isn't being recognised while exact pci id is within Info.plist of AppleAHCIPort.kext + it works on kext from 10.6.7.

I don't like rollbacks but sometimes, when there is no alternative, I have to accept them... and this is what I am going to do about this case. Maybe in the future I'll find some other way to fix the issue - as for now, I believe I've tried everything and the only way to change it from 'Unknown AHCI Standard Controller' to 'NVidia MCP79 AHCI' is to create Legacy kext to edit GenericAHCI in Info.plist of AppleAHCIPort.kext or go back to AppleAHCIPort from 10.6.7.

I am not exactly sure how does the GenericAHCI work, so I prefer it to be recognised as MCP79 and be sure to have completely working controller.

mondet 08-17-2011 03:04 PM

Quote:

Originally Posted by man_of_the_oak (Post 54949)
Hey guys!
Unfortunately it's not clear for me why our chipset isn't being recognised while exact pci id is within Info.plist of AppleAHCIPort.kext + it works on kext from 10.6.7.

I don't like rollbacks but sometimes, when there is no alternative, I have to accept them... and this is what I am going to do about this case. Maybe in the future I'll find some other way to fix the issue - as for now, I believe I've tried everything and the only way to change it from 'Unknown AHCI Standard Controller' to 'NVidia MCP79 AHCI' is to create Legacy kext to edit GenericAHCI in Info.plist of AppleAHCIPort.kext or go back to AppleAHCIPort from 10.6.7.

I am not exactly sure how does the GenericAHCI work, so I prefer it to be recognised as MCP79 and be sure to have completely working controller.

don't know how to help :'(, but cheers!!! :)

flip360 08-17-2011 04:07 PM

can you share the specifics about modifying the DSDT? a small tutorial would be nice :)
i have reverted to 10.6.7 all working properly,

Cheers

man_of_the_oak 08-17-2011 04:35 PM

Quote:

Originally Posted by flip360 (Post 54952)
can you share the specifics about modifying the DSDT? a small tutorial would be nice :)
i have reverted to 10.6.7 all working properly,

Cheers

Sure I will, I've promised a detailed tutorial, haven't I? ;-)

flip360 08-17-2011 05:56 PM

Yep, u did :)

man_of_the_oak 08-20-2011 12:04 AM

I've finished with my HackBook Pro, tutorial will be online soon, a little spoiler:

http://i53.tinypic.com/181ver.png

neonego 08-20-2011 11:28 AM

Quote:

Originally Posted by man_of_the_oak (Post 54975)
I've finished with my HackBook Pro, tutorial will be online soon, a little spoiler:

http://i53.tinypic.com/181ver.png


Great job MAN... Nice desktop there.. the topbar is differently beautiful.

flip360 08-20-2011 11:39 AM

nice job buddy :) u polish or chech? great icons btw,

cheers

man_of_the_oak 08-21-2011 06:45 PM

Quote:

Originally Posted by flip360 (Post 54978)
nice job buddy :) u polish or chech? great icons btw,

cheers

I'm Polish :-) Thanks!

More cosmetics here, HackBook Pro is completely finished, give me a day or so and VERY detailed tutorial will be ready.

http://i52.tinypic.com/1z1791w.png

flip360 08-21-2011 07:28 PM

nice job man_of_the_oak, i am very interested in the DSDT and the sdcard reader is a nice addition too :)
We can reformat the front page with just your tutorial and a way to make an install USB,

Cheers

man_of_the_oak 08-21-2011 11:36 PM


I DON'T PROVIDE ANY SUPPORT IN CASE OF DISTROS, IN MY OPINION THEY ARE PIECE OF SHIT AND A COMPLETE WASTE OF TIME

I decided to create this tutorial mostly because of the fact that there isn't really any good one + the only detailed I know is the one from applelife.ru which is obsolete and actually not very good in my humble opinion. I hope that my work will be appreciated and will come to use to some of you. I have to mention that even though this tutorial is based on my work with Asus K50IN, it may be helpful also for people who own Asus K70IO or others with MCP79 chipset.

Firsly, specification:

1. Model: Asus K50IN-SX152
2. Processor: Intel(R) Core(TM)2 Duo CPU T6600 (SSE 2, SSE 3)
3. Southbridge: MCP79
4. Graphics card: NVIDIA GeForce G102M
5. Audio: ALC662
6. LAN: RTL8111/8168B
7. WLAN: Atheros AR9285
8. HDD and Optical disc recorder - SATA
9. Keyboard and touchpad - PS/2
10. Webcam: Chicony CNF7129
11. Card reader: Alcor AU6433

Let's sum up the final effect...

Works:
- SpeedStep (P-States and C-States)
- Graphics card (QE/CI)
- Audio (internal microphone, external microphone set as line in, speakers, headphones)
- LAN
- WLAN
- Touchpad (tap-to-click, vertical two-finger scrolling etc. - if you are going to dual boot with Windows using Chameleon - avoid restarting Microsoft's OS to boot Mac OS X - touchpad goes crazy then - the only way to fix this issue is to use Acronis OS Selector for example)
- Battery status
- Shutdown/Restart
- Sleep
- Webcam
- Card reader (recognised as internal Apple card reader)

Doesn't work:
- Restart after waking up from sleep
- Deep sleep (the system is properly restored to the state from before hibernation but system alert is being played all the time...)

1. Installation

Before starting with all the steps I describe in this tutorial, I recommend updating your BIOS to the newest version. At the moment is it: 223. Download my archive with all needed files (you can find it near the end of this tutorial - and put in on a USB stick, for example - to have easy access to the files) also.

I am not going to write about how to install the system itself, simply download a boot CD of your choice and install Mac OS X (remember to put GraphicsEnabler=No flag during install and first boot from hdd and do first part of post-configuration tasks on Mac OS X 10.6 or 10.6.3, not higher!)

When Mac OS X is installed (version 10.6 or 10.6.3) and booted from the first time from your HDD, we can move to post-configuration.

2. Post-configuration

Download Combo Update 10.6.8 and install it (do not restart yet!). Now we can take care of bootloader - it will allow your system to boot from HDD, without using the boot CD, you can find it in the attached archive - its file name is Chameleon-2.0-RC5-r828.pkg. If the installer doesn't run properly at first - try again until it does.

Install it on your system partition (do not log out yet!). The next step is to create your Extra along with KextStore. Run terminal (Applications->Tools->Terminal) and type the following comands, pressing Enter after each line:

Code:

sudo -s (type your password, don't be afraid that you can't see it, it's normal)
mkdir /Extra
mkdir /Extra/KextStore

So... we have the folders, let's fill them with data :p

Go to your system partition, open recently created Extra and place there smbios.plist and com.apple.boot.plist from my archive. If you are curious what you can find inside ;) : + if you are going to install the system on laptop with other CPU - make sure to edit smbios.plist!

smbios.plist:

Code:

<?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>SMbiosversion</key>
        <string>MBP51.88Z.007E.B05.0905051508</string>
        <key>SMboardproduct</key>
        <string>Mac-F42D86C8</string>
        <key>SMfamily</key>
        <string>MacBook Pro</string>
        <key>SMmanufacter</key>
        <string>Apple Inc.</string>
        <key>SMproductname</key>
        <string>MacBookPro5,1</string>
        <key>SMcputype</key>
        <string>769</string>
        <key>SMexternalclock</key>
        <string>200</string>
        <key>SMmaximalclock</key>
        <string>2200</string>
        <key>SMmemspeed</key>
        <string>800</string>
        <key>SMmemtype</key>
        <string>19</string>
        <key>SMserial</key>
        <string>W884094J1GA</string>
        <key>SMsystemversion</key>
        <string>1.0</string>
</dict>
</plist>

com.apple.boot.plist:

Code:

<?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>Kernel</key>
        <string>mach_kernel</string>
        <key>Kernel Flags</key>
        <string>npci=0x2000</string>
        <key>GraphicsEnabler</key>
        <string>Yes</string>
        <key>GraphicsMode</key>
        <string>1366x768x32@60</string>
        <key>Legacy Logo</key>
        <string>Yes</string>
        <key>DSDT</key>
        <string>/Extra/DSDT.aml</string>
        <key>SMBIOS</key>
        <string>/Extra/smbios.plist</string>
        <key>SystemType</key>
        <string>2</string>
        <key>Theme</key>
        <string>LoginToLion</string>
        <key>Boot Banner</key>
        <string>No</string>
</dict>
</plist>

The next step is to install Kext Wizard (I wouldn't surprise you if I say that you can find it inside my archive with needed files? ;) Oh well... from now on - simply pretend that I say it every time when telling you to use something without explaining where to download it). Using this little app, install the following kexts to Extra:

AppleACPIBatteryManager, AppleACPIPS2Nub, ApplePS2Controller, EvOreboot, FakeSMC, NullCPUPowerManagement

This set, along with Chameleon, will allow you to boot the system without boot CD.
Reboot Mac OS X (this time you have to press power button after seeing MACH reboot - EvOreboot isn't working yet) - this time without boot CD inside your optical drive. I recommend using -v -f flags, you simply type them when you get into Chameleon boot menu and press "Enter".

When the system is up and running - you can move to the next step.

3. Preparing DSDT for modification

Extract your DSDT using Ubuntu Live CD 9.04 (you can find many tutorials on the Internet, simply search for it). You can download the ISO here:

Code:

http://old-releases.ubuntu.com/releases/9.04/
Ok, supposing that you've already got your DSDT file (you can find it inside of ACPI-Tables.zip, you will recognise it after the beginning of its name :p), I am going to help you with the whole process of modifying it.

Firsly, download the newest version of TextWrangler and iASLMe.

Code:

http://www.barebones.com/products/textwrangler/
Code:

http://www.insanelymac.com/forum/index.php?showtopic=189272
Search for the newest version of iASLMe on the last pages of the topic (attachments on the first page aren't updated). During writing this tutorial, I was using iASLMe_UB_23_06_2011.

Install both applications, drag our DSDT on iASLMe icon. We have to do this to make the code inside of it "readable" for a regular text editor. Open output .dsl file using TextWrangler.

The code will be easier to interpret if you makes some changes in preferences.
Choose "Edit->Text options..." and set it just like on the screenshot below:


To check correctness of our DSDT we have to drag our .dsl file on iASLMe. If compilation results in Compilation complete. 0 Errors, 0 Warnings, 0 Remarks.. - you can move to the next step. Otherwise, we should fix it. I am not able to predict how will your DSDT look like, so I am going to present you the fixes I had to use in my case.

My clean DSDT, after decompilation and re-compilation returned:

Compilation complete. 2 Errors, 42 Warnings, 1 Remarks...

It's not really a big problem to fix and - as to be honest - we don't have to take care of warnings but I am a pedant-type so... :p I recommend copying whole log of compilation to have an easy way to look into it. Let's paste it into a new text document of TextWrangler and search for "error". In my case, the first one was:

Code:

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5071:                    Return (Zero)
Error    4080 -                                                            Invalid object type for reserved name ^  (found ZERO, requires Buffer)

5071 is the line where the error occurs so, using "Search->Go to line" we go to this line.

Code:

Method (_CRS, 0, NotSerialized)
            {
                If (OSFL ())
                {
                    Return (Zero)
                }
                Else
                {
                    Return (LCRO (^^PCI0.IMAP.PR0E))
                }
            }

The compiler returns information about invalid object type: it's ZERO while Buffer is required. Let's change Zero to Buffer (Zero) {} then.

This is how this part will look after modification:

Code:

Method (_CRS, 0, NotSerialized)
            {
                If (OSFL ())
                {
                    Return (Buffer (Zero) {})
                }
                Else
                {
                    Return (LCRO (^^PCI0.IMAP.PR0E))
                }
            }

One error left. Compile your DSDT by dragging your .dsl file on iASLMe icon and copy the log, then search for "error" again. In my case, the last error was:

Code:

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  6265:            Name (_HID, "pnp0c14")
Error    4124 -                                                                Non-hex letters must be upper case ^  (pnp0c14)

Again, we go to the line where the error occurs:

Code:

Name (_HID, "pnp0c14")
This time it's even easier to fix - we clearly can see that the compiler tells us to change "pnp0c14" to "PNP0C14" - do it then :)

Code:

Name (_HID, "PNP0C14")
Our DSDT is free of errors now. If you don't care about warnings and remark - you can move to the next step, otherwise - please read on...

man_of_the_oak 08-21-2011 11:41 PM

What is left is to get rid of 42 warnings and one remark. Let's have a look at the warnings:

Code:

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  2980:                    Method (ADVD, 0, NotSerialized)
Warning  1088 -                                                              Not all control paths return a value ^  (ADVD)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5709:                            If (LOr (MP0P (Local6), MP1P (Local6)))
Warning  1093 -                                                                Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5709:                            If (LOr (MP0P (Local6), MP1P (Local6)))
Warning  1093 -                                                                Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5711:                                Multiply (MCRS (Local6), 0x08000000, BF0F)
Warning  1093 -                                                                    Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5713:                                If (MPCR (Local6))
Warning  1093 -                                                              Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5715:                                    If (MP0P (Local6))
Warning  1093 -                                                                  Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5717:                                        If (MP1P (Local6))
Warning  1093 -                                                                      Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5728:                                If (MP0P (Local6))
Warning  1093 -                                                              Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5730:                                    Store (MP0N (Local6), Local5)
Warning  1093 -                                                                      Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5734:                                    If (MP1P (Local6))
Warning  1093 -                                                                  Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5736:                                        Store (MP1N (Local6), Local5)
Warning  1093 -                                                                          Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5740:                                If (LGreater (BNKN, MCDB (Local5)))
Warning  1093 -                                                                        Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5742:                                    Store (MCDB (Local5), BNKN)
Warning  1093 -                                                                      Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5745:                                If (LLess (BNKX, MCDB (Local5)))
Warning  1093 -                                                                      Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5747:                                    Store (MCDB (Local5), BNKX)
Warning  1093 -                                                                      Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5750:                                If (LGreater (COLN, MCDC (Local5)))
Warning  1093 -                                                                        Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5752:                                    Store (MCDC (Local5), COLN)
Warning  1093 -                                                                      Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5755:                                If (LLess (COLX, MCDC (Local5)))
Warning  1093 -                                                                      Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5757:                                    Store (MCDC (Local5), COLX)
Warning  1093 -                                                                      Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5798:            Method (MP0P, 1, NotSerialized)
Warning  1088 -                                                      Not all control paths return a value ^  (MP0P)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5826:            Method (MP1P, 1, NotSerialized)
Warning  1088 -                                                      Not all control paths return a value ^  (MP1P)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5854:            Method (MPCR, 1, NotSerialized)
Warning  1088 -                                                      Not all control paths return a value ^  (MPCR)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5882:            Method (MP0N, 1, NotSerialized)
Warning  1088 -                                                      Not all control paths return a value ^  (MP0N)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5910:            Method (MP1N, 1, NotSerialized)
Warning  1088 -                                                      Not all control paths return a value ^  (MP1N)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5938:            Method (MCRB, 1, NotSerialized)
Warning  1088 -                                                      Not all control paths return a value ^  (MCRB)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5966:            Method (MCRS, 1, NotSerialized)
Warning  1088 -                                                      Not all control paths return a value ^  (MCRS)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  5994:            Method (MCDB, 1, NotSerialized)
Warning  1088 -                                                      Not all control paths return a value ^  (MCDB)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  6017:            Method (MCDC, 1, NotSerialized)
Warning  1088 -                                                      Not all control paths return a value ^  (MCDC)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  6295:            Method (WMNV, 3, NotSerialized)
Warning  1088 -                                                      Not all control paths return a value ^  (WMNV)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  7136:            Acquire (MUTE, 0x03E8)
Warning  1105 -                                      Result is not used, possible operator timeout will be missed ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  7150:            Acquire (MUTE, 0x03E8)
Warning  1105 -                                      Result is not used, possible operator timeout will be missed ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  7165:            Acquire (MUTE, 0x03E8)
Warning  1105 -                                      Result is not used, possible operator timeout will be missed ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  7180:            Acquire (MUTE, 0x0FFF)
Warning  1105 -                                      Result is not used, possible operator timeout will be missed ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  7194:            Acquire (MUTE, 0x03E8)
Warning  1105 -                                      Result is not used, possible operator timeout will be missed ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  7209:            Acquire (MUTE, 0x03E8)
Warning  1105 -                                      Result is not used, possible operator timeout will be missed ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  7224:            Acquire (MUTE, 0x03E8)
Warning  1105 -                                      Result is not used, possible operator timeout will be missed ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  8970:            Return (One)
Warning  1128 -                                                Reserved method should not return a value ^  (_Q0E)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  9001:            Return (One)
Warning  1128 -                                                Reserved method should not return a value ^  (_Q0F)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  10256:            Method (GMLE, 1, Serialized)
Warning  1088 -                                                      Not all control paths return a value ^  (GMLE)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  10269:            Method (SMLE, 1, Serialized)
Warning  1088 -                                                      Not all control paths return a value ^  (SMLE)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  10289:            Method (WLLC, 1, NotSerialized)
Warning  1088 -                                                      Not all control paths return a value ^  (WLLC)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  10946:                Return (\_SB.PCI0.IXVE.IGPU.ADVD ())
Warning  1093 -                                                                      Called method may not always return a value ^

Firstly, we have to take care of all Not all control paths return a value warnings. I will show you an example which is clear enough to give you an idea on how to work with the rest.

Code:

Method (MP0P, 1, NotSerialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Return (P0P0)
                }

                If (LEqual (Arg0, One))
                {
                    Return (P0P1)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (P0P2)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Return (P0P3)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Return (P0P4)
                }
            }

In general - at the end of the part where warning occurs, we have to add "Return (Zero)":

Code:

Method (MP0P, 1, NotSerialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Return (P0P0)
                }

                If (LEqual (Arg0, One))
                {
                    Return (P0P1)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (P0P2)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Return (P0P3)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Return (P0P4)
                }
                    Return (Zero)
            }

When we are done with all warnings of this type, we go straight to "Reserved method should not return a value". Again - I am going to show you an example:

Code:

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl  8970:            Return (One)
Warning  1128 -                                                Reserved method should not return a value ^  (_Q0E)

Code:

Return (One)
One of my warnings is connected with this line. It's obvious that we simply have to remove it. It's the easiest way to return nothing :p

To finish with all warnings we also have to take care of these:

Code:

Acquire (MUTE, 0x03E8)
Warning  1105 -                            Result is not used, possible operator timeout will be missed ^

The fix is very easy (again!). Simply change all Acquire (MUTE, 0x03E8) to Acquire (MUTE, 0xFFFF).

If you are still reading this, you must be a pedant-type, just like me... let's move to remark then :p

Code:

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl    159:        Name (_T_0, Zero)
Remark  5111 -                                                      Use of compiler reserved name ^  (_T_0)

Find all "_T_0" within whole DSDT and replace them to "T_0". Congrats! Your DSDT should compile with this result:

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks

4. DSDT modifying

DTGP method

Before:

Code:

(...)
DefinitionBlock ("DSDT.aml", "DSDT", 1, "K50IN", "K50IN000", 0x00000000)
{
    Scope (_PR)
    {
        Processor (P001, 0x01, 0x00004010, 0x06) {}
        Alias (P001, CPU0)
    }

    Scope (_PR)
    {
        Processor (P002, 0x02, 0x00004010, 0x06) {}
        Alias (P002, CPU1)
    }

    Scope (_PR)
    {
        Processor (P003, 0x03, 0x00004010, 0x06) {}
        Alias (P003, CPU2)
    }
 (...)

After:

Code:

(...)
DefinitionBlock ("DSDT.aml", "DSDT", 1, "K50IN", "K50IN000", 0x00000000)
{
    Method (DTGP, 5, NotSerialized)
    {
        If (LEqual (Arg0, Buffer (0x10)
                {
                    /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                    /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                }))
        {
            If (LEqual (Arg1, One))
            {
                If (LEqual (Arg2, Zero))
                {
                    Store (Buffer (One)
                        {
                            0x03
                        }, Arg4)
                    Return (One)
                }

                If (LEqual (Arg2, One))
                {
                    Return (One)
                }
            }
        }

        Store (Buffer (One)
            {
                0x00
            }, Arg4)
        Return (Zero)
    }
    Scope (_PR)
    {
        Processor (P001, 0x01, 0x00004010, 0x06) {}
        Alias (P001, CPU0)
    }

    Scope (_PR)
    {
        Processor (P002, 0x02, 0x00004010, 0x06) {}
        Alias (P002, CPU1)
    }

    Scope (_PR)
    {
        Processor (P003, 0x03, 0x00004010, 0x06) {}
        Alias (P003, CPU2)
    } (...)

Deleting Aliases:

Before:

Code:

(...)
Scope (_PR)
    {
        Processor (P001, 0x01, 0x00004010, 0x06) {}
        Alias (P001, CPU0)
    }

    Scope (_PR)
    {
        Processor (P002, 0x02, 0x00004010, 0x06) {}
        Alias (P002, CPU1)
    }

    Scope (_PR)
    {
        Processor (P003, 0x03, 0x00004010, 0x06) {}
        Alias (P003, CPU2)
    }

    Scope (_PR)
    {
        Processor (P004, 0x04, 0x00004010, 0x06) {}
        Alias (P004, CPU3)
    }
(...)

After:

Code:

(...)
Scope (_PR)
    {
        Processor (P001, 0x01, 0x00004010, 0x06) {}
        Processor (P002, 0x02, 0x00004010, 0x06) {}
        Processor (P003, 0x03, 0x00004010, 0x06) {}
        Processor (P004, 0x04, 0x00004010, 0x06) {}
    }(...)

We also have to change CPU0->P001, CPU1->P002, CPU2->P003 and CPU3->P004 within whole DSDT!

OS detection

Before:

Code:

(...)
Method (OSYS, 0, NotSerialized)
    {
        Store (0x10, Local0)
        If (CondRefOf (_OSI, Local1))
        {
            If (_OSI ("Windows 2000"))
            {
                Store (0x12, Local0)
            }

            If (_OSI ("Windows 2001"))
            {
                Store (0x13, Local0)
            }

            If (_OSI ("Windows 2001 SP1"))
            {
                Store (0x13, Local0)
            }

            If (_OSI ("Windows 2001 SP2"))
            {
                Store (0x13, Local0)
            }

            If (_OSI ("Windows 2001.1"))
            {
                Store (0x14, Local0)
            }

            If (_OSI ("Windows 2001.1 SP1"))
            {
                Store (0x14, Local0)
            }

            If (_OSI ("Windows 2006"))
            {
                Store (0x15, Local0)
            }
        }(...)

After:

Code:

(...)
Method (OSYS, 0, NotSerialized)
    {
        Store (0x10, Local0)
        If (CondRefOf (_OSI, Local1))
        {
            If (_OSI ("Windows 2000"))
            {
                Store (0x12, Local0)
            }

            If (_OSI ("Windows 2001"))
            {
                Store (0x13, Local0)
            }

            If (_OSI ("Windows 2001 SP1"))
            {
                Store (0x13, Local0)
            }

            If (_OSI ("Windows 2001 SP2"))
            {
                Store (0x13, Local0)
            }

            If (_OSI ("Windows 2001.1"))
            {
                Store (0x14, Local0)
            }

            If (_OSI ("Windows 2001.1 SP1"))
            {
                Store (0x14, Local0)
            }

            If (_OSI ("Windows 2006"))
            {
                Store (0x15, Local0)
            }
           
            If (_OSI ("Darwin"))
            {
                Store (0x15, Local0)
            }
        }(...)


man_of_the_oak 08-21-2011 11:51 PM

PIC

Before:

Code:

(...)
Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0020,            // Range Minimum
                            0x0020,            // Range Maximum
                            0x00,              // Alignment
                            0x02,              // Length
                            )
                        IO (Decode16,
                            0x00A0,            // Range Minimum
                            0x00A0,            // Range Maximum
                            0x00,              // Alignment
                            0x02,              // Length
                            )
                        IRQNoFlags ()
                            {2}
                    })
                }(...)

After:

Code:

(...)
Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0020,            // Range Minimum
                            0x0020,            // Range Maximum
                            0x00,              // Alignment
                            0x02,              // Length
                            )
                        IO (Decode16,
                            0x00A0,            // Range Minimum
                            0x00A0,            // Range Maximum
                            0x00,              // Alignment
                            0x02,              // Length
                            )
                    })
                }(...)

Enabling SMBus

Before:

Code:

(...)
Device (SMB0)
            {
                Name (_ADR, 0x00030002)
                OperationRegion (SMAD, PCI_Config, 0x20, 0x08)
                Field (SMAD, DWordAcc, NoLock, Preserve)
                {
                    SB1,    32,
                    SB2,    32
                }

                OperationRegion (SMCF, PCI_Config, 0x48, 0x10)
                Field (SMCF, DWordAcc, NoLock, Preserve)
                {
                    SMPM,  4,
                    SMT1,  28,
                    SMT2,  32
                }(...)

After:

Code:

(...)
Device (SMB0)
            {
                Name (_ADR, 0x00030002)
                Device (BUS0)
                {
                    Name (_CID, "smbus")
                    Name (_ADR, Zero)
                    Device (DVL0)
                    {
                        Name (_ADR, 0x57)
                        Name (_CID, "diagsvault")
                    }
                }

                OperationRegion (SMAD, PCI_Config, 0x20, 0x08)
                Field (SMAD, DWordAcc, NoLock, Preserve)
                {
                    SB1,    32,
                    SB2,    32
                }

                OperationRegion (SMCF, PCI_Config, 0x48, 0x10)
                Field (SMCF, DWordAcc, NoLock, Preserve)
                {
                    SMPM,  4,
                    SMT1,  28,
                    SMT2,  32
                }(...)

Audio injection

Before:

Code:

(...)
Device (HDAC)
            {
                Name (_ADR, 0x00080000)
                Name (SCID, Zero)
                Name (SACW, Zero)
                Method (_PS0, 0, NotSerialized)
                {
                    If (SCID)
                    {
                        Store (Zero, PMDS)
                        Store (Zero, PMEN)
                        Store (SCID, CDID)
                        Store (SACW, AOCW)
                    }
                }

                Method (_PS3, 0, NotSerialized)
                {
                    Store (AOCW, SACW)
                    Store (CDID, SCID)
                    Store (One, PMST)
                    Store (0x03, PMDS)
                    Store (One, PMEN)
                }(...)

After:

Code:

(...)
Device (HDEF)
            {
                Name (_ADR, 0x00080000)
                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x08)
                        {
                            "subsystem-id",
                            Buffer (0x04)
                            {
                                0xF3, 0x16, 0x00, 0x00
                            },

                            "subsystem-vendor-id",
                            Buffer (0x04)
                            {
                                0x43, 0x10, 0x00, 0x00
                            },

                            "layout-id",
                            Buffer (0x04)
                            {
                                0x0C, 0x00, 0x00, 0x00
                            },

                            "PinConfigurations",
                            Buffer (Zero) {}
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }
                Name (SCID, Zero)
                Name (SACW, Zero)
                Method (_PS0, 0, NotSerialized)
                {
                    If (SCID)
                    {
                        Store (Zero, PMDS)
                        Store (Zero, PMEN)
                        Store (SCID, CDID)
                        Store (SACW, AOCW)
                    }
                }

                Method (_PS3, 0, NotSerialized)
                {
                    Store (AOCW, SACW)
                    Store (CDID, SCID)
                    Store (One, PMST)
                    Store (0x03, PMDS)
                    Store (One, PMEN)
                }(...)

Cosmetic fix injecting graphics card information (without it in System Profiler it will be called "Unknown", new Chameleon version fixes the problem but it doesn't show RAM information properly, so I'd rather use the one from my archive and add this fix to DSDT):

Before:

Code:

(...)
Name (DONE, Zero)
                    Name (DOSF, One)
                    Name (BRNC, Zero)
                    Method (_INI, 0, NotSerialized)
                    {
                        GETD ()
                    }

                    Method (_DOS, 1, NotSerialized)
                    {
                        And (Arg0, 0x03, DOSF)
                        Store (ShiftRight (Arg0, 0x02), BRNC)
                        And (BRNC, One, BRNC)
                    }(...)

After:

Code:

(...)
Name (DONE, Zero)
                    Name (DOSF, One)
                    Name (BRNC, Zero)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package ()
                            {
                                "@0,compatible",
                                Buffer (0x0B)
                                {
                                    "NVDA,NVMac"
                                },

                                "@0,device_type",
                                Buffer (0x08)
                                {
                                    "display"
                                },

                                "@0,name",
                                Buffer (0x0F)
                                {
                                    "NVDA,Display-A"
                                },

                                "@1,compatible",
                                Buffer (0x0B)
                                {
                                    "NVDA,NVMac"
                                },

                                "@1,device_type",
                                Buffer (0x08)
                                {
                                    "display"
                                },

                                "@1,name",
                                Buffer (0x0F)
                                {
                                    "NVDA,Display-B"
                                },

                                "device_type",
                                Buffer (0x0C)
                                {
                                    "NVDA,Parent"
                                },

                                "model",
                                Buffer ()
                                {
                                    "NVIDIA GeForce G102M"
                                },

                                "rom-revision",
                                Buffer ()
                                {
                                    "62.79.78.00.06"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                    Method (_INI, 0, NotSerialized)
                    {
                        GETD ()
                    }

                    Method (_DOS, 1, NotSerialized)
                    {
                        And (Arg0, 0x03, DOSF)
                        Store (ShiftRight (Arg0, 0x02), BRNC)
                        And (BRNC, One, BRNC)
                    }(...)

Time Machine fix

Before:

Code:

(...)
Device (P0P6)
            {
                Name (_ADR, 0x00150000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }(...)

After:

Code:

(...)
Device (P0P6)
            {
                Name (_ADR, 0x00150000)
                Device (LAN)
                {
                    Name (_ADR, Zero)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x04)
                            {
                                "built-in",
                                Buffer (One)
                                {
                                    0x01
                                },
                                  "name",
                                Buffer (0x24)
                                {
                                      "Realtek RTL8111/8168B PCI-E Gigabit"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }
               
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }(...)

OS detection 2

Before:

Code:

(...)
Method (MSOS, 0, NotSerialized)
        {
            If (CondRefOf (_OSI, Local0))
            {
                If (_OSI ("Windows 2001"))
                {
                    Store (OSXP, OSFG)
                }

                If (_OSI ("Windows 2001 SP1"))
                {
                    Store (OSXP, OSFG)
                }

                If (_OSI ("Windows 2001 SP2"))
                {
                    Store (OSXP, OSFG)
                }

                If (_OSI ("Windows 2006"))
                {
                    Store (OSVT, OSFG)
                }

                If (_OSI ("Linux"))
                {
                    Store (OSEG, OSFG)
                }

                If (_OSI ("Windows 2009"))
                {
                    Store (OSW7, OSFG)
                }

                Return (OSFG)
            }(...)

After:

Code:

(...)
Method (MSOS, 0, NotSerialized)
        {
            If (CondRefOf (_OSI, Local0))
            {
                If (_OSI ("Windows 2001"))
                {
                    Store (OSXP, OSFG)
                }

                If (_OSI ("Windows 2001 SP1"))
                {
                    Store (OSXP, OSFG)
                }

                If (_OSI ("Windows 2001 SP2"))
                {
                    Store (OSXP, OSFG)
                }

                If (_OSI ("Windows 2006"))
                {
                    Store (OSVT, OSFG)
                }
               
                If (_OSI ("Darwin"))
                {
                    Store (OSVT, OSFG)
                }

                If (_OSI ("Linux"))
                {
                    Store (OSEG, OSFG)
                }

                If (_OSI ("Windows 2009"))
                {
                    Store (OSW7, OSFG)
                }

                Return (OSFG)
            }(...)

LID sleep fix (enables sleep after closing lid):

Before:

Code:

(...)
Device (LID)
        {
            Name (_HID, EisaId ("PNP0C0D"))
            Method (_LID, 0, NotSerialized)
            {
                Store (One, Local0)
                ^^PCI0.SBRG.EC0.DL9F ()
                Store (^^PCI0.SBRG.EC0.RPIN (0x06), Local0)
                ^^PCI0.SBRG.EC0.DL9F ()
                If (LEqual (Local0, Ones))
                {
                    Store (One, Local0)
                }

                Return (Local0)
            }
        }(...)

After:

Code:

(...)
Device (LID)
        {
            Name (_HID, EisaId ("PNP0C0D"))
            Name (LIDS, One)
            Method (_LID, 0, NotSerialized)
            {
                Store (^^PCI0.SBRG.EC0.RPIN (0x06), LIDS)
                XOr (LIDS, One, Local0)
                If (Local0)
                {
                    Notify (SLPB, 0x80)
                }

                Return (LIDS)
            }
        }(...)

WLAN injection

Before:

Code:

(...)
Device (P0P7)
            {
                Name (_ADR, 0x00160000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR07)
                    }

                    Return (PR07)
                }
            }(...)

After:

Code:

(...)
Device (P0P7)
            {
                Name (_ADR, 0x00160000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Device (ARPT)
                {
                    Name (_ADR, Zero)
                    Name (_PRW, Package (0x02)
                    {
                        0x0B,
                        0x05
                    })
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x0C)
                            {
                                "AAPL,slot-name",
                                Buffer (0x08)
                                {
                                    "AirPort"
                                },

                                "device-id",
                                Unicode ("*"),
                                "device_type",
                                Buffer (0x08)
                                {
                                    "AirPort"
                                },

                                "model",
                                Buffer (0x34)
                                {
                                    "Atheros 9285 8802.11 b/g/n Wireless Network Adapter"
                                },

                                "subsystem-id",
                                Buffer (0x04)
                                {
                                    0x89, 0x10, 0x00, 0x00
                                },

                                "subsystem-vendor-id",
                                Buffer (0x04)
                                {
                                    0x3B, 0x1A, 0x00, 0x00
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR07)
                    }

                    Return (PR07)
                }
            }(...)

In my DSDT, I have also renamed the following names to look it more like in MacBook Pro's. I have to remind you that it isn't like: replace all from XX->XY. APIC isn't the same as PIC e.g.!:

PIC -> IPIC
DMAD -> DMAC
TMR -> TIMR
RTC0 -> RTC
COPR -> MATH
OMSC -> LDRC
SBRG -> LPCB
USB0 -> OHC1
USB2 -> EHC1
RHUB -> HUB1

flip360 08-22-2011 12:03 AM

NICELY DONE man_of_the_oak, Congrats :) cant find the archive with the files?
also can i extract my fresh DSDT with DSDTSE in OSX?

Cheers

man_of_the_oak 08-22-2011 12:14 AM

5. Post-configuration part II

So... we've got our own DSDT, let's use some of its potential and delete NullCPUPowerManagement from our Extra finally.
In the main directory of Extra (where smbios.plist is) paste compiled DSDT with .aml extension. Then we put my audio fix - LegacyHDA_ALC662-v.1 and AnyCardReader to Extra/KextStore.

The next step is replacing 3 files in System/Library/Extensions (one of them is a cosmetic fix - after updating to 10.6.8, our controller is no longer identified as MCP79 AHCI even though the part regarding MCP79 is exactly the same in AppleAHCIPort 10.6.7 and 10.6.8 (our dev id is still there...), I wasn't able to find any other way to fix the issue than replacing new AppleAHCIPort to the one from Mac OS X 10.6.7... well... I am not a real fan of rollbacks but when there is no alternative and the system isn't going to be updated anymore...):

AppleAHCIPort, AppleHDA, IOAudioFamily

Why do we have to replace AppleHDA? Unfortunately, after waking up from sleep - our audio was broken... patched IOAudioFamily fixes the problem but it isn't developed since Mac OS X 10.6.2 and it doesn't work not only with Mac OS X 10.6.8 (what is obvious since AppleHDA has got a new structure) but also with 10.6.7. I am not able to create an update to this kext so we have to use older AppleHDA until I learn how to do this or someone else creates one.

Finally, we can make our bootloader look nicer. Paste my Themes folder to Extra and use Kext Wizard to rebuild cache, fix permissions etc. (in general - check all options). Be patient - it takes a while!

Reboot with -v flag to know if something goes wrong - it's the last time you have to see this ugly screen, I promise :p

6. Fixing "Your device or computer could not be verified. Contact support for assistance" error while logging into App Store

It occurs when your WLAN in on en0 instead of LAN. To fix this we have to delete NetworkInterfaces.plist from:

/Library/Preferences/SystemConfiguration

Then we have to reboot, go to network preferences and delete both inferfaces. Re-add them in this order:

- Ethernet
- AirPort

7. Fixing a problem with webcam

As you've probably observed - our webcam is working OOTB but the video is upside down. iGlasses provides an easy fix to this. After installing, simply turn on PhotoBooth and use "Rotate" option to set the video into proper position, then click on "Default" to load this setting automatically.

This app works with most applications I know, for example: Skype, Messenger for Mac or PhotoBooth.

8. Creating shortcuts without Fn

Unfortunately, we can't use Fn keys on Mac OS X. Thanks to ControllerMate we are able to create our own shortcuts to system functions. I am going to show you how to create such on example of volume control:

After first run, we will see a window like the one below:


Check "Start Page", then in "Palette" windows, on the right side of the screen, find "Apple Keyboard":


Double click on its icon, you will see a list like this:


After we press any key on our keyboard, a "diode" near this key on the list is going to blink. In this example we are going to set our volume control keys this way:

F9 - mute
F10 - volume down
F11 - volume up

Before we do so, we have to make sure that none of the keys is being used by system (for example - F12 is a default shortcut for ejecting CD/DVD, that's why I had to leave it, even though on our keyboard, it's a part of Fn for volume control).
We can check it in "System preferences->Keyboard->Shortcuts". Uncheck all shortcuts connected with F9, F10 and F11:


Then, go back to ControllerMate and drag every key (F9, F10 and F11) from "Palette to the main window of the app.

The next step is to choose "Windows->Keystrokes Palette". From this window, drag all three icons representing volume control to the main window of ControllerMate.


All that is left is to create the shortcuts finally. We do so by dragging OFF icon from key to its function. Final effect of my work with this app is visible below:


Choose "File->Save" and quit the application - shortcuts should be working now :) (ControllerMate doesn't have to work all the time, it has its own helper app that runs in background)

man_of_the_oak 08-22-2011 12:42 AM

9. Express your gratitude by writing a few words on effects of working with this tutorial ;)


Needed files:

Code:

http://dl.dropbox.com/u/20095030/asus_k50in_data.zip

flip360 08-22-2011 12:55 AM

very nice and detailed tutorial :) Thanks buddy :)
how do we put this on first page?
one thing though i checked with the dsdt from Ronovar and i am able to shutdown properly with 10.6.8 and Lion
we have to generate a dsdt for ourselves, right cause i dont see any in your files archive? :)

cheers

man_of_the_oak 08-22-2011 01:04 AM

Quote:

Originally Posted by flip360 (Post 55003)
very nice and detailed tutorial :) how do we put this on first page?
one thing though i checked with the dsdt from Ronovar and i am able to shutdown properly with 10.6.8

cheers

Thanks! I hope you will make some use of it :) About putting on the first page... I have no idea :$ Maybe you can put links to each post there? Better than nothing...

I would do it this way:



btw. You should be able to shutdown without anything more than adding "Darwin" to OS detection ;) + Yes, you have to create you own DSDT. Simply follow the tutorial, it's everything there~

binhpv 08-22-2011 02:59 AM

Quote:

Originally Posted by man_of_the_oak (Post 55004)
Thanks! I hope you will make some use of it :) About putting on the first page... I have no idea :$ Maybe you can put links to each post there? Better than nothing...

I would do it this way:



btw. You should be able to shutdown without anything more than adding "Darwin" to OS detection ;) + Yes, you have to create you own DSDT. Simply follow the tutorial, it's everything there~


So this tuto is for installing 10.6.8 and not Lion ???

man_of_the_oak 08-22-2011 10:11 AM

Yup, I don't care about Lion since it's buggy as for now. Anyway, if you create DSDT thanks to this tutorial and take the rest of kexts - everything but battery status is going to work under Lion.

flip360 08-22-2011 10:57 AM

man_of_the_oak is right, Lion is buggy atm and the procedure goes for lion install also :)

Cheers

man_of_the_oak 08-22-2011 11:10 AM

Ok flip360, put the tutorial on the first page if you can and try it yourself :p I'm eager to know how will you like it~

flip360 08-22-2011 11:22 AM

Quote:

Originally Posted by man_of_the_oak (Post 55010)
Ok flip360, put the tutorial on the first page if you can and try it yourself :p I'm eager to know how will you like it~

i will man_of_the_oak, first off i like it very much,i tried making my own dsdt but...:P 103 errors and so on...
anyway the LegacyAppleHDA kext u supplied doesnt work for me, the audio is there in sys profiler but no icon and no audio output, everything else seems working ok with another dsdt i had from before,

cheers

man_of_the_oak 08-22-2011 11:36 AM

Quote:

Originally Posted by flip360 (Post 55011)
i will man_of_the_oak, first off i like it very much,i tried making my own dsdt but...:P 103 errors and so on...
anyway the LegacyAppleHDA kext u supplied doesnt work for me, the audio is there in sys profiler but no icon and no audio output, everything else seems working ok with another dsdt i had from before,

cheers

Did you extract your DSDT using Ubuntu and updated your bios before doing so?

+ my Legacy won't work until you binpatch your AppleHDA and use valid audio injection in DSDT (layout id: 12) or simply go with my tutorial and get audio after sleep with IOAudioFamily and old AppleHDA + DSDT injection. In general - don't use parts of tutorial because there is a high chance it won't work.

+ remember that you have other CPU, so you have to edit SMBIOS a bit! Part about WLAN also isn't for you since you've replaced your card.

flip360 08-22-2011 11:50 AM

Yep i know that, updated to BIOS 223 and i have macbookpro5,3 in my smbios.plist, also the LegacyAppleHDA does work (my bad) even with the other dsdt i have :) no more clicks and plops? that would make me a happy camper :) can i send you my DSDT so you can quickly check it? trying to make your tut for the first page, my BBCode skills are noobish lol

Cheers

man_of_the_oak 08-22-2011 12:03 PM

Quote:

Originally Posted by flip360 (Post 55013)
Yep i know that, updated to BIOS 223 and i have macbookpro5,3 in my smbios.plist, also the LegacyAppleHDA does work (my bad) even with the other dsdt i have :) no more clicks and plops? that would make me a happy camper :) can i send you my DSDT so you can quickly check it? trying to make your tut for the first page, my BBCode skills are noobish lol

Cheers

You have to use MacBookPro5,1, just like in my tutorial.

Yes, I have no clicks and pops etc.

Send me your clean DSDT extracted under Ubuntu and I will have a look. I am not going to work with something extracted using DSDTSE though...

About my tutorial - simply quote my post where I showed you how I would see it and you will get bbcode to put in the first post.

flip360 08-22-2011 12:09 PM

here u go my dsdt, its not extracted from ubunty but it was modified by maldon and sofar works properly: http://www.mediafire.com/?xtc44mzrgm6f5uk
No crack and pops AT LAST!!! Thanks man_of_the_oak :)
i will try posting the tutorial with the links right now :)

Cheers

man_of_the_oak 08-22-2011 12:23 PM

I am not going to modify pre-modified DSDT ;-)

Extract your own DSDT using Ubuntu Live CD and then I will be able to help you with errors, if they really are other than the ones in my tutorial. It seems that you like to do it your own way but it's not the best choice if I state in my tutorial to extract the DSDT from Ubuntu and modify it yourself, until you realise that it's the only good way to get a stable system - you won't be satisfied, trust me ;)

mondet 08-22-2011 12:25 PM

1 Attachment(s)
Quote:

Originally Posted by man_of_the_oak (Post 55014)
You have to use MacBookPro5,1, just like in my tutorial.

Yes, I have no clicks and pops etc.

Send me your clean DSDT extracted under Ubuntu and I will have a look. I am not going to work with something extracted using DSDTSE though...

About my tutorial - simply quote my post where I showed you how I would see it and you will get bbcode to put in the first post.

to man_of_the_oak,

I was followed your steps with 10.7.1, but unfortunately after I finished everything and restart, I got Kernel Panic... I dont know what I did wrong... now I role back to 10.6.7 and now using your latest kexts family, the click sound was gone... Perfect!!:p but I still need to upgrade to 10.7 do you have any idea?

FYI,while I upgrade from 10.6.7 to 10.7, I use multibeast to modify SMBIOS to MacBookPro8,1 'cos the old one of mine is like yours, MacBookPro5,1 but it show up "This version of Mac OS X 10.7 cannot be installed on this computer"

Could you please help me?

man_of_the_oak 08-22-2011 12:31 PM

I am sorry, I can't provide any support for Lion. I don't like the system at the moment and all I can do is to recommend to install Mac OS X 10.6.8 using my tutorial. It will work perfectly...

When Lion is enough stable for me, I will spend some time to check it out but as for now - let's stick to 10.6.8.

btw. I don't like tonymac's (aka thief) works either, so please simply try to use what I give in my tutorial ;)

flip360 08-22-2011 12:34 PM

Quote:

Originally Posted by man_of_the_oak (Post 55016)
I am not going to modify pre-modified DSDT ;-)

Extract your own DSDT using Ubuntu Live CD and then I will be able to help you with errors, if they really are other than the ones in my tutorial. It seems that you like to do it your own way but it's not the best choice if I state in my tutorial to extract the DSDT from Ubuntu and modify it yourself, until you realise that it's the only good way to get a stable system - you won't be satisfied, trust me ;)

Cool :) i will try and extract my DSDT from ubunty and send you the same :)
Also agreed on Lion, too buggy atm 10.6.8 is working flawlessly,
Check out the first page,

Cheers

mondet 08-22-2011 01:01 PM

Quote:

Originally Posted by man_of_the_oak (Post 55018)
I am sorry, I can't provide any support for Lion. I don't like the system at the moment and all I can do is to recommend to install Mac OS X 10.6.8 using my tutorial. It will work perfectly...

When Lion is enough stable for me, I will spend some time to check it out but as for now - let's stick to 10.6.8.

btw. I don't like tonymac's (aka thief) works either, so please simply try to use what I give in my tutorial ;)

:-* got it ... :D

flip360 08-22-2011 03:20 PM

hey buddy here is a clean ubunty 9.10 extracted dsdt, hope its ok this time around :)
http://www.mediafire.com/?7mu5al5aekkfdbl

Cheers

man_of_the_oak 08-22-2011 03:39 PM

Checked it, it has exactly the same amount of errors, warnings and remarks as mine + they are the same, so simply read the tutorial and edit it.

Code:

Compilation complete. 2 Errors, 42 Warnings, 1 Remarks, 63 Optimizations

flip360 08-22-2011 04:18 PM

Quote:

Originally Posted by man_of_the_oak (Post 55023)
Checked it, it has exactly the same amount of errors, warnings and remarks as mine + they are the same, so simply read the tutorial and edit it.

Code:

Compilation complete. 2 Errors, 42 Warnings, 1 Remarks, 63 Optimizations

i edited it so i have no errors and no remarks :)
i inserted all the fixes except for WLAN (another wifi card), Graphic injection (i like Chameleons Graphic Enabler) and LID (gave me some error; LPCB does not exist or simmilar) and VOILA, a working custom DSDT!!!
thanks for the tutorial man_of_the_oak, really great work,

Cheers

man_of_the_oak 08-22-2011 04:47 PM

Quote:

Originally Posted by flip360 (Post 55024)
i edited it so i have no errors and no remarks :)
i inserted all the fixes except for WLAN (another wifi card), Graphic injection )i like Chameleons Graphic Enabler) and LID (gave me some error; LPCB does not exist or simmilar) and VOILA, a working custom DSDT!!!
thanks for the tutorial man_of_the_oak, really great work,

Cheers

Graphics injection does require Graphics Enabler. I didn't put nvcap there, it's only for inserting information about the card, not for enabling it.

As for LID fix - auch, I must have copied it with my edits (I've changed SBRG to LPCB, so it would look like in MacBook Pro...), let me fix it. Ok, edited - you can apply it now, will work.

flip360 08-22-2011 04:54 PM

Quote:

Originally Posted by man_of_the_oak (Post 55025)
Graphics injection does require Graphics Enabler. I didn't put nvcap there, it's only for inserting information about the card, not for enabling it.

As for LID fix - auch, I must have copied it with my edits (I've changed SBRG to LPCB, so it would look like in MacBook Pro...), let me fix it. Ok, edited - you can apply it now, will work.

LOL no harm done buddy :) LID Fixed! :P
so u saying that even if i insert the GFX fix in the DSDT i will still have to use Chameleons GE or some other GE?
when i plugged in the cord from my speakers (external) i could still hear the plop (ongoing loop) until i played whatever other sound and its gone, any info?

Thanks :)

man_of_the_oak 08-22-2011 05:01 PM

Quote:

Originally Posted by flip360 (Post 55026)
LOL no harm done buddy :) LID Fixed! :P
so u saying that even if i insert the GFX fix in the DSDT i will still have to use Chameleons GE or some other GE?
when i plugged in the cord from my speakers (external) i could still hear the plop (ongoing loop) until i played whatever other sound and its gone, any info?

Thanks :)

Yup, it is only for inserting info about the card, not for enabling it.

About noises - I cannot help you other than saying - clean install, without using anything else than my work. I have no problems here, so...

flip360 08-22-2011 05:57 PM

Quote:

Originally Posted by man_of_the_oak (Post 55027)
Yup, it is only for inserting info about the card, not for enabling it.

About noises - I cannot help you other than saying - clean install, without using anything else than my work. I have no problems here, so...

Thanks for all your work man_of_the_oak, i have even maybe learned a thing or two about dsdt editing :P
My system profiler cannot find the sdcard reader with the kext supplied, any info on that?

man_of_the_oak 08-22-2011 07:26 PM

Quote:

Originally Posted by flip360 (Post 55028)
Thanks for all your work man_of_the_oak, i have even maybe learned a thing or two about dsdt editing :P
My system profiler cannot find the sdcard reader with the kext supplied, any info on that?

Yup, put SD card ;]

flip360 08-22-2011 08:06 PM

Quote:

Originally Posted by man_of_the_oak (Post 55029)
Yup, put SD card ;]

LOL :D Thanks
what did you use for modyfing the icons on the taskbar?

cheers