积分 2102 最后登录 2024-4-18 精华 1 阅读权限 220 主题 288 UID 3081083 帖子 2708 PB币 90423 威望 169 贡献 0 技术 56 活跃 2784
这货不是澎湖冰洲
UID 3081083 帖子 2708 PB币 90423 贡献 0 技术 56 活跃 2784
发表于 2019-7-24 15:54:32
IP属地辽宁
| 显示全部楼层
本帖最后由 penghubingzhou 于 2019-7-24 17:32 编辑
本文来自于触摸群的bat,是对本教程VoodooI2C触摸板驱动教程 的补充。感谢bat的倾力付出!!!建议所有触摸板小白在学习完原教程后,来这里看一下,以解决一些困惑你的东西。
目录 致那些无脑放完驱动就能用了的小小小白 VoodoI2C 不同于任何一个其他的黑苹果驱动,直接将驱动放入 Clover 或者 L/E 是 完全错误 的做法,根据个人经验,高达 90% 以上的设备都默认使用 APIC 中断,只有极少数都设备默认 使用 GPIO 中断,然而,又因为绝大多数设备的 IOInterruptSpecifiers 都大于 2F,因此 APIC 中断控制器根本就不会工作,所以,即使你把驱动放进去能用了,也是极为低效的轮询模式,如果你阅读完 群主博客 和 本篇教程,你会发现这个问题显而易见。
仅有极少数情况默认就能正确驱动
致刚接触触摸板的小白 在看这篇文章前,请仔细阅读群主博客 ,这篇文章旨在补充教程中没有的小细节,文章啰嗦但非常详细(废话连篇),请您耐心阅读(别光欣赏图片去了😝)
FAQ Dalao! 我虽然没有尝试,但是我想问问的触摸板到底能不能驱动啊!
Dalao! 我该怎么用这些驱动,全部放进去吗?
Dalao! 群里的人都在说哪国语言啊,什么 HID, GPIO 是什么鬼???
Dalao! IORegisteryExplorer 里面触摸板设备名称里面没有 IOInterruptSpecifiers ,怎么办?
Dalao! VoodooI2C 是不是万能的,能不能完美解决所有的触摸设备?
Dalao! 什么是轮询?什么是中断?
轮询就是每隔一个特定的时间扫描一次触摸板的状态,然后改变鼠标指针坐标。中断则是你触摸板的正常工作方式 (Windows / Linux 中即是如此)。
GPIO 中断: DSDT 在 SBFG 中存在有效 GPIO Pin,CRS 方法中返回 (SBFB,SBFG),并应用启用 GPIO 控制器的补丁。 APIC 中断: (注意,不是 ACPI)当你的 IOInterruptSpecifiers 值 没有 或者小于2F(16进制)时,此时就是 APIC 中断,无需对 DSDT 进行大量修改,只用应用 Windows(20XX) 补丁即可。此时使用的是 APIC 控制器而不是 GPIO 控制器。 轮询: DSDT 中除了 Windows(20XX) 补丁以外,不应用其他补丁,CRS 方法中只返回 SBFB 或者 (SBFB,SBFI)。
Dalao! 到底是中断好还是轮询好?😖
Dalao! DSDT 里我找不到我的触摸板啊,搜不到 SBFG 怎么办?
Dalao! DSDT 看得头晕眼花怎么办?
Dalao! APIC 中断和 GPIO 中断有什么区别?
Dalao! 能不能通过终端重新加载 VoodooI2C ?
触摸板专有词汇集合 HID
Human Interface Device 说白了就是人和电脑交互的设备
ELAN
ElanTech 生产的触摸板,简称 ELAN,常见于华硕电脑
SYNA
Synaptics 新思触摸板
CRS方法
DSDT 中用于返回值的“方法”
PS/2
PS/2 通道的触摸板,请使用 VoodooPS2 (Acidanthera自带手势), 如果出问题可以尝试 Rehabman 版本并配上手势文件,不建议使用 ApplePS2SmartTouchPad (多年未更新,且不开源)
I2C
I2C 通道的触摸板,请使用 VoodooI2C
先暂时想到这么多。。。。
触摸板必备软件集合(均在群文件中) DSDT 触摸板部分详解 排错 I. 五国 II. 学会使用 maclog 提取日志
下载完后双击解压
双击运行,程序会先调用终端,接着会弹出来 “魔改过的” 控制台日志窗口
在右上角的搜索栏中搜索 Voodoo
将文本复制粘贴到记事本中
再在右上角的搜索栏中搜索 你的设备名 ,比如 ETPD, TPAD, TPD0
将文本复制粘贴到记事本中
保存好文本文档
III. 确保你使用了正确 VoodooI2C 及附属驱动,不能多也不能少 IV. 查看 IORegisteryExplorer 里 VoodooI2C 是否正常加载 不正常1:
不正常2:
出现如下字样
解决方案: 你转换的 GPIO Pin 超出范围了,换另一个
出现如下字样
解决方案: 确认你使用了正确的驱动及附属驱动并且加上了屏蔽冲突驱动的补丁
七代设备出现如下字样,或者 CPU 占用极高
解决方案:
使用 SSDT-I2CxConf 修补 I2C 速度常量 SSCN 和 FMCN
使用方法 1. 将 SSDT-I2CxConf.dsl 另存为编译成 SSDT-I2CxConf.aml 2. 在 Clover 中添加如下重命名:
如果依旧没有效果
删除上方的改动,在你的DSDT的触摸板设备上方加上这个:
像这样:
如果不理想,再尝试这个:
八代标压设备出现如下字样
VoodooI2CControllerNub::pci8086,aXXX SSCN not implemented in ACPI tablesVoodooI2CControllerNub::pci8086,aXXX FMCN not implemented in ACPI tablesVoodooI2CControllerDriver::pci8086,aXXX Warning: Error getting bus config, using defaults where necessaryVoodooI2CControllerDriver::pci8086,a369 I2C Transaction error detailsVoodooI2CControllerDriver::pci8086,a369 slave address not acknowledged (7bit mode)VoodooI2CControllerDriver::pci8086,a369 I2C Transaction error: 0x08800001 - abortingRequest for HID descriptor failedCould not get HID descriptor解决方案:
使用 SSDT-I2CxConf 修补 I2C 速度常量 SSCN 和 FMCN
使用方法 1. 将 SSDT-I2CxConf.dsl 另存为编译成 SSDT-I2CxConf.aml 2. 在 Clover 中添加如下重命名:
如果依旧没有效果
删除上方的改动,在你的DSDT的触摸板设备上方加上这个
Method (SSCN, 0, NotSerialized){ Return (PKG3 (SSH1, SSL1, SSD1))}Method (FMCN, 0, NotSerialized){ Name (PKG, Package (0x03) { 0x0101, 0x012C, 0x62 }) Return (PKG) /* \_SB_.PCI0.I2C1.FMCN.PKG_ */}然后在 Scope (_SB.PCI0.I2C1) 上面加上
Method (PKG3, 3, Serialized){ Name (PKG, Package (0x03) { Zero, Zero, Zero }) PKG [Zero] = Arg0 PKG [One] = Arg1 PKG [0x02] = Arg2 Return (PKG) /* \PKG3.PKG_ */}像这样:
V. 尝试输入密码登陆界面或者不带鼠标开机能不能使用触摸板 VI. 驱动放进 Library/Extensions,然后重建缓存
然后打开终端,输入
sudo kextcache -i/VII. 尝试睡眠唤醒 如果还是不行,请提交一下内容 最后,祝你早日见到这个感人的界面,用上丝滑的触摸板!
[size=0.9] [size=1em]//
< ## 手势问题及解决方案
鸣谢 由于远景图文限制,现已将完整版放入我博客之中,大家可自行前往查看:https://www.penghubingzhou.cn/2019/07/24/VoodooI2C%20DSDT%20Edit%20FAQ/ 复制代码
展开阅读全文​
2
查看全部评分