[Trackpad] VoodooRMI

Feb 22, 2020
Dell Precision M4700
VoodooRMI is a driver for modern SMBus and I2C trackpads from Synaptics. While many Synaptic trackpads work over PS/2, SMBus and I2C both have more bandwidth which allows the coordinates for all fingers to be sent in each packet. This aids multiple finger gestures and general responsiveness of the trackpad. VRMI uses VoodooInput, and thus supports all of the Apple gestures. This includes pinch, swipes, and three/four finger gestures.

This thread is mostly for questions and help debugging. The github repository for VoodooRMI can be found in the link below, and also has a readme which includes properties that can be configured.

How do I know my Trackpad is compatible?
I'll break this down into two parts - SMBus vs I2C detection. While SMBus and I2C are very similar protocols, the way the trackpad is presented is different.

* SMBus:
Many SMBus trackpads appear as PS/2 touchpads, making it somewhat difficult to check for SMBus compatibility.
In macOS while using Acidanthera's VoodooPS2, check ApplePS2SynapticsTrackpad for the "Intertouch Supported" property. If this property is present, VoodooRMI is supported.
In Windows, check if the SMBus controller has been renamed from "Intel SMBus Controller" to "Synaptics SMBus Controller".
In Linux, check for "intertouch" or "rmi4" in dmesg.

* I2C:
Any trackpads which have the vendor ID 0x06CB or SYN/SYNA in the ACPI ID should work.

VoodooRMI is simple to install, and directions are covered in the github repository for VoodooRMI. Little to no configuration should be needed once the kexts are being injected by the bootloader. If using OpenCore, be careful with the order of kexts. Follow the order given in the VoodooRMI readme.

Note: SMBus trackpads rely on Acidanthera's VoodooPS2Trackpad to get information about the trackpad. Make sure to include Acidanthera's VoodooPS2!

* Can now set configuration values from ACPI
* Added Function 0x17 for some trackpoint devices
Last edited: