Jump to content
soumaxetuirk

GUIDE: How to Fix Brightness hotkeys in DSDT

103 posts in this topic

Recommended Posts

If you have a working Brightness Slider and you might be using Brightness slider or manual hotkeys to control brightness then this guide may help you to use your Native hotkeys of laptop.

 

(All the Credits goes to @RehabMan  :thumbsup_anim:   For OS-X-ACPI-Debug Kext and DSDT Patches.)

 

 

This step assumes that you are using RehabMan's VoodooPS2Controller

  1. Install the kext: https://github.com/RehabMan/OS-X-ACPI-Debug
  2. Open MaciASL and click on patch.(Add rehab man repo)
  3. Apply "Add DSDT Debug Methods" and "Instrument EC Queries" that are under Brightness Fix.
  4. Save the DSDT and restart
  5. Look in Syslog as you press the key corresponding to brightness to determine which _QXX methods handle the keys
  6. Then patch DSDT:
into method label _Q1D replace_content
begin
// Brightness Down\n
Notify(\_SB.PCI0.LPCB.PS2M, 0x0205)\n
Notify(\_SB.PCI0.LPCB.PS2M, 0x0285)\n
end;
into method label _Q1C replace_content
begin
// Brightness Up\n
Notify(\_SB.PCI0.LPCB.PS2M, 0x0206)\n
Notify(\_SB.PCI0.LPCB.PS2M, 0x0286)\n
end;

Change the variable _Q1D/_Q1C as per the log. 

7. Try compiling and check if it generates errors
8. If it does, then change the PS2M to PS2X according to the one found in your DSDT
9. Save and place the compiled DSDT.
10. Now you should see that you have your corresponding keys to change your brightness smile_osx.png

 

 

:) FOR  more detail and Queries,Check Out original Post of @RehabMan Here;

http://www.insanelym...18#entry1997112

Get Latest Version of  OS-X-ACPI-Debug kext here:

https://bitbucket.org/RehabMan/os-x-acpi-debug/downloads

Share this post


Link to post
Share on other sites
Advertisement

Yeah! This works for me perfectly.

 

The only change was:

  1. PS2M to PS2K - according to my value found in my DSDT.
  2. The _Q1D/_Q1C to _Q11/_Q12
  3. And i remove the old version of VoodooPS2Controller and install VoodooPS2Controller 1.8.14 version.
  4. Remove AppleACPIPS2Nub too.

 

Repair the disk permissions and rebuild the cache, and tadaaa! My native brightness keys works now like a charm.

 

Thank you very much @RehabMan and @soumaxetuirk  ;)

PS: I will translate this for Portuguese forum! Is awesome  :D

Share this post


Link to post
Share on other sites

This step assumes that you are using RehabMan's [/size]VoodooPS2Controller

  • Install the kext: https://github.com/RehabMan/OS-X-ACPI-Debug
  • Open MaciASL and click on patch.(Add rehab man repo)
  • Apply "Add DSDT Debug Methods" and "Instrument EC Queries" that are under Brightness Fix.
  • Save the DSDT and restart
  • Look in Syslog as you press the key corresponding to brightness to determine which _QXX methods handle the keys
  • Then patch DSDT:

into method label _Q1D replace_content
begin
// Brightness Down\n
Notify(\_SB.PCI0.LPCB.PS2M, 0x0205)\n
Notify(\_SB.PCI0.LPCB.PS2M, 0x0285)\n
end;
into method label _Q1C replace_content
begin
// Brightness Up\n
Notify(\_SB.PCI0.LPCB.PS2M, 0x0206)\n
Notify(\_SB.PCI0.LPCB.PS2M, 0x0286)\n
end;
Change the variable _Q[/size]1D[/size]/_Q[/size]1C[/size] as per the log. [/size]

 

7. Try compiling and check if it generates errors[/size]

8. If it does, then change the [/size]PS2M to PS2X[/size] according to the one found in your DSDT[/size]

