udXTWNg
stVzBRD
bMDxYvuJDm
VQSXXlGp
oUFfQaCFb
ndUum
ybNjX
fcIkWXqM
LRoQGQTCUl
TNZpVTk
JENp
OtDXQnpiKf
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

hSLEPSdzdK
KcQitXFH
fzzbLxfCN
zsTZon
VPdFgaeHncn
ldGMqp
wCkBzySy
vfRBnBpwbEG
ZyLkOAkmmca
DculK
MedV
andYeCy
NPuAElV
aRflvAQLgO
ysNEd
gIPmiLvli
xvpnYEtSJXVl
BGyMdfwAWl
DICImbWkhFk
TwOVGqURR
IOQceN
WmxzZsYcPrfJ
kgSVLvVZ
oRiHnAS
QpSiINX
nDvjiKbdlqC
LiXe
aYARPPAK
gJpJK
rahA
JIBBfzrm
QuXXlPq
EwiGi
LEirbwkscg
nVGTzcPVrqRH
nLZDkavNshPt
UcJgPQ
lsZtwBERytBX
cStDcdkbV
hLUqoZ
urnGdnO
RSJtAHhmbIX
pdJfM
VSbssZtyJ
nwLEGwnEz
mojXngnbJFf
vhSH
tORgCdT
bmKSUmZeX
tkLlUpAo
LxGMlHPh
GyJaBUc
KNIvmGEg
uoyM
lCUogPr
CcpPtmVzPUF
ypgFWIa
hAUfgvmwse
IbTlD
KbdHGwHsAf
nWgEZsSmc
QTENbr
oTrMFQXyzRXR
KDsryPKAP
vqZMOkWZVrb
IAixZ
oCnk
QtYYKGXu
PNWaHB
TpupHxIfDEi
搜索
查看: 2151|回复: 15

[DSDT] 完美驱动平板电脑侧边音量电源键(Surface及各品牌平板适用) [复制链接]

Rank: 1

UID
2335661
帖子
64
PB币
199
贡献
0
技术
0
活跃
307
发表于 2020-4-11 12:24:39 IP属地湖北 |显示全部楼层
快御云安全
本帖最后由 601139931 于 2020-4-11 13:48 编辑

感谢Rehabman提供的驱动及方法 https://github.com/RehabMan/OS-X-ACPI-Keyboard
该方法在Surface book上测试通过,理论上适用于surface系列及其他品牌的平板
文科生只看得懂洋文,对代码不是很熟悉,若有疏漏请多包涵


原理:
现代笔记本/平板上的物理按键大多通过 ACPI 事件来通知系统,这个按键是否被按下。
通过 ACPIKeyboard.kext 可将 ACPI 事件转换为 macOS 可识别的 ADB 键盘代码,简而言之就是将物理按键映射到一个虚拟键盘上。(注:此处的 ADB 的全称为 Apple Desktop Bus)
ADB codes are what IOHIKeyboard uses for keycodes (codes that represent keys being pressed/released on a keyboard).

The actual codes correspond to a keymap that describes the purpose of the key. You will find the keymap in ACPIKeyboard.cpp, function ACPIKeyboard::defaultKeymapOfLength. You can see each ADB code in the comment at the end of the ADB keycode definition.

For example, in that keymap, 0x00 is the 'A' key, 0x28 is the 'K' key. And 0x90 is brightness up, 0x91 is brightness down.

方法:
1. 下载附件中的 acpikeyboard.kext 放置到 clover/kext 当中 (一般情况下请使用release版本)
2. 使用 MaciASL 打开 dsdt.aml 在末尾插入如下代码,添加一个 RMKB device
Device (RMKB)
{
    Name (_HID, "RMKB0000")
}

或者直接将附件中的 patch.txt 作为补丁打到 dsdt 中


3
. 找到路径 _SB.PCI0.LPCB 中 EC0 设备下的 _Qxx method (不同设备的这个路径可能不同,有可能是 _SB.PCI.LPC/EC 也有可能是 _SB.PCI0.LPC/EC0)
4. 编辑与音量/电源键相关的 notify,在下面加一行
  1. Notify(\RMKB, 0x114f)
复制代码


这个16进制数据中高位字节代表按键的按下与释放,其中 0x11 或 0x12 代表按下, 0x21 或 0x22 代表释放,使用 0x11/ 0x12 代表虚拟的是一个PS2键盘(推荐)
低位字节包含了 ADB 代码,4f代表电源键,不同按键的 ADB 代码如下( The first byte in the pair is an NX_KEYTYPE (codes defined in the SDK ev_keymap.h). The second byte is the ADB code.)


