Jump to content

fluid | fixed

ACPI Backlight Display driver


  • Please log in to reply
30 replies to this topic

#1
hotKoffy

hotKoffy

    InsanelyMac Protégé

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

New driver in this topic : ACPI Backlight

This driver provides native backlight management for laptops with backlight managed by ACPI : slider in the display pref pane and sun bezel when you press backlight up/down hotkey (with an other driver than can understand your keyboard Fn keys...)
Attached File  sun_bezel.png   434.73K   127 downloads

To make the display dim before sleeping, hit this check button (in red):

The driver will use the min level + 1.
The entry "slightly dim the display..." has no effect.

This driver will replace AppleDisplay in the device tree and implements same features than AppleBacklightDisplay Class but with ACPI calls. (Both inherit from IOBacklightDisplay in IOGraphicsFamily.kext).
If actually you have AppleBacklightDisplay loaded, it is not for you. (but should not hurt thanks to IOProbeScore hierarchy)

This driver has been developed with an EeePC 1201N but there is no reason it shall not work in other hardware.

There must be "AAPL,boot-display" property set in order to bind on the internal display. Chameleon shall do that with graphic injector, otherwise take a look in my DSDT.
There must be this device in DSDT, in the \SB scope:
Scope (\_SB)
{
	...
	Device (PNLF)
	{
		Name (_HID, EisaId ("APP0002"))
		Name (_CID, "backlight")
		Name (_UID, 0x0A)
		Name (_STA, 0x0B)
	}
...
}

I've also injected this in the GPU scope:
...
						"AAPL,backlight-control",
						Buffer (0x04)
						{
							0x01, 0x00, 0x00, 0x00
						},

						"AAPL,BacklightRestore",
						Buffer (0x04)
						{
							0x01, 0x00, 0x00, 0x00
						},

						"AAPL01,BacklightIntensity",
						Unicode ("N"),
...
  
I don't know if it is absolutely needed.

For 1201N users, take a look in my DSDT, I've extended the _BCL method to get 93 levels (2 to 95) instead of the 16 original (which are indexing a table with 16 entries between 2 and 95). OSX works greater with more levels. Macs have 512 levels... (_BCL, _BCM and _BQC shall be taken as a whole). If you keep the original entries, the backlight will step by 2 for each key pressed.
For hotkeys : WMI Hotkey driver


Sources included
Install it in S/L/E (with Kext Utility or similar !)
Tested in i386 and x86_64.
Minimum system version 10.6.5 - Max 10.6.7

IOGraphicsFamily changed in 10.6.8, the driver could not be loaded. The code has to be updated, certainly making inheritance from IODisplay which seems to be stable.

#2
mrd752002

mrd752002

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

View PostHotKoffy, on Mar 6 2011, 01:42 PM, said:

This driver has been developed with an EeePC 1201N but there is no reason it shall not work in other hardware. Not tested in x86_64.

There must be "AAPL,boot-display" property set in order to bind on the internal display. Chameleon shall do that with graphic injector, otherwise take a look in my DSDT.

For 1201N users, take a look in my DSDT, I've extended the _BCL method to get 93 levels instead of the 16 original. OSX works greater with more levels. (_BCL, _BCM and _BQC shall be taken as a whole)
For hotkeys : WMI Hotkey driver

Attachment ACPIBack...tDisplay.zip


Thanks for the PM,

your questions;

what is your bios version ? = 0326
do you use x86 or x64 kernel ? = x86
do you  use voodooPS2 ? (me not) = yes
can you post your dsdt = yes

I already figured it out my friend HotKoffy,
This what i just done;
1. remove asus hot keys
2. run kext utility
3. restart 1201n
4. install your good kext
5. i install chameleon 2.0 rc5 r656
6. change boot file.
7. re-install 10.6.6 update
8. restart 1201n
9. re-install bluetooth kext and sound kext by kext utility
10. restart 1201n
and everything works.
     your kext works great.
     keypad keys on-off the light
     activate-deactivate the keypad.
     volume ok
     the rest not yet tested.

here is my dsdt for 2gb ram

#3
rals2007

rals2007

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts

View Postmrd752002, on Mar 9 2011, 01:32 PM, said:

Thanks for the PM,

your questions;

what is your bios version ? = 0326
do you use x86 or x64 kernel ? = x86
do you  use voodooPS2 ? (me not) = yes
can you post your dsdt = yes

I already figured it out my friend HotKoffy,
This what i just done;
1. remove asus hot keys
2. run kext utility
3. restart 1201n
4. install your good kext
5. i install chameleon 2.0 rc5 r656
6. change boot file.
7. re-install 10.6.6 update
8. restart 1201n
9. re-install bluetooth kext and sound kext by kext utility
10. restart 1201n
and everything works.
     your kext works great.
     keypad keys on-off the light
     activate-deactivate the keypad.
     volume ok
     the rest not yet tested.

here is my dsdt for 2gb ram

Where did you install it, Extra or S/L/E ?

#4
InNewtonITrust

InNewtonITrust

    InsanelyMac Protégé

  • Members
  • Pip
  • 11 posts

View PostHotKoffy, on Mar 6 2011, 02:42 PM, said:

For 1201N users, take a look in my DSDT, I've extended the _BCL method to get 93 levels instead of the 16 original. OSX works greater with more levels. (_BCL, _BCM and _BQC shall be taken as a whole)
Is this DSDT otherwise the same as the latest one going around on the 1201n thread? The one adapted by VMonHeros to allow for chameleon's cpu energy management? 2GB of RAM or 4?


Innovative work! The hotkeys thing could be handled by unloading/reloading kexts after sleep, but this is neat.

#5
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

View Postmrd752002, on Mar 9 2011, 05:32 AM, said:

keypad keys on-off the light
     activate-deactivate the keypad.
     volume ok

Do you mean, the touchpad is enable/disable when you press Fn + F9 ?

I've found this modified voodoo driver with the other Fn keys working (play, FF, FB, stop?, numeric keypad)
http://osx86.co/f36/...nd-tiger-t6814/

#6
mrd752002

mrd752002

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

View Postrals2007, on Mar 10 2011, 01:06 AM, said:

Where did you install it, Extra or S/L/E ?

On S/L/E
By the way this is my DSDT
i got it on 1201n forum, i forgot his name but good thanks to him.

View PosthotKoffy, on Mar 12 2011, 11:35 AM, said:

Do you mean, the touchpad is enable/disable when you press Fn + F9 ?

yes my friend. Posted Image

dsdt is for 2gb ram

Attached Files

  • Attached File  dsdt.zip   18.85K   44 downloads


#7
VanDangles

VanDangles

    InsanelyMac Protégé

  • Members
  • Pip
  • 22 posts
  • Gender:Male
Great work with the hotkeys. I was already on 10.6.6 so i just deleted Asus hot keys, ran Kext Util, installed IOWMIFamily.kext through Kext Util, rebooted. Lost trackpad and BT so reran Kext Util and rebooted. Working sweet as can be now even after sleep. Thank you  :)

What sort of temps is your 1201N's kicking out? According to IStat menus Im hitting 70c under load with an idle of high 40s c. Im on 4gb DSDT VMonHeros with the 32 bit Kernel. Had it shut down on me last night while watching a 480p flash video.

#8
1337David

1337David

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 100 posts
I made the changes to the DSDT. I though mrd752002 had them but he didn't. The hotkey notification works but the display preference slider doesn't, I included by DSDT in case I screwed up. As well could there be a chance to get itunes hotkeys working? No hurry cause I use Bowtie to bind windows-arrow keys to use itunes anyways.

Attached File  dsdt.aml.zip   18.98K   18 downloads

#9
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

View PostVanDangles, on Mar 13 2011, 01:24 PM, said:

Great work with the hotkeys. I was already on 10.6.6 so i just deleted Asus hot keys, ran Kext Util, installed IOWMIFamily.kext through Kext Util, rebooted. Lost trackpad and BT so reran Kext Util and rebooted. Working sweet as can be now even after sleep. Thank you  ;)