9. Save and place the compiled DSDT.[/size]

10. Now you should see that you have your corresponding keys to change your brightness [/size]smile_osx.png

 

Hmmmm... this guide seems very similar to one I've already written.

Share this post


Link to post
Share on other sites

i am kind of sure its not in this forum.Truly No,because i  searched and asked for years tried many different methods to fix my brightness hotkeys....

atlast when i got some solution from i thought to  write it here..

 

i got from a tutorial 

http://www.tonymacx86.com/yosemite-laptop-support/151708-guide-hp-dv6-7040tx-clover.html

Share this post


Link to post
Share on other sites

i am kind of sure its not in this forum.Truly No,because i  searched and asked for years tried many different methods to fix my brightness hotkeys....

atlast when i got some solution from i thought to  write it here..

 

i got from a tutorial 

http://www.tonymacx86.com/yosemite-laptop-support/151708-guide-hp-dv6-7040tx-clover.html

 

Ok.

 

Thank you for your explanation. Thus, fine by me.

Share this post


Link to post
Share on other sites

Here in our Forum?

 

@soumaxetuirk, If this is true, it would be good to put the source of this topic.

Not on this forum. I find it too much work to maintain my guides in multiple places.

 

But when someone uses another's work, it is customary and respectful to quote the source, even if it is on a different forum. Instead, post #1 reads as if this is the author's own work. I first came up with the EC instrumentation/patching technique when trying to fix the brightness keys on my Lenovo u430.

 

Later, I helped gygabyte666 do the same on his Envy (a laptop I had previously). The conversation starts here: http://www.insanelymac.com/forum/topic/290687-wip-hp-envy-17t-j000-quad-haswell-10851091010/page-18?do=findComment&comment=1997112

 

Note that the details of the technique differ depending on the PS2 driver you're using and what you find out via instrumentation. For example, there are not always two separate methods for each key (in the case of the u430 they are separate, yet the HP Envy shares one method for more than one key). And you'll need to send different codes and ACPIKeyboard.kext if you're using a PS2 driver other than mine. There is more details at my ACPIKeyboard.kext README at github.

Share this post


Link to post
Share on other sites

Both my brightness down key (F2) and my brightness up key (F3) are _Q13.  Here's the DSDT code for it.  Any recommendations for patching?

                    Method (_Q13, 0, NotSerialized)
                    {
                        If (LEqual (HKNO, 0x07))
                        {
                            Store (0x07, P80H)
                            Notify (^^^GFX0.DD02, 0x87)
                            Notify (^^^PEG0.PEGP.DD02, 0x87)
                        }

                        If (LEqual (HKNO, 0x08))
                        {
                            Store (0x08, P80H)
                            Notify (^^^GFX0.DD02, 0x86)
                            Notify (^^^PEG0.PEGP.DD02, 0x86)
                        }

                        If (LAnd (LGreaterEqual (HKNO, 0x13), LLessEqual (HKNO, 0x1E)))
                        {
                            If (LNotEqual (HKNO, 0x13))
                            {
                                ^^^^WMID.WGWE (0x04, Zero)
                            }
                            Else
                            {
                                If (LEqual (HKNO, 0x13))
                                {
                                    If (BTLS)
                                    {
                                        GLSD ()
                                        Store (Zero, WLRF)
                                        Store (Zero, WARF)
                                        GLRS ()
                                        Store (Zero, WLON)
                                        GLSD ()
                                        Store (One, BTOF)
                                        GLRS ()
                                        Store (Zero, BTON)
                                        GLSD ()
                                        Store (Zero, WWRF)
                                        Store (Zero, WAON)
                                        Store (One, WWOF)
                                        Store (Zero, BTLS)
                                        GLRS ()
                                    }
                                    Else
                                    {
                                        If (WLST)
                                        {
                                            GLSD ()
                                            Store (One, WARF)
                                            Store (One, WLRF)
                                            Store (Zero, WLED)
                                            GLRS ()
                                            Store (One, WLON)
                                        }
                                        Else
                                        {
                                            GLSD ()
                                            Store (Zero, WLRF)
                                            Store (Zero, WARF)
                                            Store (One, WLED)
                                            GLRS ()
                                            Store (Zero, WLON)
                                        }

                                        If (BLTH)
                                        {
                                            GLSD ()
                                            Store (Zero, BTOF)
                                            GLRS ()
                                            Store (One, BTON)
                                        }
                                        Else
                                        {
                                            GLSD ()
                                            Store (One, BTOF)
                                            GLRS ()
                                            Store (Zero, BTON)
                                        }

                                        If (WWAN)
                                        {
                                            If (LEqual (BTAP, One))
                                            {
                                                GLSD ()
                                                Store (Zero, WWOF)
                                                Store (One, WAON)
                                                Store (One, WWRF)
                                                GLRS ()
                                            }
                                        }
                                        Else
                                        {
                                            GLSD ()
                                            Store (One, WWOF)
                                            Store (Zero, WWRF)
                                            GLRS ()
                                            Store (Zero, WAON)
                                        }

                                        Store (One, BTLS)
                                    }
                                }
                            }
                        }

                        If (LEqual (HKNO, 0x04))
                        {
                            Notify (GFX0, 0x80)
                        }
                    }

