home-lab/documentation/TOUCHPAD_TROUBLESHOOTING.md
Geir Okkenhaug Jerstad b2ce976a65 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
2025-06-30 18:48:03 +02:00

98 lines
3.1 KiB
Markdown

# 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/)