Touchpad not working on Samsung Chromebook 4+ (Bluebird) - elan_i2c "invalid report id data (ff)"

System Details

  • Device: Samsung Chromebook 4+ (board name: Bluebird)
  • OS: Debian 13 (Trixie), kernel 7.1.3+deb13-amd64 (trixie-backports)
  • Firmware Type: UEFI Full ROM
  • Firmware Version: MrChromebox-4.22.2 (01/20/2024) — update to 2606.1 available, not yet installed
  • Internal storage type: eMMC

Summary of the Issue

The internal Elan touchpad (i2c:04f3:00b3, ACPI id ELAN0000) is detected by the system with correct capabilities, but produces zero input events. dmesg is continuously flooded with:

elan_i2c i2c-ELAN0000:00: invalid report id data (ff)

as soon as the touchpad is touched, and no motion/click events ever reach libinput.

Steps to Reproduce

  1. Fresh Debian 13 install on this hardware, UEFI Full ROM firmware from MrChromebox
  2. Touch/move finger on the built-in touchpad
  3. Check sudo dmesg | grep elan → flooded with “invalid report id data (ff)”
  4. Check sudo libinput debug-events --device /dev/input/eventX → only DEVICE_ADDED is logged, no POINTER_MOTION or POINTER_BUTTON events ever appear, regardless of how much the touchpad is touched

Troubleshooting Already Tried

  • sudo rmmod elan_i2c && sudo modprobe elan_i2c — no change, same errors return immediately
  • Blacklisting elan_i2c via /etc/modprobe.d/blacklist-elan.conf — touchpad disappears entirely from libinput list-devices; no generic i2c_hid fallback picks up the device
  • Installed newer kernel from trixie-backports (7.1.3) — identical behavior, so this doesn’t appear to be a bug already fixed upstream in recent kernels
  • Confirmed with libinput list-devices that enumeration/ACPI detection is correct (device shows proper name “Elan Touchpad”, size 98x54mm, gesture capabilities, tap/scroll config all present) — so this is not a probe/enumeration failure, but something failing in report parsing at the elan_i2c driver level after the device is up

Current Workaround

Using an external USB mouse (works fine) while investigating.

Question

Is there a known DSDT/ACPI quirk, elan_i2c module parameter, or custom kernel patch for the Bluebird board (or GeminiLake devices in general) that addresses this specific “invalid report id” failure mode? Happy to provide any additional logs (full dmesg, ACPI tables, etc.) if useful for debugging.

no, because it (mostly) works out of the box. Boot a Ubuntu/Fedora live USB and see if it works there. This sounds like Debian being broken.