Share this post


Link to post
Share on other sites

Both my brightness down key (F2) and my brightness up key (F3) are _Q13.  Here's the DSDT code for it.  Any recommendations for patching?

                    Method (_Q13, 0, NotSerialized)
                    {
                        If (LEqual (HKNO, 0x07))
                        {
                            Store (0x07, P80H)
                            Notify (^^^GFX0.DD02, 0x87)
                            Notify (^^^PEG0.PEGP.DD02, 0x87)
                        }

                        If (LEqual (HKNO, 0x08))
                        {
                            Store (0x08, P80H)
                            Notify (^^^GFX0.DD02, 0x86)
                            Notify (^^^PEG0.PEGP.DD02, 0x86)
                        }

                        If (LAnd (LGreaterEqual (HKNO, 0x13), LLessEqual (HKNO, 0x1E)))
                        {
                            If (LNotEqual (HKNO, 0x13))
                            {
                                ^^^^WMID.WGWE (0x04, Zero)
                            }
                            Else
                            {
                                If (LEqual (HKNO, 0x13))
                                {
                                    If (BTLS)
                                    {
                                        GLSD ()
                                        Store (Zero, WLRF)
                                        Store (Zero, WARF)
                                        GLRS ()
                                        Store (Zero, WLON)
                                        GLSD ()
                                        Store (One, BTOF)
                                        GLRS ()
                                        Store (Zero, BTON)
                                        GLSD ()
                                        Store (Zero, WWRF)
                                        Store (Zero, WAON)
                                        Store (One, WWOF)
                                        Store (Zero, BTLS)
                                        GLRS ()
                                    }
                                    Else
                                    {
                                        If (WLST)
                                        {
                                            GLSD ()
                                            Store (One, WARF)
                                            Store (One, WLRF)
                                            Store (Zero, WLED)
                                            GLRS ()
                                            Store (One, WLON)
                                        }
                                        Else
                                        {
                                            GLSD ()
                                            Store (Zero, WLRF)
                                            Store (Zero, WARF)
                                            Store (One, WLED)
                                            GLRS ()
                                            Store (Zero, WLON)
                                        }

                                        If (BLTH)
                                        {
                                            GLSD ()
                                            Store (Zero, BTOF)
                                            GLRS ()
                                            Store (One, BTON)
                                        }
                                        Else
                                        {
                                            GLSD ()
                                            Store (One, BTOF)
                                            GLRS ()
                                            Store (Zero, BTON)
                                        }

                                        If (WWAN)
                                        {
                                            If (LEqual (BTAP, One))
                                            {
                                                GLSD ()
                                                Store (Zero, WWOF)
                                                Store (One, WAON)
                                                Store (One, WWRF)
                                                GLRS ()
                                            }
                                        }
                                        Else
                                        {
                                            GLSD ()
                                            Store (One, WWOF)
                                            Store (Zero, WWRF)
                                            GLRS ()
                                            Store (Zero, WAON)
                                        }

                                        Store (One, BTLS)
                                    }
                                }
                            }
                        }

                        If (LEqual (HKNO, 0x04))
                        {
                            Notify (GFX0, 0x80)
                        }
                    }

 

