π οΈ 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
```bash
sudo vim /etc/udev/rules.d/99-disable-autosuspend-fingerprint.rules
```
Paste:
```udev
# 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:
```bash
sudo udevadm control --reload-rules
sudo udevadm trigger
```
β
Confirm with:
```bash
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:
```bash
sudo systemctl stop fprintd.service
sudo strace -f /usr/libexec/fprintd
```
* Watch device events:
```bash
sudo udevadm monitor --environment --udev
```
* Check the USB tree:
```bash
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:
```bash
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.