What sort of temps is your 1201N's kicking out? According to IStat menus Im hitting 70c under load with an idle of high 40s c. Im on 4gb DSDT VMonHeros with the 32 bit Kernel. Had it shut down on me last night while watching a 480p flash video.

My CPU temps is around 40/50°C with max at 62°C (cpu benchmark). GPU is around 55°C. All mesurment made with internal diodes.
The thermal zone is DSDT reports very high temp in windows and linux too. I Think it is not accurate.

#10
lalya

lalya

    InsanelyMac Protégé

  • Members
  • Pip
  • 46 posts

View PostHotKoffy, on Mar 6 2011, 02:42 PM, said:

I've also injected this in the GPU scope:
						"AAPL,backlight-control",
						Buffer (0x04)
						{
							0x01, 0x00, 0x00, 0x00
						},

						"AAPL,BacklightRestore",
						Buffer (0x04)
						{
							0x01, 0x00, 0x00, 0x00
						},

						"AAPL01,BacklightIntensity",
						Unicode ("N"),
  
I don't know if it is absolutely needed.
Hello, what do you mean by "GPU Scope" ?
In which section of the DSDT i have to insert the entry above?
I've tried to search GPU in my DSDT, but I cannot find any section with that name....

#11
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

View Postlalya, on Mar 18 2011, 08:57 PM, said:

Hello, what do you mean by "GPU Scope" ?
            In which section of the DSDT i have to insert the entry above?
            I've tried to search GPU in my DSDT, but I cannot find any section with that name....
            
            open Terminal and type:
            ioreg -rtbSk AppleDisplayType

You should obtain something like that:
            +-o Root    <class IORegistryEntry>  

          +-o MacBookAir2,1  <class IOPlatformExpertDevice>  

            +-o AppleACPIPlatformExpert  <class AppleACPIPlatformExpert>  

              +-o PCI0@0  <class IOACPIPlatformDevice>  

                +-o AppleACPIPCI  <class AppleACPIPCI>  

                  +-o IXVE@10  <class IOPCIDevice>  

                    +-o IOPCI2PCIBridge  <class IOPCI2PCIBridge>  

                      +-o IGPU@0  <class IOPCIDevice>  

                        +-o NVDA,Display-A@0  <class IONDRVDevice>  

                          +-o NVDA  <class NVDA>  

                            +-o display0  <class IODisplayConnect>  

                              +-o ACPIBacklightDisplay  <class ACPIBacklightDisplay>  

    The GPU is the last device of class IOPCIDevice
Use the classic _DSM method to inject the properties.


#12
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

View Post1337David, on Mar 14 2011, 07:18 AM, said:

I made the changes to the DSDT. I though mrd752002 had them but he didn't. The hotkey notification works but the display preference slider doesn't, I included by DSDT in case I screwed up. As well could there be a chance to get itunes hotkeys working? No hurry cause I use Bowtie to bind windows-arrow keys to use itunes anyways.

Attachment dsdt.aml.zip

I've found this modified voodoo driver with the other Fn keys working (play, FF, FB, stop?, numeric keypad)
http://osx86.co/f36/...nd-tiger-t6814/

I'm not using any voodooPS2 driver, all I've found works great but after some minutes my system didn't respond to mouse/keyboard events... Strange since others didn't have this problem on the same hardware.

#13
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

View Post1337David, on Mar 14 2011, 07:18 AM, said:

I made the changes to the DSDT. I though mrd752002 had them but he didn't. The hotkey notification works but the display preference slider doesn't, I included by DSDT in case I screwed up.
Attachment dsdt.aml.zip

You have not added good properties in the IGPU device _DSM method, copy them from my DSDT or follow instruction on the topic top post !

#14
InNewtonITrust

InNewtonITrust

    InsanelyMac Protégé

  • Members
  • Pip
  • 11 posts
Hey, HotKoffy.
I'm using your DSDT (from the first post of this topic), and have this problem: The hotkey brightness indicator shows up, but the white bars don't increase or decrease. The slider doesn't work either. The

Before i modify my original DSDT, can you think of why this might be happening?

#15
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

View PostInNewtonITrust, on Mar 23 2011, 05:53 PM, said:

Hey, HotKoffy.
I'm using your DSDT (from the first post of this topic), and have this problem: The hotkey brightness indicator shows up, but the white bars don't increase or decrease. The slider doesn't work either. The

Before i modify my original DSDT, can you think of why this might be happening?

Some words are missing in your post... Dificult to respond ;)

Do you have the original 2 Go of RAM ?
Can you post your modify DSDT ?

#16
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

View PostInNewtonITrust, on Mar 23 2011, 05:53 PM, said:

Hey, HotKoffy.
I'm using your DSDT (from the first post of this topic), and have this problem: The hotkey brightness indicator shows up, but the white bars don't increase or decrease. The slider doesn't work either. The

Before i modify my original DSDT, can you think of why this might be happening?

An idea: I have renamed the device in my DSDT

in :
Method (_BCM, 1, NotSerialized)
{
Alias (^^^^LPCB.EC.PWAC, PWAC)
Store (SizeOf(PWAC), Local0)
While (Local0)
{
Decrement (Local0)
Store (DerefOf (Index (PWAC, Local0)), Local1)
If (LGreaterEqual (Arg0, Local1))
{
Store (Local0, LBTN)
Break
}
}
^^^^LPCB.EC.ECBR (Arg0)
}

Method (_BQC, 0, NotSerialized)
{
Alias (^^^^LPCB.EC.PWAC, PWAC)
Store(GNVS (0x4498), local0)
Return (DerefOf (Index (PWAC, local0)))
}


Replace:
  • "EC" by "EC0"
  • "LPCB" by "SBRG"


#17
InNewtonITrust

InNewtonITrust

    InsanelyMac Protégé

  • Members
  • Pip
  • 11 posts
Sorry! :huh:
The problem: The brightness slider stays at its maximum extremity (OSX thinks the brightness is always max).
The BIOS still controls brightness, but the Hotkey displays no change.

I've attached my DSDT, and also images of the problem. Please check it out.

Attached File  PrefSlider.png   350.07K   65 downloadsAttached File  Hotkey.png   424.61K   46 downloads

Attached File  dsdtNewton.dsl.zip   36.7K   11 downloads

PS- Yes, I have 2GB. And yes, I changed those device names when I compiled...

#18
MastroPino

MastroPino

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
Hello I have got another issue, if I install this kext my monitor doesn't start! I mean that after loading OSX will not starts and the monitor stays black! Someone have any idea? For fix this and reboot my osx, I boot with -x and remove the kext.

#19
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

View PostInNewtonITrust, on Apr 4 2011, 09:15 AM, said:

Sorry! :)
The problem: The brightness slider stays at its maximum extremity (OSX thinks the brightness is always max).
The BIOS still controls brightness, but the Hotkey displays no change.

I've attached my DSDT, and also images of the problem. Please check it out.

Attachment PrefSlider.pngAttachment Hotkey.png

Attachment dsdtNewton.dsl.zip

PS- Yes, I have 2GB. And yes, I changed those device names when I compiled...

I've watched your DSDT and you have two times injecting properties with _DSM method in IGPU, one in the device declaration, the 2nd in a Scope (IXVE.IGPU) block.
I don't know what is happening but I think only one is executed and I guess the wrong : without @0,AAPL,boot-display.

You can verify if the driver is loaded with ioreg | grep Display or look in kernel messages (dmesg or with Console.app.

#20
hotKoffy

hotKoffy

    InsanelyMac Protégé

  • Members
  • PipPip
  • 79 posts

View PostMastroPino, on Apr 8 2011, 08:18 AM, said:

Hello I have got another issue, if I install this kext my monitor doesn't start! I mean that after loading OSX will not starts and the monitor stays black! Someone have any idea? For fix this and reboot my osx, I boot with -x and remove the kext.

Which version of osx do you use ?





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

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