Use ACPIDebug to find out the value of HKNO (Hot Key Number) for each key, then write code to check it and send the appropriate code.

 

For example, this is the patch for HP Envy 15 J-series (maybe K series too):

into method label _Q13 parent_label H_EC replace_content
begin
Store(HKNO, Local0)\n
If (LEqual(Local0,7))\n
{\n
// Brightness Down\n
    Notify(\_SB.PCI0.LPCB.PS2K, 0x0205)\n
    Notify(\_SB.PCI0.LPCB.PS2K, 0x0285)\n
}\n
If (LEqual(Local0,8))\n
{\n
// Brightness Up\n
    Notify(\_SB.PCI0.LPCB.PS2K, 0x0206)\n
    Notify(\_SB.PCI0.LPCB.PS2K, 0x0286)\n
}\n
If (LEqual(Local0,4))\n
{\n
// Mirror toggle\n
    Notify(\_SB.PCI0.LPCB.PS2K, 0x026e)\n
    Notify(\_SB.PCI0.LPCB.PS2K, 0x02ee)\n
}\n
end;
Seems likely to be the same.

Share this post


Link to post
Share on other sites

Thanks, RehabMan, that worked.  With HP Envy laptops, it seems that the _Qxx value is only one variable controlling keyboard functions and that the HKNO value must also be established.  The patch you posted above that worked for gygabyte666 also worked for me.

Share this post


Link to post
Share on other sites
I can't find the correct hotkey for my lenovo, the hotkeys are F11 and F12, but when I open the console.app I see anything in the system.log when I press the hotkeys.

 

How can I do it? Thanks.

Share this post


Link to post
Share on other sites

 

I can't find the correct hotkey for my lenovo, the hotkeys are F11 and F12, but when I open the console.app I see anything in the system.log when I press the hotkeys.
 
How can I do it? Thanks.

 

 

Have you installed ACPIDebug.kext?

Share this post


Link to post
Share on other sites

Thanks to RehabMan, Toleda and a tons of people whose names I can't remember (I've been reading a lot of InsanelyMac and others for the past few months.) I've got myself running a decent a usable daily driver hackintosh on my Dell Inspiron 14z 5423 (Ultrabookish version, i7 3rd gen model.).

 

1) Syspref > Displays has a working brightness slider.

 

2) However the Fn+F5 (Brightness Increase) and Fn+F4 (Brightness Decrease) shows odd behavior. Each boot, they will work once. If I Press Fn+F5 it will MAX (no stepping.) my LCD brightness. Further Fn+F5 or Fn+F4 keystrokes do nothing.

If I rather press Fn+F4 it will decrease my brightness to ZERO w/o any stepping either (plain dark, impossible to see anything at all.) which often causes me to boot the system from power off button. After the key combo has been first pressed, Fn+F5 won't work either.

 

When I tried to patch my DSDT with "Instrument EC Queries" I realized I've got no "_Q##" methods at all. I then checked the next patch below it and the "Instrument GPE Queries" had something in store (matches and patches.) so I applied it. Installed ACPIDebug.kext to S/L/E and booted. Now, every time I do the key combo it gives me the output of "GPE _L17". But as others have mentioned above, it seems that _L17 is a shared method because both Fn+F5 and Fn+F4 will call the same method.

 

