Add comprehensive touchpad troubleshooting documentation
- Document ITE8353 touchpad issue on little-rascal - List all attempted solutions and current status - Provide next steps for further investigation - Include useful debugging commands and references
This commit is contained in:
parent
d5ea2514b4
commit
b2ce976a65
1 changed files with 98 additions and 0 deletions
98
documentation/TOUCHPAD_TROUBLESHOOTING.md
Normal file
98
documentation/TOUCHPAD_TROUBLESHOOTING.md
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
# Touchpad Troubleshooting - Little Rascal (Lenovo Yoga Slim 7)
|
||||||
|
|
||||||
|
## Problem
|
||||||
|
The touchpad on little-rascal (Lenovo Yoga Slim 7 14ARE05) is not working. The trackpad is detected as an I2C HID device but is being misidentified as a sensor hub instead of a proper touchpad.
|
||||||
|
|
||||||
|
## Hardware Details
|
||||||
|
- **Model**: Lenovo Yoga Slim 7 14ARE05
|
||||||
|
- **Touchpad Controller**: ITE8353 (I2C HID)
|
||||||
|
- **Device Path**: `/sys/bus/i2c/devices/i2c-ITE8353:00`
|
||||||
|
- **HID Device**: `0018:048D:8353.0001`
|
||||||
|
- **ACPI ID**: `PNP0C50` (HID-over-I2C precision touchpad)
|
||||||
|
|
||||||
|
## Investigation Results
|
||||||
|
|
||||||
|
### Device Detection
|
||||||
|
The touchpad controller is properly detected by the kernel:
|
||||||
|
- I2C device exists at `i2c-ITE8353:00`
|
||||||
|
- Driver binding: `i2c_hid_acpi`
|
||||||
|
- HID device: `0018:048D:8353.0001`
|
||||||
|
|
||||||
|
### Problem: Misidentified as Sensor Hub
|
||||||
|
The device is being bound to `hid-sensor-hub` driver instead of a proper touchpad driver like `hid-multitouch`.
|
||||||
|
|
||||||
|
### Attempted Solutions
|
||||||
|
|
||||||
|
1. **Added I2C HID kernel modules**:
|
||||||
|
- `i2c_hid`, `i2c_hid_acpi`, `hid_multitouch`
|
||||||
|
- Added to both `boot.kernelModules` and `boot.initrd.availableKernelModules`
|
||||||
|
|
||||||
|
2. **Added kernel parameters**:
|
||||||
|
- `i2c_hid.debug=1`
|
||||||
|
- `acpi_enforce_resources=lax`
|
||||||
|
- `i2c_hid_acpi.probe_defer=1`
|
||||||
|
|
||||||
|
3. **Added udev rules**:
|
||||||
|
- Attempted to unbind from `hid-sensor-hub` and bind to `hid-multitouch`
|
||||||
|
- Set proper permissions for the device
|
||||||
|
|
||||||
|
4. **Enabled libinput**:
|
||||||
|
- Configured touchpad settings in `modules/desktop/input.nix`
|
||||||
|
- Added input utilities (`evtest`, `xinput`, `libinput-gestures`)
|
||||||
|
|
||||||
|
### Current Status
|
||||||
|
- ❌ Touchpad still not functional
|
||||||
|
- ✅ Device is detected by kernel
|
||||||
|
- ❌ Device is misidentified as sensor hub
|
||||||
|
- ❌ No input events generated
|
||||||
|
|
||||||
|
## Next Steps to Try
|
||||||
|
|
||||||
|
### Option 1: BIOS Settings
|
||||||
|
Check BIOS for touchpad mode settings:
|
||||||
|
- Look for "Touchpad Mode" setting
|
||||||
|
- Try switching between "Basic" and "Advanced" modes
|
||||||
|
- Some laptops have I2C/PS2 mode selection
|
||||||
|
|
||||||
|
### Option 2: Kernel Patch
|
||||||
|
This appears to be a known issue requiring a kernel patch. Research:
|
||||||
|
- Linux kernel patches for ITE8353 touchpad support
|
||||||
|
- Check if newer kernels have better support
|
||||||
|
- Look for device-specific quirks in the kernel
|
||||||
|
|
||||||
|
### Option 3: Force PS/2 Mode
|
||||||
|
If I2C mode cannot be made to work:
|
||||||
|
- Try to enable PS/2 emulation mode in BIOS
|
||||||
|
- Some laptops can fall back to PS/2 touchpad mode
|
||||||
|
|
||||||
|
### Option 4: Custom Driver
|
||||||
|
- Check if ITE provides Linux drivers
|
||||||
|
- Look for community-developed drivers for this specific controller
|
||||||
|
|
||||||
|
### Option 5: Firmware Update
|
||||||
|
- Update laptop firmware/BIOS
|
||||||
|
- Some touchpad issues are resolved with firmware updates
|
||||||
|
|
||||||
|
## Useful Commands for Further Debugging
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Check device binding
|
||||||
|
ls -la /sys/bus/i2c/devices/i2c-ITE8353:00/driver
|
||||||
|
|
||||||
|
# Check HID devices
|
||||||
|
cat /sys/bus/i2c/devices/i2c-ITE8353:00/0018:048D:8353.0001/modalias
|
||||||
|
|
||||||
|
# Monitor udev events
|
||||||
|
udevadm monitor --environment --udev
|
||||||
|
|
||||||
|
# Test input events
|
||||||
|
evtest
|
||||||
|
|
||||||
|
# Check kernel modules
|
||||||
|
lsmod | grep -E "(i2c|hid)"
|
||||||
|
```
|
||||||
|
|
||||||
|
## References
|
||||||
|
- [NixOS Hardware Configuration](https://github.com/NixOS/nixos-hardware)
|
||||||
|
- [Linux I2C HID Documentation](https://www.kernel.org/doc/html/latest/input/devices/i2c-hid.html)
|
||||||
|
- [Libinput Documentation](https://wayland.freedesktop.org/libinput/doc/latest/)
|
Loading…
Add table
Add a link
Reference in a new issue