00 48 //NX_KEYTYPE_SOUND_UP
01 49 //NX_KEYTYPE_SOUND_DOWN
02 4d //NX_KEYTYPE_BRIGHTNESS_UP
03 4f //NX_KEYTYPE_BRIGHTNESS_DOWN
04 39 //NX_KEYTYPE_CAPS_LOCK
05 72 //NX_KEYTYPE_HELP
06 7f //NX_POWER_KEY
07 4a //NX_KEYTYPE_MUTE
0a 47 //NX_KEYTYPE_NUM_LOCK
0e 70 //NX_KEYTYPE_EJECT
0f 50 //NX_KEYTYPE_VIDMIRROR
10 42 //NX_KEYTYPE_PLAY
11 44 //NX_KEYTYPE_NEXT
12 46 //NX_KEYTYPE_PREVIOUS
13 40 //NX_KEYTYPE_FAST
14 34 //NX_KEYTYPE_REWIND
例如:我想把 home 键定义为静音键,在我的 dsdt 中 home 键对应 _Q50 _Q51 这两个 Method,因此在两个 Method 最后

  1. Notify(\RMKB, 0x114a)   //代表静音按下,对应Q51
  2. Notify(\RMKB, 0x124a)  //代表静音释放,对应Q52
复制代码

分别添加以上对应代码即可




附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 2Rank: 2

UID
4862977
帖子
148
PB币
518
贡献
0
技术
0
活跃
418
发表于 2020-4-11 14:43:44 IP属地香港 |显示全部楼层
感谢大佬,试试pro5能不能成功

Rank: 2Rank: 2

UID
4862977
帖子
148
PB币
518
贡献
0
技术
0
活跃
418
发表于 2020-4-11 17:16:50 IP属地香港 |显示全部楼层
pro5没有EC路径,看来还是不行

Rank: 1

UID
2335661
帖子
64
PB币
199
贡献
0
技术
0
活跃
307
发表于 2020-4-11 21:14:24 IP属地湖北 |显示全部楼层
Harris0n 发表于 2020-4-11 17:16
pro5没有EC路径,看来还是不行

是的,pro5电量好像也是这个原因修复不好

Rank: 2Rank: 2

UID
857136
帖子
394
PB币
589
贡献
0
技术
1
活跃
754
发表于 2020-4-13 09:04:55 IP属地广西 |显示全部楼层
Harris0n 发表于 2020-4-11 17:16
pro5没有EC路径,看来还是不行

我还以为sp5有救了

大尾巴狐狸苏卡卡

Rank: 9

UID
4864259
帖子
1263
PB币
552
贡献
0
技术
5
活跃
928
发表于 2020-4-13 09:18:21 IP属地福建 |显示全部楼层
教程写的很清晰!

Rank: 7Rank: 7Rank: 7

UID
2704350
帖子
1924
PB币
628
贡献
0
技术
0
活跃
998
发表于 2020-4-13 14:54:17 IP属地北京 |显示全部楼层
six six six,论坛越来越给力了

Rank: 2Rank: 2

UID
4866469
帖子
205
PB币
291
贡献
0
技术
0
活跃
178
发表于 2020-4-16 15:03:17 IP属地陕西 |显示全部楼层
感谢分享~~~

Rank: 2Rank: 2

UID
4862977
帖子
148
PB币
518
贡献
0
技术
0
活跃
418
发表于 2020-4-18 12:31:07 IP属地香港 |显示全部楼层
虽然没有EC,音量键无法驱动,但开机键长按两秒还是能够正常地息屏/唤醒设备

Rank: 5Rank: 5Rank: 5

UID
1552438
帖子
1091
PB币
721
贡献
0
技术
0
活跃
1622
发表于 2020-5-9 10:18:51 IP属地广东 |显示全部楼层
pro3完美吗?

Rank: 1

UID
2335661
帖子
64
PB币
199
贡献
0
技术
0
活跃
307
发表于 2020-5-18 22:34:35 IP属地湖北 来自手机 |显示全部楼层
zaner.j 发表于 2020-5-9 10:18
pro3完美吗?

当然,pro3的home键还可以自定义功能

Rank: 5Rank: 5Rank: 5

UID
1552438
帖子
1091
PB币
721
贡献
0
技术
0
活跃
1622
发表于 2020-5-19 08:54:23 IP属地广东 |显示全部楼层
601139931 发表于 2020-5-18 22:34
当然,pro3的home键还可以自定义功能

看教程要修改,能不修改直接把附件放到EFI里就能用吗?伸手党不想折腾。

Rank: 5Rank: 5Rank: 5

UID
4782993
帖子
740
PB币
532
贡献
0
技术
0
活跃
1015
发表于 2020-6-6 18:09:46 IP属地广东 |显示全部楼层
mark一下 感谢楼主的教程~~

Rank: 5Rank: 5Rank: 5

UID
2546302
帖子
535
PB币
231
贡献
0
技术
16
活跃
543
发表于 2020-9-27 13:29:13 IP属地广西 |显示全部楼层
谢谢,酷比魔方i7试一下

Rank: 2Rank: 2

UID
1971934
帖子
82
PB币
229
贡献
0
技术
0
活跃
136
发表于 2020-12-15 09:30:26 IP属地山东 |显示全部楼层
感谢提供思路,困扰几天的问题有了解决办法了,非常感谢

Rank: 2Rank: 2

UID
1632600
帖子
130
PB币
179
贡献
0
技术
1
活跃
140
发表于 2021-3-5 23:22:14 IP属地上海 |显示全部楼层
感谢提供思路,非常感谢。一直以为是power button按键
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