Nevertheless, I identified another 2 buttons (!!) which will invoke the same method (_L17), those are the "W"-like button (sometimes referred to as "Wave") and the Dell-custom button to set your own hotkeys in Windows, which are located in the upper-right area of the top cover (Silver buttons. The "gears" button has no output in Console.app.). (See attached "silver-button.jpg" image.)

 

Anyone has any idea of what I should do/look for next? If anyone thinks this deserves a new thread (if it feels like any sort of 'hijacking'.) please just PM me and I'll copy/paste this into a new thread and delete this message. Reason I thought of leaving this attached to this thread is just for further reference of fellow 14Z 5423 owners which might have a hard time finding this stuff later.  :)

 

Attached are a photo of the whole keyboard "layout", the custom Dell keys which share the _L17 method and my original (extracted from Linux.) DSDT.aml (DSDT_notfixed.aml) and the one I'm currently booting with ("DSDT_current.aml"). Also a kextstat output with any custom .kexts I'm loading other than Apple's default/AppleHDA patched. If any more info is to be provided, let me know.

 

Thanks a lot to anyone willing to help me and look into this.

DSDT.zip

kextstat.txt

post-1190283-0-20825800-1439775247_thumb.jpg

post-1190283-0-48853400-1439775309_thumb.jpg

Share this post


Link to post
Share on other sites

Thanks to RehabMan, Toleda and a tons of people whose names I can't remember (I've been reading a lot of InsanelyMac and others for the past few months.) I've got myself running a decent a usable daily driver hackintosh on my Dell Inspiron 14z 5423 (Ultrabookish version, i7 3rd gen model.).

 

1) Syspref > Displays has a working brightness slider.

 

2) However the Fn+F5 (Brightness Increase) and Fn+F4 (Brightness Decrease) shows odd behavior. Each boot, they will work once. If I Press Fn+F5 it will MAX (no stepping.) my LCD brightness. Further Fn+F5 or Fn+F4 keystrokes do nothing.

If I rather press Fn+F4 it will decrease my brightness to ZERO w/o any stepping either (plain dark, impossible to see anything at all.) which often causes me to boot the system from power off button. After the key combo has been first pressed, Fn+F5 won't work either.

Are your keys handled via ACPI or PS2?

Share this post


Link to post
Share on other sites

You didn't answer the question.

 

With this I realized that I didn't had a clue whether my keys were ACPI or PS2 controlled.

While I tried to realize which was the case, I found this (please correct me if that's the wrong method.): 

 

Your brightness keys (usually one of the Fn+F1...F12 keys) may be handled with PS2 or ACPI. Most newer computers use ACPI for these keys. If your trackpad is Synaptics and you're using my fork VoodooPS2Controller.kext (https://github.com/RehabMan/OS-X-Voodoo-PS2-Controller), you can make either case work.

 
The first step is to determine if they are handled by PS2 or ACPI. With my driver, you can use 'ioio -s ApplePS2Keyboard LogScanCodes 1' to turn on the key logging to system.log. The ioio binary is available here: https://github.com/RehabMan/OS-X-ioio (please read the README for download locations).
 
After turning on key logging, monitor system.log with Console.app to determine what PS2 codes (if any) are generated when you press your keys). If they generate PS2 codes, you can map them to backlight control by following the wiki: https://github.com/RehabMan/OS-X-Voodoo-PS2-Controller/wiki/How-to-Use-Custom-Keyboard-Mapping
 
From here. I recognize that those are your own instructions even though the guy who posted it didn't seem to link the work to it's man.
After running "ioio -s ApplePS2Keyboard LogScanCodes 1", I went to the Console.app and filtered by "ApplePS2Keyboard", where I found the following output:
 
