Jump to content

Netbook hot key driver Asus Dell HP


  • Please log in to reply
29 replies to this topic

#1
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts
Last update: 18 sept 2011

I've wrote a driver for my Asus EEEPC 1201N since the existing one didn't worked after sleep.

It is base on the WMI device you can find in the DSDT (PNP0C14 + ASUSWMI), so I think it can works
with other asus product shipped with win7. Feel free to try and report.
There should be this kind of entry in your DSDT to work :
Device (AMW0)        {            Name (_HID, EisaId ("PNP0C14"))            Name (_UID, "ASUSWMI")            Name (_WDG, Buffer (0x50)            {...For example, if you have this :    Device (AMW0)    {        Name (_HID, EisaId ("PNP0C14"))        Name (_UID, <strong class='bbc'>Zero</strong>)        Method (_STA, 0, NotSerialized)        {            <strong class='bbc'>If (LEqual (MSOS (), MSW7))</strong>            {                Return (0x0F)            }            Return (Zero)        }Make the following modification:    Device (AMW0)    {        Name (_HID, EisaId ("PNP0C14"))        Name (_UID, <strong class='bbc'>[s]Zero[/s]"ASUSWMI"</strong>)        Method (_STA, 0, NotSerialized)        {            <strong class='bbc'>[s]If (LEqual (MSOS (), MSW7))[/s] </strong>//no need to check if win7 is runing...<strong class='bbc'>[s]            {[/s]                Return (0x0F) </strong>// means device is enable <strong class='bbc'> <img src='http://www.insanelymac.com/forum/public/style_emoticons/<#EMO_DIR#>/smile.png' class='bbc_emoticon' alt=':)' />             [s]}            Return (Zero)[/s] </strong>//means device is disable <strong class='bbc'> <img src='http://www.insanelymac.com/forum/public/style_emoticons/<#EMO_DIR#>/sad.png' class='bbc_emoticon' alt=':wacko:' /> </strong>        }

There is also experimental support for HP and Dell :
For HP put HPWMI instead of ASUSWMI
For Dell put DELLWMI instead of ASUSWMI

if there are several PNP0C14, locate the one with a Method (_Wed..., if there are several, try all.

Remove any other hotkey driver before trying it ! I.e. remove, rebuild kext cache and reboot.

Attached File  IOWMIFamily.kext.zip   82.68KB   313 downloads
Install it in S/L/E (with Kext Utility or similar !)
Tested in i386 and x86_64.

Change log:
25/06/2011 : mangement of key repeat rate.
18/09/2011 : basic support for HP and Dell
source : Attached File  IOWMIFamily_src.zip   64.4KB   129 downloads


Features on ASUS:
  • keystrokes to system:
    • SOUND_UP
    • SOUND_DOWN
    • MUTE
    • BRIGHTNESS_UP
    • BRIGHTNESS_DOWN
    • VIDMIRROR: (Fn + F8) toggle between extended desktop and clone mode
  • Hardware control:
    • BRIGHTNESS ON/OFF
    • BLUETOOTH ON/OFF (Fn + F2)
    • TRACKPAD ON/OFF (Fn + F9) : On my netbook, it only lights the button for the moment...
Features on Dell:
  • SOUND_UP
  • SOUND_DOWN
  • MUTE
  • BRIGHTNESS_UP
  • BRIGHTNESS_DOWN
  • VIDMIRROR
Features on HP:
  • BRIGHTNESS_UP
  • BRIGHTNESS_DOWN

I'm also wrote an ACPI Display driver for brightness control. ACPI Backlight

#2
Kyle_C

Kyle_C

    InsanelyMac Protégé

  • Members
  • PipPip
  • 66 posts
This is really cool! I was going through my DSDT when I saw this PNP0C14 device, and when I found out that it is was for Windows Management Interface I was just about to rip out the whole section. But I figured I should search this forum first, and I found your extension!

I think it can works with other asus product shipped with win7. Feel free to try and report.


Unfortunately it's not working with my ASUS K53E. The kext loads and I see an EeePCWMIController under the AppleACPIPlatformExpert IOService. My WMI device in the DSDT doesn't even have an _STA method. Should I add one?

If I press Fn+F2 I get a KP out of EeePCWMIController. None of the other fn keys do anything. I also tried using "NVIF" with the same results minus the KP (is this one just for laptops with Nvidia Optimus?).

In IOService, I only see two entries under the "WDG" key. Are these the available key combos/actions?

Would you mind posting the source code? I'd love to check it out. Also, it would be cool to see your complete AMW0 section so I can compare it with mine (although for me it's called ATKD). There are some horrendously complicated looking methods in this part of my DSDT. Who writes these things?!

#3
fargerjaques

fargerjaques

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts

This is really cool! I was going through my DSDT when I saw this PNP0C14 device, and when I found out that it is was for Windows Management Interface I was just about to rip out the whole section. But I figured I should search this forum first, and I found your extension!



Unfortunately it's not working with my ASUS K53E. The kext loads and I see an EeePCWMIController under the AppleACPIPlatformExpert IOService. My WMI device in the DSDT doesn't even have an _STA method. Should I add one?

If I press Fn+F2 I get a KP out of EeePCWMIController. None of the other fn keys do anything. I also tried using "NVIF" with the same results minus the KP (is this one just for laptops with Nvidia Optimus?).

In IOService, I only see two entries under the "WDG" key. Are these the available key combos/actions?

Would you mind posting the source code? I'd love to check it out. Also, it would be cool to see your complete AMW0 section so I can compare it with mine (although for me it's called ATKD). There are some horrendously complicated looking methods in this part of my DSDT. Who writes these things?!



Try this: Asus fn kext

#4
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

This is really cool! I was going through my DSDT when I saw this PNP0C14 device, and when I found out that it is was for Windows Management Interface I was just about to rip out the whole section. But I figured I should search this forum first, and I found your extension!

Unfortunately it's not working with my ASUS K53E. The kext loads and I see an EeePCWMIController under the AppleACPIPlatformExpert IOService. My WMI device in the DSDT doesn't even have an _STA method. Should I add one?

If I press Fn+F2 I get a KP out of EeePCWMIController. None of the other fn keys do anything. I also tried using "NVIF" with the same results minus the KP (is this one just for laptops with Nvidia Optimus?).

In IOService, I only see two entries under the "WDG" key. Are these the available key combos/actions?

Would you mind posting the source code? I'd love to check it out. Also, it would be cool to see your complete AMW0 section so I can compare it with mine (although for me it's called ATKD). There are some horrendously complicated looking methods in this part of my DSDT. Who writes these things?!


OK, can you post your DSDT and an ioreg dump starting at EeePCWMIController (ioreg -rSk WDG -w0)
As the driver loads, there is no need for _STA.
All explanation about WDG are here http://lwn.net/Articles/391230/.
NVIF is on Nvidia GPU. The driver only publish WDG properties on it and does nothing more for the moment.

#5
Kyle_C

Kyle_C

    InsanelyMac Protégé

  • Members
  • PipPip
  • 66 posts
Thanks for taking a look.

+-o EeePCWMIController  <class EeePCWMIController>
	{
	  "IOProbeScore" = 35
	  "CFBundleIdentifier" = "com.darwin.driver.EeePCWMIController"
	  "IOProviderClass" = "IOACPIPlatformDevice"
	  "IOClass" = "EeePCWMIController"
	  "IOMatchCategory" = "IODefaultMatchCategory"
	  "DataBlocks" = ()
	  "IONameMatch" = ("PNP0C14","pnp0c14")
	  "IOPowerManagement" = {"MaxPowerState"=1,"CurrentPowerState"=1}
	  "IONameMatched" = "PNP0C14"
	  "WDG" = ({"object_id"="NB","flags"=2,"instance_count"=1,"UUID"="97845ED0-4E6D-11DE-8A39-0800200C9A66"},{"flags"=8,"notify_value"=255,"instance_count"=1,"UUID"="0B3CBB35-E3C2-45ED-91C2-4C5A6D195D1C"})
	}

Does this mean that for the volume keys I'm going to need to go through VoodooPS2?

@fargerjaques, no luck with that one.

Attached Files



#6
Prasys

Prasys

    Cheese Cheese cheese

  • Retired Developers
  • 338 posts
  • Gender:Male
Do you have the source of your driver by any change so that it can be used for other ASUS notebooks as well

#7
sparkythewondersquid

sparkythewondersquid

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 209 posts
  • Gender:Male
  • Location:Chouteau, Montana
Works great on Asus 1201PN

#8
Cyrus the Great

Cyrus the Great

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 276 posts
  • Gender:Male
  • Location:tehran
hi i install this driver in hp
and getting this error:

Sep 18 18:13:18 localhost kernel[0]: IOWMIController: WMI driver version 1.0 Device name: WMID
Sep 18 18:13:18 localhost kernel[0]: IOWM IController: Cast error WQBC
i am attaché my dsdt and (ioreg -rSk WDG -w0 terminal output
may be you take quick look at it.plz
thanks for your help

Attached Files



#9
olegpronin

olegpronin

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 178 posts
ok, moving here. again, dell xps studio 1340, table of debug was posted here.
http://www.insanelym...p...t&p=1749919

#10
olegpronin

olegpronin

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 178 posts

I've to make a small modification to the code I've send, it cannot works.

em. Fn+F5 and Fn+F12 works as backlight down/up now, as before.
I saw debug in kernel log.

Fn+arrow down/arrow up works as backlight down up too, but no icon is the screen and no moving of progressbar in the monitor settings.
kernel.log
Sep 18 17:48:21 GFKxx kernel[0]: Notice - new kext com.apple.iokit.IOHIDSystem, v1.7.1 matches prelinked kext but can't determine if executables are the same (no UUIDs).
Sep 18 17:48:21 GFKxx kernel[0]: DellWMIController: Probe()
Sep 18 17:48:21: --- last message repeated 2 times ---
Sep 18 17:48:21 GFKxx kernel[0]: DellWMIController: Probe(NVIF)
Sep 18 17:48:21 GFKxx kernel[0]: DellWMIController: Free
Sep 18 17:48:21 GFKxx kernel[0]: EeePCWMIController: Probe()
Sep 18 17:48:21: --- last message repeated 1 time ---
Sep 18 17:48:21 GFKxx kernel[0]: EeePCWMIController: Probe(NVIF)
Sep 18 17:48:21 GFKxx kernel[0]: EeePCWMIController: Free
Sep 18 17:48:21 GFKxx kernel[0]: NVWMIController: Probe()
Sep 18 17:48:21: --- last message repeated 1 time ---
Sep 18 17:48:21 GFKxx kernel[0]: NVWMIController: Probe(NVIF)
Sep 18 17:48:21 GFKxx kernel[0]: NVWMIController: Probe(OK)
Sep 18 17:48:21 GFKxx kernel[0]: IOWMIController: Probe()
Sep 18 17:48:21 GFKxx kernel[0]: NVWMIController: WMI driver version 1.0	Device name: WMI0
Sep 18 17:48:21 GFKxx kernel[0]: NVWMIController: NVWMIController::enableEvent()
Sep 18 17:48:21 GFKxx kernel[0]: IOWMIController: Free
Sep 18 17:48:21 GFKxx kernel[0]: NVWMIController: setPowerState(kPowerStateOn)
Sep 18 17:48:21 GFKxx kernel[0]: DellWMIController: Probe()
Sep 18 17:48:21: --- last message repeated 1 time ---
Sep 18 17:48:21 GFKxx kernel[0]: DellWMIController: Probe(MXM2)
Sep 18 17:48:21 GFKxx kernel[0]: DellWMIController: Free
Sep 18 17:48:21 GFKxx kernel[0]: EeePCWMIController: Probe()
Sep 18 17:48:21: --- last message repeated 1 time ---
Sep 18 17:48:21 GFKxx kernel[0]: EeePCWMIController: Probe(MXM2)
Sep 18 17:48:21 GFKxx kernel[0]: EeePCWMIController: Free
Sep 18 17:48:21 GFKxx kernel[0]: NVWMIController: Probe()
Sep 18 17:48:21: --- last message repeated 1 time ---
Sep 18 17:48:21 GFKxx kernel[0]: NVWMIController: Probe(MXM2)
Sep 18 17:48:21 GFKxx kernel[0]: NVWMIController: Free
Sep 18 17:48:21 GFKxx kernel[0]: IOWMIController: Probe()
Sep 18 17:48:21 GFKxx kernel[0]: IOWMIController: WMI driver version 1.0	Device name: WMI1
Sep 18 17:48:21 GFKxx kernel[0]: IOWMIController: IOWMIController::enableEvent()
Sep 18 17:48:21 GFKxx kernel[0]: IOWMIController: setPowerState(kPowerStateOn)
Sep 18 17:48:21 GFKxx kernel[0]: DellWMIController: Probe()
Sep 18 17:48:21 GFKxx kernel[0]: DellWMIController: Probe(DELLWMI)
Sep 18 17:48:21 GFKxx kernel[0]: DellWMIController: Probe(OK)
Sep 18 17:48:21 GFKxx kernel[0]: EeePCWMIController: Probe()
Sep 18 17:48:21: --- last message repeated 1 time ---
Sep 18 17:48:21 GFKxx kernel[0]: DSMOS has arrived
Sep 18 17:48:21 GFKxx kernel[0]: EeePCWMIController: Probe(DELLWMI)
Sep 18 17:48:21 GFKxx kernel[0]: EeePCWMIController: Free
Sep 18 17:48:21 GFKxx kernel[0]: NVWMIController: Probe()
Sep 18 17:48:21: --- last message repeated 1 time ---
Sep 18 17:48:21 GFKxx kernel[0]: NVWMIController: Probe(DELLWMI)
Sep 18 17:48:21 GFKxx kernel[0]: NVWMIController: Free
Sep 18 17:48:21 GFKxx kernel[0]: IOWMIController: Probe()
Sep 18 17:48:21 GFKxx kernel[0]: DellWMIController: WMI driver version 1.0	Device name: AMW0
Sep 18 17:48:21 GFKxx kernel[0]: DellWMIController: No object of method WQBC
Sep 18 17:48:21 GFKxx kernel[0]: DellWMIController: DellWMIController::enableEvent()
Sep 18 17:48:21 GFKxx kernel[0]: DellWMIController: setEvent()
Sep 18 17:48:21 GFKxx kernel[0]: IOWMIController: Free
Sep 18 17:48:21 GFKxx kernel[0]: DellWMIController: setPowerState(kPowerStateOn)


#11
olegpronin

olegpronin

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 178 posts

try this:

absolutely same thing

#12
olegpronin

olegpronin

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 178 posts
yes, I have tried all as before.

Before your WMI kext I had successfully fully worked sensor panel where I have wifi, stop, play/pause, forward,back, no sound, down sound, up sound and eject buttons. All of them work great exept the stop button, but as I understood stop button is not in original macs at all.

I had also working Fn+Arrow up/down for brightness before your WMI kext, but no icon about brightness was shown.

After I added your kext, I still have all features that I wrote in the top, but your kext added additionally brightness management by Fn+F5 and Fn+F12 down/up, and I have an icon when I use that keys, and the progressbar moves in the monitor settings too. It doesn't move if I use combination of Fn+arrows.

#13
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

hi i install this driver in hp
and getting this error:

Sep 18 18:13:18 localhost kernel[0]: IOWMIController: WMI driver version 1.0 Device name: WMID
Sep 18 18:13:18 localhost kernel[0]: IOWM IController: Cast error WQBC
i am attaché my dsdt and (ioreg -rSk WDG -w0 terminal output
may be you take quick look at it.plz
thanks for your help


What is your laptop model and manufacturer ?
I've
Name (_UID, "ASUSWMI")
and
Store ("HP WMI Command 0xB (BIOS Read)", Debug)

in your DSDT...

yes, I have tried all as before.

Before your WMI kext I had successfully fully worked sensor panel where I have wifi, stop, play/pause, forward,back, no sound, down sound, up sound and eject buttons. All of them work great exept the stop button, but as I understood stop button is not in original macs at all.

I had also working Fn+Arrow up/down for brightness before your WMI kext, but no icon about brightness was shown.

After I added your kext, I still have all features that I wrote in the top, but your kext added additionally brightness management by Fn+F5 and Fn+F12 down/up, and I have an icon when I use that keys, and the progressbar moves in the monitor settings too. It doesn't move if I use combination of Fn+arrows.


Do you have some log when you hit the Fn + F5 or Fn + up key ?

When you can change the backlight without seeing something in the screen, you are using legacy directly wired function (work also under MSDOS or BIOS) : no software in the loop. (normaly, the _DOS Method is here to disable it). Any changes you make to the dimmer with it will not be take into account by the driver and so will be overwritten on amy event like dim before sleep or AC plug/unplug.

#14
olegpronin

olegpronin

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 178 posts
yes, I have brightness working in bios too. May be it's not too important to use your kexts at all, I just was wondered how you did backlight display

I have nothing in log when I press fn f12 or fn f5.

#15
Cyrus the Great

Cyrus the Great

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 276 posts
  • Gender:Male
  • Location:tehran

What is your laptop model and manufacturer ?
I've
Name (_UID, "ASUSWMI")
and
Store ("HP WMI Command 0xB (BIOS Read)", Debug)

in your DSDT...

thanks for your replay :
my model is hp dv6-1125ee with c2d
i add this key to my dsdt like your dsdt:"ASUSWMI"

#16
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

yes, I have brightness working in bios too. May be it's not too important to use your kexts at all, I just was wondered how you did backlight display

I have nothing in log when I press fn f12 or fn f5.

Strange ! if the code works, it shall log too !

Do you have tried the volume up / down and eject CD ? you have visual return for all of that ?

thanks for your replay :
my model is hp dv6-1125ee with c2d
i add this key to my dsdt like your dsdt:"ASUSWMI"


That was not a good idea !
put HPWMI instead and try this driver:


#17
Cyrus the Great

Cyrus the Great

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 276 posts
  • Gender:Male
  • Location:tehran
thanks i am do it and now this is log:

9/18/11 8:19:13.000 PM kernel: IOWMIController: Probe()
9/18/11 8:19:13.000 PM kernel: IOWMIController: WMI driver version 1.0 Device name: WMID
9/18/11 8:19:13.000 PM kernel: IOWMIController: Cast error WQBC
9/18/11 8:19:13.000 PM kernel: IOWMIController: IOWMIController::enableEvent()
9/18/11 8:19:13.000 PM kernel: Previous Shutdown Cause: 3
9/18/11 8:19:13.000 PM kernel: IOWMIController: setPowerState(kPowerStateOn)

and this is in ioreg:
IOService:/AppleACPIPlatformExpert/WMID/IOWMIController
i attach the ioreg

Attached Files



#18
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

thanks i am do it and now this is log:

9/18/11 8:19:13.000 PM kernel: IOWMIController: Probe()
9/18/11 8:19:13.000 PM kernel: IOWMIController: WMI driver version 1.0 Device name: WMID
9/18/11 8:19:13.000 PM kernel: IOWMIController: Cast error WQBC
9/18/11 8:19:13.000 PM kernel: IOWMIController: IOWMIController::enableEvent()
9/18/11 8:19:13.000 PM kernel: Previous Shutdown Cause: 3
9/18/11 8:19:13.000 PM kernel: IOWMIController: setPowerState(kPowerStateOn)

and this is in ioreg:
IOService:/AppleACPIPlatformExpert/WMID/IOWMIController
i attach the ioreg


It seems that you have not installed the last driver I've posted
You should have:
HPWMIController: Probe()
and so on.
reinstall and reboot

#19
olegpronin

olegpronin

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 178 posts

Strange ! if the code works, it shall log too !

Do you have tried the volume up / down and eject CD ? you have visual return for all of that ?


I have without your kext visual return of volume up/down, no volume, eject.
I only don't have the brightness visual return.

#20
bsides

bsides

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 104 posts
  • Gender:Male
  • Location:São Paulo, Brasil
I'm sorry if this question sound too newbish but would this driver works on a ASUS G53SX notebook? I'm looking for these features to work here but I'm unsucessful as of now. Thanks!

EDIT: I just tried but no success. Attached is the part in DSDT of my device PNP0C14. The method _STA I inserted myself, but I tried both with and wihout it and no success. Any help is appreciated, thanks ;)
Attached File  PNP0c14.txt   52.37KB   27 downloads

EDIT 2: After changing PNP0C14 for PNP0c14 (which was the original and I changed before) the kext now loads but I still have no FN key or multimedia control or brightness or whatever. Here's what shows up in kernel.log
Oct 22 18:24:47 bsides-Macbook-Pro kernel[0]: IOWMIController: WMI driver version 1.0	Device name: ATKD






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

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