hotKoffy Posted February 16, 2011 Share Posted February 16, 2011 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, [b]Zero[/b]) Method (_STA, 0, NotSerialized) { [b]If (LEqual (MSOS (), MSW7))[/b] { Return (0x0F) } Return (Zero) } Make the following modification: Device (AMW0) { Name (_HID, EisaId ("PNP0C14")) Name (_UID, [b][s]Zero[/s]"ASUSWMI"[/b]) Method (_STA, 0, NotSerialized) { [b][s]If (LEqual (MSOS (), MSW7))[/s] [/b]//no need to check if win7 is runing...[b][s] {[/s] Return (0x0F) [/b]// means device is enable [b] [s]} Return (Zero)[/s] [/b]//means device is disable [b] [/b] } 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. IOWMIFamily.kext.zip 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 : IOWMIFamily_src.zip 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 1 Quote Link to comment Share on other sites More sharing options...
Kyle_C Posted May 29, 2011 Share Posted May 29, 2011 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?! Quote Link to comment Share on other sites More sharing options...
fargerjaques Posted May 30, 2011 Share Posted May 30, 2011 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 Quote Link to comment Share on other sites More sharing options...
hotKoffy Posted June 1, 2011 Author Share Posted June 1, 2011 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. Quote Link to comment Share on other sites More sharing options...
Kyle_C Posted June 2, 2011 Share Posted June 2, 2011 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. dsdt.dsl.zip Quote Link to comment Share on other sites More sharing options...
Prasys Posted June 3, 2011 Share Posted June 3, 2011 Do you have the source of your driver by any change so that it can be used for other ASUS notebooks as well Quote Link to comment Share on other sites More sharing options...
sparkythewondersquid Posted June 3, 2011 Share Posted June 3, 2011 Works great on Asus 1201PN Quote Link to comment Share on other sites More sharing options...
Cyrus the Great Posted September 18, 2011 Share Posted September 18, 2011 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 DSDT.aml.zip Terminal_Saved_Output.zip Quote Link to comment Share on other sites More sharing options...
olegpronin Posted September 18, 2011 Share Posted September 18, 2011 ok, moving here. again, dell xps studio 1340, table of debug was posted here. http://www.insanelymac.com/forum/index.php...t&p=1749919 Quote Link to comment Share on other sites More sharing options...
olegpronin Posted September 18, 2011 Share Posted September 18, 2011 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) Quote Link to comment Share on other sites More sharing options...
olegpronin Posted September 18, 2011 Share Posted September 18, 2011 try this: absolutely same thing Quote Link to comment Share on other sites More sharing options...
olegpronin Posted September 18, 2011 Share Posted September 18, 2011 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. Quote Link to comment Share on other sites More sharing options...
hotKoffy Posted September 18, 2011 Author Share Posted September 18, 2011 hi i install this driver in hpand 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. Quote Link to comment Share on other sites More sharing options...
olegpronin Posted September 18, 2011 Share Posted September 18, 2011 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. Quote Link to comment Share on other sites More sharing options...
Cyrus the Great Posted September 18, 2011 Share Posted September 18, 2011 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" Quote Link to comment Share on other sites More sharing options...
hotKoffy Posted September 18, 2011 Author Share Posted September 18, 2011 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: Quote Link to comment Share on other sites More sharing options...
Cyrus the Great Posted September 18, 2011 Share Posted September 18, 2011 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 macbook_pro.zip Quote Link to comment Share on other sites More sharing options...
hotKoffy Posted September 18, 2011 Author Share Posted September 18, 2011 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 Quote Link to comment Share on other sites More sharing options...
olegpronin Posted September 18, 2011 Share Posted September 18, 2011 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. Quote Link to comment Share on other sites More sharing options...
bsides Posted October 22, 2011 Share Posted October 22, 2011 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 PNP0c14.txt 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 Quote Link to comment Share on other sites More sharing options...
hotKoffy Posted October 24, 2011 Author Share Posted October 24, 2011 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 PNP0c14.txt 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 Change also Name (_UID, "ATK") to Name (_UID, "ASUSWMI") Quote Link to comment Share on other sites More sharing options...
bsides Posted October 24, 2011 Share Posted October 24, 2011 Change alsoName (_UID, "ATK") to Name (_UID, "ASUSWMI") Just did it but I still got the same message (!!!). Reading through the DSDT I honestly think there's something misleading here... should I change all ATKD to ASUSWMI? Because the Device is still ATKD and there is a "name" instruction with the same very name... Scope (_SB) { Name (ATKP, Zero) Name (AITM, Zero) Name (PLMD, Zero) Name (MUTX, One) Name (LEDS, Zero) Device (ATKD) { Name (_HID, "PNP0c14") Name (_UID, "ASUSWMI") Method (_STA, 0, NotSerialized) { Return (0x0F) } Name (ATKQ, Package (0x10) { Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones, Ones }) EDIT: Also, I forgot to mention, after changing this the kexts wouldn't load anymore. So I went through the Info.plist of the driver and added this line PNP0c14 which is mine: <key>IONameMatch</key> <array> <string>PNP0C14</string> <string>pnp0c14</string> <string>PNP0c14</string> </array> Quote Link to comment Share on other sites More sharing options...
hotKoffy Posted October 24, 2011 Author Share Posted October 24, 2011 EDIT: Also, I forgot to mention, after changing this the kexts wouldn't load anymore. So I went through the Info.plist of the driver and added this line PNP0c14 which is mine: <key>IONameMatch</key> <array> <string>PNP0C14</string> <string>pnp0c14</string> <string>PNP0c14</string> </array> Would have been simpler to put uppercase in your dsdt put an ioregisteryexplorer dump with the driver loaded, I want to see the properties exposed Quote Link to comment Share on other sites More sharing options...
bsides Posted October 24, 2011 Share Posted October 24, 2011 Would have been simpler to put uppercase in your dsdt put an ioregisteryexplorer dump with the driver loaded, I want to see the properties exposed I know right? But like I said here, if I change that to uppercase it doesn't work anymore. Oh well go figure Here's what you requested. Also my DSDT just because bsides_Macbook_Pro.zipdsdt.dsl.zip Quote Link to comment Share on other sites More sharing options...
hotKoffy Posted October 24, 2011 Author Share Posted October 24, 2011 I know right? But like I said here, if I change that to uppercase it doesn't work anymore. Oh well go figure Maybe it because EisaId is missing. Nevertheless, the driver can't works. There is a new driver in linux 3.0.4 "asus-nb-wmi.c" matching your hardware. I will try to integrate it later. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.