
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含有VendorID0x6cb,或- 的父设备
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中加载,则可以使用 
 
下载地址
下载地址包含更新历史版本
- VoodooRMI.kext v0.2
 - VoodooRMI.kext v0.3
 - VoodooRMI.kext v0.4
 - VoodooRMI.kext v0.5
 - VoodooRMI.kext v1.0.0
 - VoodooRMI.kext v1.0.1
 - VoodooRMI.kext v1.1.0
 - VoodooRMI.kext v1.3.0
 - VoodooRMI.kext v1.3.1
 - VoodooRMI.kext v1.3.2
 - VoodooRMI.kext v1.3.3
 - VoodooRMI.kext v1.3.4-20210923
 
【解压密码:imacos.top】

                
                
                
评论1