VoodooRMI.kext是黑苹果屋搜集到的一款黑苹果笔记本电脑触控驱动。它是Linux上Synaptic RMI驱动程序的macOS端口。RMI4用于触摸屏,触摸板和其他传感器-尽管此实现仅包含用于触控板/跟踪点的代码。这既适用于Synaptic的I2C HID触控板,也适用于Synaptic的SMBus触控板。按照以下说明进行操作时,请确保仅根据触控板的功能选择I2C或SMBus。
下载地址附件包括以下驱动:
VoodooRMI.kext
VoodooSMBus.kext
支持的功能
- Clickpad的强制触摸仿真(按下Clickpad并增加手指压力)
- 3和4手指手势
- 追踪点
- SMBus或I2C通讯
兼容性
Synaptic触控板通常可以在SMBus或I2C上运行,但不能同时在两者上运行。请密切注意它在哪个总线上工作。
SMBus
Windows:
- 在设备管理器下检查Synaptics SMBus设备
Linux:
- 如果您将intertouch(i.e. psmouse.intertouch=1)用于Synaptic触控板,则它是兼容的
i2c-tools
从您的包裹经理那里获取。运行i2cdetect -l
,并记下SMBus的数字(通常为零)。运行i2cdetect #
,其中#是您从运行先前命令获得的数字。突触设备始终位于地址0x2c,因此请在该地址检查以外的其他内容--
。UU
如果是Synaptics设备,通常会以我的经验显示。- 如果触控板没有出现,则可能仍然可以使用。触控板有一个或两个未显示但仍兼容的示例。
- 如果您运行
dmesg
并找到一条消息,可能是兼容的,"Your touchpad x says it can support a different bus."
并且它是一个Synaptic触控板。
I2C
macOS苹果系统:
- 如果您已经安装了VoodooI2CHID,请检查IORegistry中的以下值
VoodooI2CHIDDevice
具有HIDDescriptor
含有VendorID
0x6cb
,或- 的父设备
VoodooI2CHIDDevice
已经name
含有SYN
或SYNA
Windows:
- 检查
HID-compliant touch pad
在设备管理器- 在属性中,验证
General
-location
是on I2C HID Device
和Details
-Hardware Ids
包含VID_06CB
(或SYN
,SYNA
)
- 在属性中,验证
Linux:
- 检查存在
i2c-SYN
在dmesg
。 i2c-tools
从软件包管理器中获取信息,并使用该i2cdetect
工具查看地址为0x2c的是否有用于非SMBus总线的设备。如果您在SMBus下看到它,则我会使用SMBus,因为触控板在SMBus下似乎运行得更好!
要求
SMBus
- VoodooSMBus
- 苹果的SMBus PCI控制器无法加载,因为它会干扰VoodooSMBus。
- VoodooRMI版本(目前)包括VoodooSMBus。如果您自己构建VoodooSMBus,请从VoodooSMBus git repo的Dev分支进行构建。
- VoodooPS2> = 2.2.0
- 重置触控板的PS2
- 应该注入VoodooPS2Trackpad
I2C
- 需要VoodooI2C 2.5或更高版本
- 按照其文档确定是否需要GPIO固定。
- 轮询模式应该可以正常工作
- 如果设备的ACPI名称未包括在下面或未标记为未知,则可以自己添加它并创建PR /问题
Name | Main function |
---|---|
SYN1B7F |
F12 |
SYNA0000 |
F11 |
SYNA1202 |
F12 |
SYNA2393 |
unknown |
SYNA2B2C |
F12 |
SYNA2B31 |
F12 |
SYNA2B33 |
F11 |
SYNA2B34 |
unknown |
SYNA3105 |
unknown |
SYNA3602 |
unknown |
SYNA7500 |
unknown |
SYNA7501 |
unknown |
安装
- 将所需的kexts添加到您的引导程序
- 禁用voodoops2鼠标,如果适用,从PS2 kext中禁用VoodooInput。
- 请注意,如果使用Acidanthera的VoodooPS2 2.2.0或更高版本,则应注入VoodooPS2Trackpad
- 注入VoodooPS2Trackpad不是严格的要求
- 对于OpenCore用户,请确保将VoodooInput,VoodooTrackpoint和RMISMBus / RMII2C添加到Config.plist。
- RMISMBus / RMII2C应该在VoodooRMI之后
- 所有依赖项都在下面找到
VoodooRMI.kext/Contents/PlugIns/
您通常只需要下面两个kexts中的一个
- 如果将VoodooI2C用于触控板,则需要RMII2C
- 如果将VoodooSMBus用于触控板,则需要RMISMBus
不支持将此kext加载到“库/扩展名”或“系统/库/扩展名”中。这可能不会中断加载,建议先进行注入测试。
配置
可以在kext本身的Info.plist下编辑以下值-无需重新编译即可更改这些值。
请注意,使用非整数值会导致未定义的行为,这可能会阻止kext的加载
Value | Default | Description |
---|---|---|
ForceTouchEmulation |
True | Allows Force Touch emulation on Clickpads |
ForceTouchMinPressure |
90 | Minimum z value to trigger Force touch when clickpad is clicked |
DisableWhileTypingTimeout |
100 | Milliseconds after typing in which to reject trackpad packets |
TrackpointMultiplier |
20 | Multiplier used on trackpoint inputs (other than scrolling). This is divided by 20, so the default value of 20 will not change the output value at all |
TrackpointScrollMultiplierX |
20 | Multiplier used on the x access when middle button is held down for scrolling. This is divded by 20. |
TrackpointScrollMultiplierY |
20 | Same as the above, except applied to the Y axis |
TrackpointDeadzone |
1 | Minimum value at which trackpoint reports will be accepted. This is subtracted from the input of the trackpoint, so setting this extremely high will reduce trackpoint resolution |
MinYDiffThumbDetection |
200 | Minimum distance between the second lowest and lowest finger in which Minimum Y logic is used to detect the thumb rather than using the z value from the trackpad. Setting this higher means that the thumb must be farther from the other fingers before the y coordinate is used to detect the thumb, rather than using finger area. Keeping this smaller is preferable as finger area logic seems to only be useful when all 4 fingers are grouped together closely, where the thumb is more likely to be pressing down more |
请注意,您可以使用Rehabman的ioio临时设置属性(直到下一次重新启动)。ioio -s RMIBus ForceTouchEmulation false
加载&卸载
对于加载,您可能需要将RMII2C / RMISMBus的依赖项放入kextload命令中。请注意,RMISMBus / RMII2C取决于VoodooRMI。
以下示例假定VoodooSMBus / VoodooI2C与VoodooRMI位于同一文件夹中。如果不是,则需要为这些kext提供路径。从macOS手动加载时,请记住,必须部分禁用csrutil才能允许未签名的kext,而kext必须由Root拥有。
改变kext的所有者
// Note that this changes the owner of every kext in the directory your in
sudo chown -R root:wheel *.kext
手动加载kext
SMBus示例:
cd path/to/unziped-VoodooRMI_Debug
sudo kextutil -vvvv -d VoodooRMI.kext -d VoodooSMBus.kext VoodooRMI.kext/Contents/PlugIns/RMISMBus.kext
I2C的示例:
sudo kextutil -vvvv -d VoodooRMI.kext -d VoodooI2C.kext VoodooRMI.kext/Contents/PlugIns/RMII2C.kext
对于卸载,您可以使用捆绑软件ID。尽管您可能需要连续卸载两次才能配合使用,但它应该干净地卸载。
sudo kextunload -vvvv -b com.1Revenger1.RMISMBus -b com.1Revenger1.VoodooRMI
故障排除
请记住以下几点:
- 确保VoodooSMBus / VoodooI2C正在加载和连接
- 确保正在加载VoodooInput / VoodooTrackpoint
- IORegistryExplorer是查看正在加载哪些函数以及正在加载/未加载什么的好方法
- 获取日志困难
- 如果在macOS中加载,则可以使用
sudo log show --last 5m | grep VRMI
- 如果注入,您将要添加引导arg
msgbuf=1048576
并使用sudo dmesg | grep VRMI
- 如果在macOS中加载,则可以使用
更新日志 · 历史版本
【解压密码:imacos.top】
评论0