From bb7b62ec23fc308430178e604da5e022ad00c9df Mon Sep 17 00:00:00 2001 From: Avery Black Date: Sun, 21 Mar 2021 17:02:54 -0700 Subject: [PATCH] Remove mentions of VoodooTrackpoint and update Readme (#108) --- README.md | 66 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 41 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 2659038..d25d0e2 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,12 @@ [![Gitter](https://badges.gitter.im/VoodooSMBus/dev.svg)](https://gitter.im/VoodooSMBus/dev?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) -A port for macOS of Synaptic's RMI driver from Linux. RMI4 is used for touchscreens, touchpads, and other sensors - though this implementation only has code for trackpads/trackpoints. This works for both I2C HID trackpads from Synaptic as well as Synaptic's SMBus trackpads. When following the instructions below, make sure you only select I2C or SMBus depending on your trackpad's capabilities. +A port for macOS of Synaptic's RMI Trackpad driver from Linux. This works for both I2C HID trackpads from Synaptic as well as Synaptic's SMBus trackpads. When following the instructions below, make sure you only select I2C or SMBus depending on your trackpad's capabilities. ## Supported Features * Force Touch emulation for clickpads (press down clickpad and increase finger pressure) * 3 and 4 finger gestures -* Trackpoint +* Trackpoint over PS2 Passthrough * SMBus or I2C communication ## Compatibility @@ -16,6 +16,10 @@ Synaptic trackpads generally work over SMBus or I2C, though not both. Pay close **SMBus** +macOS (Requires Acidanthera's VoodooPS2 version 2.2.0 or above): +* Look in IORegistryExplorer under `ApplePS2SynapticsTrackpad`, and look for the value `Intertouch Support=True` +* Look for "VoodooPS2Trackpad: Trackpad supports SMBus operation" within macOS logs (may need to use `sudo dmesg` to see this) + Windows: * Check under Device Manager for a Synaptics SMBus device @@ -25,7 +29,7 @@ Linux: * If you are using intertouch (i.e. psmouse.intertouch=1) for your synaptics trackpad, then it's compatible * Get `i2c-tools` from your package manager. Run `i2cdetect -l`, and note the number for SMBus (It's usually zero). Run `i2cdetect #` where # is the number you got from running the prior command. Synaptic devices are always at address 0x2c, so check at that address for anything other than `--`. It will usually appear as `UU` in my experiance if it's a Synaptics device. * If the trackpad does not show up, there is a chance that it will still work. There have been one or two examples of the trackpad not showing up but still being compatible. -* Likely compatible if you run `dmesg` and find a message along the lines of `"Your touchpad x says it can support a different bus."` and it's a synaptics trackpad. +* Likely compatible if you run `dmesg` and find a message along the lines of `"Your touchpad x says it can support a different bus."` and it's a Synaptics trackpad. **I2C** @@ -45,13 +49,9 @@ Linux: ## Requirements **SMBus** +* [Acidanthera's VoodooPS2 >= 2.2.0](https://github.com/acidanthera/VoodooPS2) * [VoodooSMBus](https://github.com/VoodooSMBus/VoodooSMBus) - * Apple's SMBus **PCI** controller cannot load, as it interferes with VoodooSMBus. * VoodooRMI releases (for now) include VoodooSMBus. If you are building VoodooSMBus yourself, build from the Dev branch of the VoodooSMBus git repo. -* [VoodooPS2 >=2.2.0](https://github.com/acidanthera/VoodooPS2) - * Needed for PS2 reset of the trackpad - * VoodooPS2Trackpad should be injected - **I2C** * [VoodooI2C](https://github.com/VoodooI2C/VoodooI2C) 2.5 or newer is required @@ -61,7 +61,7 @@ Linux: | Name | Main function | |---|---| -| `SYN1B7F` | F12 | +| `SYN1B7F` | F12 | | `SYNA0000` | F11 | | `SYNA1202` | F12 | | `SYNA2393` | unknown | @@ -76,16 +76,22 @@ Linux: ## Installation 1) Add the required kexts to your bootloader -2) Disable VoodooPS2Mouse, and if applicable, VoodooInput from within the PS2 kext. - * Note that VoodooPS2Trackpad should be injected if using Acidanthera's VoodooPS2 2.2.0 or greater - * Injecting VoodooPS2Trackpad is not a strict requirement -3) For OpenCore users, make sure to add VoodooInput, VoodooTrackpoint and RMISMBus/RMII2C to your Config.plist. - * RMISMBus/RMII2C should be after VoodooRMI - * All dependencies are found under `VoodooRMI.kext/Contents/PlugIns/` - -You generally only want **one** of the two below kexts -* RMII2C is needed if using VoodooI2C for your trackpad -* RMISMBus is needed if using VoodooSMBus for your trackpad +2) Make sure VoodooPS2 is configured as below: + * Enabled: + * VoodooPS2Controller.kext + * VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Keyboard.kext + * VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Trackpad.kext + * Disabled: + * VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Mouse.kext + * VoodooPS2Controller.kext/Contents/PlugIns/VoodooInput.kext +4) For OpenCore users, make sure to add the below kexts to your Config.plist. + * VoodooRMI/Contents/PlugIns/VoodooInput.kext + * SMBus trackpads: + * VoodooRMI.kext/Contents/PlugIns/RMISMBus.kext + * VoodooSMBus.kext + * I2C trackpads: + * VoodooRMI.kext/Contents/PlugIns/RMII2C.kext + * VoodooI2C.kext There is no support for this kext being loaded into Library/Extensions or System/Library/Extensions. This likely won't break loading it, but test with injection first before sending in a bug report. @@ -145,12 +151,22 @@ sudo kextunload -vvvv -b com.1Revenger1.RMISMBus -b com.1Revenger1.VoodooRMI ## Troubleshooting -Couple things to keep in mind: +Before creating an issue, please check the below: 1) Make sure VoodooSMBus/VoodooI2C is loading and attaching * [VoodooSMBus Troubleshooting](https://github.com/VoodooSMBus/VoodooSMBus/tree/dev#voodoosmbus-does-not-load) * [VoodooI2C Troubleshooting](https://voodooi2c.github.io/#Troubleshooting/Troubleshooting) -2) Make sure VoodooInput/VoodooTrackpoint are loading -3) IORegistryExplorer is a good way to see which Functions are loading, and what is/isn't loading -4) Getting logs is harder than it should be - * If loading within macOS, you can use `sudo log show --last 5m | grep VRMI` - * If injecting, you will want to add the boot arg `msgbuf=1048576` and use `sudo dmesg | grep VRMI` +2) Make sure VoodooInput and VoodooPS2Trackpad is loading + * `kextstat | grep Voodoo` +3) You may need to do IRQ patching on Haswell and older devices for SMBus trackpads + * Required if the `SBUS` device does not have any IOInterruptControllers in IORegistryExplorer + * [CorpNewt's SSDTTime](https://github.com/corpnewt/SSDTTime) can do this automatically for you + +If the above are loading, next place to check is within the IORegistry and within VoodooRMI logs: +1) Use IORegistryExplorer to check what is attaching and loading. + * The various functions in VoodooRMI will publish debug information which can be useful + * IORegs can be be saved using `File -> Save As` in the top left +2) Get logs from within macOS + * If loading VoodooRMI using `kextload` or `kextutil` within macOS, you can use `sudo log show --last boot | grep VRMI` + * If injecting through OpenCore/Clover, you will want to add the boot arg `msgbuf=1048576` and use `sudo dmesg | grep VRMI` immediately after booting with the boot arg. + +When creating an issue, you will need to provide log files (IORegs not required but helpful)!