本人华硕笔记本。虽然说笔记本有键盘背光灯很小众,加上个华硕就更小众了,然而,还是有人用的。但是论坛里关于华硕键盘背光灯的帖子似乎只有一篇,而且还没说完整。。。 无奈,只好自己去国外爬贴,自行翻译,顺便带给大家。
地址:http://forum.osxlatitude.com/index.php?/topic/1968-fn-hotkey-and-als-sensor-driver-for-asus-notebooks/
在win下,背光灯亮度共有3级,你可以数数看(然而我在原帖中看到有16级的,这是神马状况?!)
现在开始
一、给DSDT打补丁: 1、DSDT中搜索Device(ATKD),比如说我的。
2(1)、在Device(ATKD)的第一个大括号右边回车,输入以下代码(4级亮度)
PS:在下面的^^PCI0.LPCB.EC0.WRAM (0x04B1, Local1) 两行中,并不是每台电脑都是“LPCB”,有些是”SBRG“,至于是哪个,请搜索“Method (SLKB”,在其下面会有^^PCI0.XXXX.EC0.WRAM这一行,看看这里的XXXX是什么,下面的两行就随着更改 - Name (BOFF, Zero)
- Method (SKBL, 1, NotSerialized)
- {
- If (Or (LEqual (Arg0, 0xED), LEqual (Arg0, 0xFD)))
- {
- If (And (LEqual (Arg0, 0xED), LEqual (BOFF, 0xEA)))
- {
- Store (Zero, Local0)
- Store (Arg0, BOFF)
- }
- Else
- {
- If (And (LEqual (Arg0, 0xFD), LEqual (BOFF, 0xFA)))
- {
- Store (Zero, Local0)
- Store (Arg0, BOFF)
- }
- Else
- {
- Return (BOFF)
- }
- }
- }
- Else
- {
- If (Or (LEqual (Arg0, 0xEA), LEqual (Arg0, 0xFA)))
- {
- Store (KBLV, Local0)
- Store (Arg0, BOFF)
- }
- Else
- {
- Store (Arg0, Local0)
- Store (Arg0, KBLV)
- }
- }
-
- Store (DerefOf (Index (PWKB, Local0)), Local1)
- ^^PCI0.LPCB.EC0.WRAM (0x04B1, Local1) // Haswell/Ivy
- ^^PCI0.LPCB.EC0.WRAM (0x044B, Local1) // Sandy/Ivy
- Return (Local0)
- }
-
- Method (GKBL, 1, NotSerialized)
- {
- If (LEqual (Arg0, 0xFF))
- {
- Return (BOFF)
- }
-
- Return (KBLV)
- }
复制代码
2(2)原帖中16级的代码是不一样的,如果你是4级的,请不要使用 - Name (BOFF, Zero)
- Method (SKBL, 1, NotSerialized)
- {
- If (Or (LEqual (Arg0, 0xED), LEqual (Arg0, 0xFD)))
- {
- If (And (LEqual (Arg0, 0xED), LEqual (BOFF, 0xEA)))
- {
- Store (Zero, Local0)
- Store (Arg0, BOFF)
- }
- Else
- {
- If (And (LEqual (Arg0, 0xFD), LEqual (BOFF, 0xFA)))
- {
- Store (Zero, Local0)
- Store (Arg0, BOFF)
- }
- Else
- {
- Return (BOFF)
- }
- }
- }
- Else
- {
- If (Or (LEqual (Arg0, 0xEA), LEqual (Arg0, 0xFA)))
- {
- Store (KBLV, Local0)
- Store (Arg0, BOFF)
- }
- Else
- {
- Store (Arg0, Local0)
- Store (Arg0, KBLV)
- }
- }
- Store (DerefOf (Index (KBPW, Local0)), Local1)
- ^^PCI0.LPCB.EC0.WRAM (0x04B1, Local1) // Haswell/Ivy
- ^^PCI0.LPCB.EC0.WRAM (0x044B, Local1) // Sandy/Ivy
- Return (Local0)
- }
- Name (KBPW, Buffer (0x10)
- {
- /* 0000 */ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
- /* 0008 */ 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
- })
- Method (GKBL, 1, NotSerialized)
- {
- If (LEqual (Arg0, 0xFF))
- {
- Return (BOFF)
- }
- Return (KBLV)
- }
复制代码
3、打完后,如图
二、DSDT折腾完了,现在来说说需要的驱动:AsusNBFnKeys.kext(附件有,下载即可用)
务必确保键盘已驱动(Fn可以无效,因为此驱动就是解决fn键的)
打开AsusNBFnKeys.kext的info.plist,找到<key>Preferences</key> 下面说说下面键值的作用(很重要) <key>HasKeyboardBacklight</key> 有没有背光灯,必须设为true,否则按Fn+F3、F4无效,无法调节 <key>KBackLightlvlAtBoot</key> 开机时的灯光亮度,0最低(即关闭),3最高(若为16级,则此处为1-15) <key>IdleKBacklightAutoOff</key> 闲置时背光灯自动关闭(如果本来就不会自动关闭,设了也无效) <key>IdleKBacklightAutoOffTimeout</key> 当上一项设为true时,此项有效,为自动关闭时间,单位毫秒(1秒=1000毫秒) <key>KeyboardHas16BLightLvls</key> 灯光是否为16级,再次吐槽,如果真的有16级,那每级亮度差别能有多大
<key>F3KeyFunction</key> Fn+F3功能 <key>F4KeyFunction</key> Fn+F4功能 这两项合在一起说明(原帖说,不同值功能不同,然而我测试后发现,压根就没用,无论数值是什么,都是调节亮度) 此项默认值为0 - 0 - 默认功能,如果打了背光灯补丁,则为调节亮度(HasKeyboardBacklight=true)1 - Launchpad2 - Misson control3 - Dashboard4 - Desktop 桌面5 - Application window 应用程序窗口6 - Eject 貌似是弹出光驱
复制代码 好吧。也许是我人品不好。。无论设哪个数值都无效
各位如果成功了回个帖呗,不要沉太快
AsusNBFnKeys.kext.zip
(28.59 KB, 下载次数: 261)
补充内容 (2015-10-27 06:55):
第一步,搜索的是Device (ATKD) ,我错了。。。 |