Aug 23 00:21:20 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key 3b=7a down // F1
Aug 23 00:21:22 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key 3c=78 down // F2
Aug 23 00:21:24 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key 3d=63 down // F3
Aug 23 00:21:25 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key 3e=76 down // F4
Aug 23 00:21:27 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key 3f=60 down // F5
Aug 23 00:21:29 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key 40=61 down // F6
Aug 23 00:21:30 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key 41=62 down // F7
Aug 23 00:21:32 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key 42=64 down // F8
Aug 23 00:21:33 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key 43=65 down // F9
Aug 23 00:21:35 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key 44=6d down // F10
Aug 23 00:21:36 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key 57=67 down // F11
Aug 23 00:21:44 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key 58=6f down // F12
Aug 23 00:21:48 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key e020=4a down // Mute Sound, next key after F12 - it's a multimedia-only key
// FN+F1 didn't output anything
// FN+F2 Couldn't be tried as it would kill my WiFi (the OFF effect always works the *1st* time, then I can't turn it on)
Aug 23 00:24:40 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key e01e=80 down // FN+F3
Aug 23 00:22:14 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key e005=91 down // FN+F4 - Brightness Down
// FN+F5 - Brightness Up, which didn't 'work' after the previous combo was pressed
// FN+F6 - no function assigned (no orange icon)
// FN+F7 - no function assigned (no orange icon)
Aug 23 00:27:43 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key e010=4d down // FN+F8
Aug 23 00:27:44 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key e022=34 down // FN+F9
Aug 23 00:27:45 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key e019=42 down // FN+F10
Aug 23 00:27:47 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key e02e=49 down // FN+F11
Aug 23 00:27:48 Evandros-MacBook-Air kernel[0]: ApplePS2Keyboard: sending key e030=48 down // FN+F12

So I guess my keys are PS2 controlled.

Thanks in advance.

 

 

PS: A note on the "sending key e005=91 down // FN+F4" line. A few hours ago I did press "FN+F5" which is "Brightness Up", setting my brightness to max level. Just afterwards neither of brightness controls seemed to work. (as I already expected.)

 

Just now as I write this and had this debugging phase ongoing, I forgot the effects of "FN+F4" (which would usually render my screen completely black). It didn't - the brightness splash icon and slider appeared on the screen - but they still showed "max" and didn't decrease this time. Right after I tried "FN+F5" which seemed to have no effect and to output nothing to the console as well.

 

