🛠️ Fixing Fingerprint Reader Issues on Lenovo ThinkPad X1 Carbon (Linux)

🛠️ Fixing Fingerprint Reader Issues on Lenovo ThinkPad X1 Carbon (Linux)

If your Synaptics fingerprint reader (ID 06cb:0123) stops working after suspend/resume cycles, here’s a practical fix.

🔍 Problem Symptoms

  • fprintd logs show: Ignoring device due to initialization error: endpoint stalled or request not supported

  • dmesg shows:

    usb 1-5.4: can't set config #1, error -22
    can't autoresume for authorization: -22
    
  • Device fails until reboot unless manually reset.


✅ Disable USB Autosuspend for the Fingerprint Device

The fingerprint reader struggles with resuming from low-power states. Disable autosuspend to keep it active across suspend cycles.

Create Udev Rule

sudo vim /etc/udev/rules.d/99-disable-autosuspend-fingerprint.rules

Paste:

# Disable USB autosuspend for Synaptics fingerprint reader
# Laptop: ThinkPad X1 Carbon Gen 13 (Aura Edition)
#
# This Synaptics device (06cb:0123) has issues resuming from suspend when USB autosuspend is enabled.
# After waking from sleep, the fingerprint reader may fail to initialize with a "USB endpoint stalled"
# or "can't set config" error (-22), making fingerprint authentication unavailable until a reboot.
#
# This rule forces the device's power mode to "on" (instead of the default "auto"),
# preventing the kernel from suspending the device and avoiding the resume bug.
#
# Verify:
# cat /sys/bus/usb/devices/1-5.4/power/control
# should return "on" instead of "auto"

ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="06cb", ATTR{idProduct}=="0123", TEST=="power/control", ATTR{power/control}="on"

Then run:

sudo udevadm control --reload-rules
sudo udevadm trigger

✅ Confirm with:

cat /sys/bus/usb/devices/1-5.4/power/control
# Should say "on"

🔧 (Optional) Debugging Tools

If you want to inspect what’s going on:

  • Trace fprintd startup:

    sudo systemctl stop fprintd.service
    sudo strace -f /usr/libexec/fprintd
    
  • Watch device events:

    sudo udevadm monitor --environment --udev
    
  • Check the USB tree:

    lsusb | grep -i synap
    

💡 Notes

  • USB autosuspend is often a power-saving optimization, but buggy firmware sometimes breaks resume support.

  • This fix ensures the fingerprint reader is always powered, trading a little power for stability.

  • Firmware updates via fwupdmgr may help in the future:

    sudo fwupdmgr get-devices
    sudo fwupdmgr update
    

📌 TL;DR: If fingerprint auth breaks after sleep on your Linux laptop, disable autosuspend for the fingerprint USB device and use unbind/bind or authorized toggling as recovery tools. Udev rules can automate the fix.


Write a comment
No comments yet.