Skip to content

ThinkPad X1 Yoga 2nd Gen (138a:0097) - Fingerprint sensor doesn't work anymore (Arch Linux) #222

@furretpaws

Description

@furretpaws

I've been using my fingerprint sensor (Validity 138a:0097) for a while with no issues. It worked well under KDE, and I was able to use it to unlock my laptop regularly.

Yesterday, I noticed that the KDE lock screen no longer prompted for fingerprint input. I started troubleshooting and realized:

  • The fingerprint reader doesn't respond to LED dance or factory reset commands.
  • I'm consistently getting timeouts or error 0401.

Running led dances or factory resets lead to either a 0401 error or a timeout as seen here down below:

sudo python3 /usr/share/python-validity/playground/factory-reset.py
Traceback (most recent call last):
File "/usr/share/python-validity/playground/factory-reset.py", line 6, in
factory_reset()
~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/validitysensor/sensor.py", line 86, in factory_reset
assert_status(usb.cmd(reset_blob))
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/validitysensor/util.py", line 12, in assert_status
raise Exception('Failed: %04x' % s)
Exception: Failed: 0401

sudo validity-led-dance
Traceback (most recent call last):
File "/usr/bin/validity-led-dance", line 16, in
init.open()
~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/validitysensor/init.py", line 50, in open
open_common()
~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/validitysensor/init.py", line 31, in open_common
init_flash()
~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/validitysensor/init_flash.py", line 122, in init_flash
info = get_flash_info()
File "/usr/lib/python3.13/site-packages/validitysensor/flash.py", line 40, in get_flash_info
rsp = tls.cmd(unhex('3e'))
File "/usr/lib/python3.13/site-packages/validitysensor/tls.py", line 124, in cmd
rsp = self.usb.cmd(cmd)
File "/usr/lib/python3.13/site-packages/validitysensor/usb.py", line 105, in cmd
resp = self.dev.read(129, 100 * 1024)
File "/usr/lib/python3.13/site-packages/usb/core.py", line 1043, in read
ret = fn(
self._ctx.handle,
...<2 lines>...
buff,
self.__get_timeout(timeout))
File "/usr/lib/python3.13/site-packages/usb/backend/libusb1.py", line 850, in bulk_read
return self.__read(self.lib.libusb_bulk_transfer,
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
dev_handle,
^^^^^^^^^^^
...<2 lines>...
buff,
^^^^^
timeout)
^^^^^^^^
File "/usr/lib/python3.13/site-packages/usb/backend/libusb1.py", line 958, in __read
_check(retval)
~~~~~~^^^^^^^^
File "/usr/lib/python3.13/site-packages/usb/backend/libusb1.py", line 602, in _check
raise USBTimeoutError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBTimeoutError: [Errno 110] Operation timed out

sudo validity-led-dance
Traceback (most recent call last):
File "/usr/bin/validity-led-dance", line 16, in
init.open()
~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/validitysensor/init.py", line 50, in open
open_common()
~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/validitysensor/init.py", line 31, in open_common
init_flash()
~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/validitysensor/init_flash.py", line 122, in init_flash
info = get_flash_info()
File "/usr/lib/python3.13/site-packages/validitysensor/flash.py", line 41, in get_flash_info
assert_status(rsp)
~~~~~~~~~~~~~^^^^^
File "/usr/lib/python3.13/site-packages/validitysensor/util.py", line 12, in assert_status
raise Exception('Failed: %04x' % s)
Exception: Failed: 0401

I tested the same thing on an Arch Linux VM (same 0401 error), a Windows VM (it DOES work there) and pretty much, no luck so far

Has anyone experienced this behavior before? Any steps I can try to reinitialize or recover the sensor?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions