关于键盘Fn加方向键设置亮度小太阳的问题
本帖最后由 litaocomet 于 2017-6-27 19:42 编辑已经完美解决。ApplePS2SmartTouchPad.kext的定义稍有不同。
我的解决方案,从以前的步骤可以得到亮度Q71和Q70两个,然后IoRegistry查出键盘为PS2K,所以最后代码为:
#Edit methods _Q11 and _Q12 to interface with KBC0 (or PS2K in some systems),
into method label _Q71 replace_content
begin
// Brightness Down\n
Notify (PS2K, 0x20)\n
end;
into method label _Q70 replace_content
begin
// Brightness Up\n
Notify (PS2K, 0x10)\n
end;
目前的情况是,dsdt加入PNLF之后,亮度直接出现,可以调节并保存。
如图:
但是键盘上的默认的Fn + 方向左右键调节亮度不可用。于是我找了个usb键盘接到笔记本上,这时候可以在快捷键里面设置亮度调节,我设置了F9、F10为亮度调节快捷键,并能出现小太阳正常。
如图:
为了更加完美,我想还是用原来的Fn + 方向键来调节亮度,强迫症,伤不起啊。
于是,安装ACPIDebug,并加入补丁,用来捕获Fn + 方向左右键的数据。
得到:
于是按照介绍,如此设置了调节内容:
可是问题来了。没有任何效果啊,请问,Fn + 方向左右键不起作用!!!
请问,这里面该如何设置????
白苹果上面fn+方向左右键是没任何反应的,请你知晓 和你一样不会设置,现在设置了f4和f5 qiqisa 发表于 2017-6-27 16:35 https://www.pcbeta.com/static/image/common/back.gif
白苹果上面fn+方向左右键是没任何反应的,请你知晓
白果当然没有。
因为亮度调节现在是acpi模式,并且正常,就是不能使用默认组合键,通过acpidebug.kext和加入ec事件patch来检测组合键返回值,并且得到了。所以下一步就是如何把这个返回值加入dsdt,修复默认组合键的亮度调节。
同求,等待大神降临 我的方法是clover的DSDT段加入PNLF之后,亮度直接出现,可以调节并保存,然后在键盘快捷键那里设置某两个键为降低或增加亮度的快捷键,按的时候不用fn组合键,直接按那个快捷键就可以出现小太阳并调节亮度。 yanghenry 发表于 2017-6-27 21:19 https://www.pcbeta.com/static/image/common/back.gif
我的方法是clover的DSDT段加入PNLF之后,亮度直接出现,可以调节并保存,然后在键盘快捷键那里设置某两个键 ...
你看看你键盘上印刷的组合键是什么,然后通过ACPIDebug来获取这个组合键的扫描码,然后dsdt里面定义,就OK了。 我加入了acpidebug补丁怎么在控制台搜不到 心灵似水流年 发表于 2017-6-27 22:53 https://www.pcbeta.com/static/image/common/back.gif
我加入了acpidebug补丁怎么在控制台搜不到
1.ACPIDebug最好安装到/S/L/E,修复权限,重建缓存
2.然后dsdt里面加入ACPIDebug Methodpatch:
#Maintained by: RehabMan for: ACPIDebug
#debug.txt
#
# Facility for writing trace output to system.log
#
# Use in conjunction with ACPIDebug.kext
#
# EXPERIMENTAL
#
# Written by RehabMan 2013-10-15
#
into device label RMDT remove_entry;
into definitionblock code_regex . insert
begin
Device (RMDT)\n
{\n
Name (_HID, "RMD0000")\n
Name (RING, Package(256) { })\n
Mutex (RTMX, 0)\n
Name (HEAD, 0)\n
Name (TAIL, 0)\n
// PUSH: Use to push a trace item into RING for ACPIDebug.kext\n
Method (PUSH, 1, NotSerialized)\n
{\n
Acquire(RTMX, 0xFFFF)\n
// push new item at HEAD\n
Add(HEAD, 1, Local0)\n
If (LGreaterEqual(Local0, SizeOf(RING))) { Store(0, Local0) }\n
if (LNotEqual(Local0, TAIL))\n
{\n
Store(Arg0, Index(RING, HEAD))\n
Store(Local0, HEAD)\n
}\n
Release(RTMX)\n
Notify(RMDT, 0x80)\n
}\n
// FTCH: Used by ACPIDebug.kext to fetch an item from RING\n
Method (FTCH, 0, NotSerialized)\n
{\n
Acquire(RTMX, 0xFFFF)\n
// pull item from TAIL and return it\n
Store(0, Local0)\n
if (LNotEqual(HEAD, TAIL))\n
{\n
Store(DerefOf(Index(RING, TAIL)), Local0)\n
Increment(TAIL)\n
If (LGreaterEqual(TAIL, SizeOf(RING))) { Store(0, TAIL) }\n
}\n
Release(RTMX)\n
Return(Local0)\n
}\n
// COUN: Used by ACPIDebug.kext to determine number of items in RING\n
Method (COUN, 0, NotSerialized)\n
{\n
Acquire(RTMX, 0xFFFF)\n
// return count of items in RING\n
Subtract(HEAD, TAIL, Local0)\n
if (LLess(Local0, 0)) { Add(Local0, SizeOf(RING), Local0) }\n
Release(RTMX)\n
Return(Local0)\n
}\n
// Helper functions for multiple params at one time\n
Method (P1, 1, NotSerialized) { PUSH(Arg0) }\n
Method (P2, 2, Serialized)\n
{\n
Name (TEMP, Package(2) { })\n
Store(Arg0, Index(TEMP, 0))\n
Store(Arg1, Index(TEMP, 1))\n
PUSH(TEMP)\n
}\n
Method (P3, 3, Serialized)\n
{\n
Name (TEMP, Package(3) { })\n
Store(Arg0, Index(TEMP, 0))\n
Store(Arg1, Index(TEMP, 1))\n
Store(Arg2, Index(TEMP, 2))\n
PUSH(TEMP)\n
}\n
Method (P4, 4, Serialized)\n
{\n
Name (TEMP, Package(4) { })\n
Store(Arg0, Index(TEMP, 0))\n
Store(Arg1, Index(TEMP, 1))\n
Store(Arg2, Index(TEMP, 2))\n
Store(Arg3, Index(TEMP, 3))\n
PUSH(TEMP)\n
}\n
Method (P5, 5, Serialized)\n
{\n
Name (TEMP, Package(5) { })\n
Store(Arg0, Index(TEMP, 0))\n
Store(Arg1, Index(TEMP, 1))\n
Store(Arg2, Index(TEMP, 2))\n
Store(Arg3, Index(TEMP, 3))\n
Store(Arg4, Index(TEMP, 4))\n
PUSH(TEMP)\n
}\n
Method (P6, 6, Serialized)\n
{\n
Name (TEMP, Package(6) { })\n
Store(Arg0, Index(TEMP, 0))\n
Store(Arg1, Index(TEMP, 1))\n
Store(Arg2, Index(TEMP, 2))\n
Store(Arg3, Index(TEMP, 3))\n
Store(Arg4, Index(TEMP, 4))\n
Store(Arg5, Index(TEMP, 5))\n
PUSH(TEMP)\n
}\n
Method (P7, 7, Serialized)\n
{\n
Name (TEMP, Package(7) { })\n
Store(Arg0, Index(TEMP, 0))\n
Store(Arg1, Index(TEMP, 1))\n
Store(Arg2, Index(TEMP, 2))\n
Store(Arg3, Index(TEMP, 3))\n
Store(Arg4, Index(TEMP, 4))\n
Store(Arg5, Index(TEMP, 5))\n
Store(Arg6, Index(TEMP, 6))\n
PUSH(TEMP)\n
}\n
}\n
end;
3.dsdt再加入Instrument EC Queries补丁:
我靠,帖子字数太长,内容粘贴不了了
打了补丁,控制台搜索 不到debug怎么回事10.12.5 心灵似水流年 发表于 2017-6-27 23:37 https://www.pcbeta.com/static/image/common/back.gif
打了补丁,控制台搜索 不到debug怎么回事10.12.5
你看你的ACPIDebug.kext加载了没有 litaocomet 发表于 2017-6-27 23:15 https://www.pcbeta.com/static/image/common/back.gif
1.ACPIDebug最好安装到/S/L/E,修复权限,重建缓存
2.然后dsdt里面加入ACPIDebug Methodpatch:
尝试了就是不行。不明原因 DSDT 玩的真溜 心灵似水流年 发表于 2017-6-27 23:55 https://www.pcbeta.com/static/image/common/back.gif
尝试了就是不行。不明原因
用RehabMan这个打了add dsdt debug methods。和ec 那个补丁 好帖,收藏了,有时间再弄。楼主的用的什么办法保存亮度的? 下面是我的dsdt有时间的话帮忙看看,谢谢,我想映射的事fn+f4和fn+f5,因为现在我的这两个组合可以调节显示的亮度,就是小太阳不出来,快捷设置只能单独设置f4或f5 不能组合设置 litaocomet 发表于 2017-6-27 23:45 https://www.pcbeta.com/static/image/common/back.gif
你看你的ACPIDebug.kext加载了没有
在RehabMan的源里面下载的好像2015年什么时候更新的 心灵似水流年 发表于 2017-6-28 00:17 https://www.pcbeta.com/static/image/common/back.gif
下面是我的dsdt有时间的话帮忙看看,谢谢,我想映射的事fn+f4和fn+f5,因为现在我的这两个组合可以调节显示 ...
把你的3个警告也顺手给你消除了,顺便加入了加载ACPIDebug.kext所必须的patch,你现在只需要安装这个kext就可以看到信息了。
litaocomet 发表于 2017-6-28 00:46 https://www.pcbeta.com/static/image/common/back.gif
把你的3个警告也顺手给你消除了,顺便加入了加载ACPIDebug.kext所必须的patch,你现在只需要安装这个kext ...
刚试了下,系统挂了,进不去了gtk installed错误 试了下,悲剧发生,gtk installed错误
页:
[1]
2