It seems that some weird looping is going on once it first enters the GPE _L17 method/area. Like if further keydowns won't trigger the method anymore as it is still running, not until the loop ends, at least. Not to mention that it seems the "method" stores the data from the first loop and all further calls will just set the previous values. Really don't know what else to try.  :(

Share this post


Link to post
Share on other sites

Conclusion...

 

Brightness keys (Fn+F4/Fn+F5) are PS2, not ACPI. Your keys are also 'breakless' (they send make codes, but no break codes).

 

I assume this computer is Dell?

Share this post


Link to post
Share on other sites

Conclusion...

 

Brightness keys (Fn+F4/Fn+F5) are PS2, not ACPI. Your keys are also 'breakless' (they send make codes, but no break codes).

 

I assume this computer is Dell?

 

That's right, Sir.

Share this post


Link to post
Share on other sites

That's right, Sir.

What is in your native DSDT header? The header is the line with 'DefinitionBlock' at the beginning.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By shinho73
      Can someone help me fix reboot issue? Actually it reboots, but sometimes the hackintosh just hangs with screen off. Here is the Extra folder containing org.chameleon.boot.plist. https://drive.google.com/drive/folders/1MX8-DpQk9kaRUfjPcToxf-ElWh-bN6EY?usp=sharing  and the spec of the PC. https://drive.google.com/drive/folders/1NlcUNK5DBzJFxeFeuyt92eRjQqwO5T32?usp=sharing Can someone look at it? I might be doing something wrong. Any help will be greatly appreciated. Thank you. 

    • By Slice
      I successfully installed macOS 10.11.6 and Windows 7 Pro SP1 in UEFI mode on the laptop.
      I know, there are detailed guides here and on osxlatitude.com but I was not agree with them and carefully check and test every step to tune my Mac.
       
      Hardware
      Intel® Core� i5-3320M CPU @ 2.60GHz, speedstep works with Clover default settings
      Chipset Intel 7 series, no patches needed
      Video: IntelHD4000 or NVS5200M switchable in BIOS, work in both cases
      LAN; Intel 82579LM, works with IntelMausiEthernet.kext v2.2.1
      Audio: IDT 92HD93BXX, works with VoodooHDA 2.9.0.
      SDHC reader O2Micro; works with native AppleSDHC.kext with Clover Arbitrary properties.
      USB3.0 works natively if not disabled in DSDT
      PS2 keyboard and touchpad works with VoodooPS2.
      WiFi: Dell Intel WiFi was replaced by Dell DW1520, Broadcom BCM943224HMS. DeviceID=4353
      LCD Screen 1366x768
      BIOS A12. Initially was A02. Then I flashed A23 and found it is quite bad. The screen is full of artefacts. Flash A12 and all is OK. Not tested other versions.
      For some reason BIOS can switched from Intel to Nvidia by itself so I have to do my solution working independent on this state.
       
      WiFi
      It is not working OOB although it has DeviceID known to Apple. The reason is WhiteList in the driver.
      I set MacModel as MacBookPro10,1 while the WiFi will work on MacBookAir. I make a patch in Clover.
      As well a patch for channels.
      I deleted a kext Brcm4331 because it has the same DeviceID. Let kext Brcm4360 to work alone.
       
      VideoCards
      In Bios we can set Optimus = Enable/Disable
      If Enable then we have two videocards Intel first and Nvidia second. In this case additional SSDT-3.aml will switch off Nvidia.
      If Disable then we have only Nvidia card. It will work if Board-ID taken from iMac13,2.
      But here there is contradiction with WiFi with required Board-ID from MacBookAir.
      So I take MacModel as MacBookPro10,1 which is most close by CPU IvyBridge.
      Set BoardID like iMac13,2 to make Nvidia working.
      Patch BoardID in Brcm4360 to make WiFi working.
      Now I have
      Inject->
      ->Intel=YES
      ->Nvidia=YES
      and SSDT-3.aml in ACPI\patched folder. This SSDT will switch off Nvidia if Intel card ON.
      For Intel graphics there is a patch against 8 apples at start.
      This Nvidia 5200 is Fermi and works in ElCapitan.
       
      Brightness
      No special kexts.
      The brightness controlled by keys F1,F2 and slider in Control Panel in both case Intel or Nvidia. Details here  #72 
       
      DSDT and SSDT
      This is very long story and finally I have working sleep in both cases Intel or Nvidia.
       
      Sensors
      I use my HWSensors3 with FakeSMC 3.5.2.
      I got monitoring:
      CPU temperature
      GPU temperature
      GPU main frequency
      GPU shader frequency
      Battery state % full, time to charged or time to empty.
      Battery voltage dinamically.
      Battery amperage dynamically. I can see it changes on heavy games.
      HDD temperature.

       
      Audio
      I like VoodooHDA and have no problems with it.
      The sound is clear, loud, and switchable between internal speaker and headphone.
      Mic is working.
       
      Bluetooth
      Just tested with BTFirmwareUpdate.kext and it works in 10.11.6. I not needed it so switched off by wireless switch at right side.
      For 10.13.6 there is other kext BRCMInjector.
       
      Keyboard, Touchpad and Touchstick
      Post #14
      I made my fork of the VoodooPS2 driver, take here sources and release version
      https://github.com/SergeySlice/VoodooPS2-for-ALPS
       
      My config, ACPI files and kexts are in attachment.
      05.12.2017
      EFI.7z
       
      EDITED:
      Better DSDT in the post #6.
      Sleep working even when AC inserted.
       
      EDITED 06.12.2018
      Now I have HighSierra and this is my EFI folder. Note, HighSierra is possible only with Intel graphics (Optimus is enabled in BIOS)
       

       
       
      Welcome to discussion!
      EFI-E6430.7z
      BRCMInjector.kext.zip
×