Skip to content

francescomcrtl/synaptics-00da-linux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Synaptics 06cb:00da Fingerprint Reader on Linux

Donate with PayPal

If this project saved you hours of frustration, consider buying me a coffee ☕

Linux support for the Synaptics 06cb:00da fingerprint reader (ThinkPad E15 Gen 2 and similar), based on synaTudor with additional patches to support this specific device.

Tested hardware

Field Value
USB ID 06cb:00da
Family VSI 55D
Firmware ROM 10.1 (Jan 17 2020)
Tested on ThinkPad E15 Gen 2 — CachyOS (Arch-based)

What these patches add

synaTudor upstream supports 06cb:00be. These patches extend it to 06cb:00da:

  • udev rules — added 06cb:00da device entry
  • libfprint-tod — added 06cb:00da to the driver device table
  • user32.c (new file) — Win32 stubs required by the 00da firmware:
    • RegisterPowerSettingNotification → no-op
    • WTSRegisterSessionNotification → returns TRUE
  • reg.cRegQueryInfoKeyW stub (firmware queries it at init)
  • module.c — fixed GetModuleHandleA/W NULL self-handle, and GetModuleHandleExW FROM_ADDRESS address lookup
  • api.h — added base_addr/image_size fields to winmodule (required for the above)
  • wdf.cwdf_func_stub calling convention fix (__winfnc), stub for WDF loader pad functions
  • wdf/device.c — additional WDF device function stubs required by this firmware
  • download_driver.sh — skip hash check (Lenovo updated the installer) and map v108 DLL names to the v104 names the build system expects

Requirements

  • Arch Linux / CachyOS — or any systemd distro with equivalent packages
  • git, meson, ninja, pkg-config, innoextract, wget
  • libusb, openssl, fprintd
# Arch / CachyOS
sudo pacman -S git meson ninja pkg-config innoextract wget libusb openssl fprintd

Installation

git clone https://github.com/francescomcrtl/synaptics-00da-linux.git
cd synaptics-00da-linux
sudo ./install.sh

The script will:

  1. Clone synaTudor at a pinned commit
  2. Apply the patches and copy user32.c
  3. Build (this downloads the Lenovo driver installer ~30 MB to extract the DLLs)
  4. Install and enable the tudor-host-launcher systemd service

Enroll your fingerprint

sudo tudor_cli /var/lib/tudor/data.db -P0x00da
# type 'y' at the warning prompt, then follow the on-screen instructions

PAM configuration

sudo — fingerprint first, password as fallback

sudo cp pam/sudo /etc/pam.d/sudo

SDDM login screen

sudo cp pam/sddm /etc/pam.d/sddm

Note on SDDM: Press Enter on the login screen with an empty password field to activate the fingerprint prompt. This is a known SDDM limitation — SDDM only starts the PAM conversation when the form is submitted. It is not a bug in this driver.

Manual start (without fprintd)

sudo systemctl start tudor-host-launcher
sudo tudor_cli /var/lib/tudor/data.db -P0x00da

Credits

  • synaTudor by Popax21 — the reverse-engineered Linux driver for Synaptics Tudor fingerprint readers. This project would not exist without it.
  • Patches, reverse engineering work, and 06cb:00da support by francescomcrtl
  • Patch development assisted by Claude (Anthropic) — the Windows API stubs, WDF fixes, and debugging were largely worked out with Claude's help

License

GPL-2.0 — same as synaTudor.

About

synaptics 06cb:00da fingerprint reader support for Linux (Thinkpad e15 Gen 2)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors