Запуск USB-сканера отпечатков пальцев Chipsailing CS9711 на Linux.
Эти сканеры продаются на маркетплейсах по цене 1000-2000р. Команда lsusb опознаёт их как ID 2541:0236 Chipsailing CS9711Fingprint
На Arch драйвер должен ставиться из коробки: https://aur.archlinux.org/packages/libfprint-cs9711-git, рецепт для Ubuntu приведен ниже.
TL;DR: libfprint отсюда подставить в fprintd черезLD_PRELOAD
1. Скачать и скомпилировать форк libfprintd с поддержкой этого сканера
git clone https://github.com/archeYR/libfprint-CS9711.git
cd libfprint-CS9711
meson setup buildПоследняя команда может завершиться с ошибкой из-за отсутствия в системе пакетов с нужными библиотеками (libgusb-dev, gobject-introspection, libgudev-1.0-dev, libopencv-dev и т.п.). Надо их поставить и выполнить её ещё раз.
Скомпилировать библиотеку
ninja -C buildДля проверки работы позапускать примеры
cd build/examples
sudo ./enroll
....
sudo ./verify
....Установить библиотеку, если всё понравилось (обратите внимание на комментарии к посту)
cd /где выполнялась git clone/libfprint-CS9711
sudo ninja -C build installВ результате в /usr/local/lib/x86_64-linux-gnu должны появиться файлы libfprint-2.so.2.0.0, libfprint-2.so и libfprint-2.so.2. Первый собственно библиотека, а остальные - симлинки на него.
Если нужно будет потом всё удалить, это можно сделать командой sudo ninja -C build uninstall
2. Установить пакет с демоном распознавания по отпечатку пальца
sudo apt install fprintdЭта команда установит также пакеты с libfprint из репозиториев, без поддержки нашего сканера, т.к. fprintd от них зависит. Дальше они будут лежать мертвым грузом; я особо не искал способа их удалить или не ставить, если знаете, напишите в комментариях.
3. Заставитьfprintd работать с нашей библиотекой вместо той, что была установлена из пакетов, прописав её вLD_PRELOAD
sudo systemctl edit fprintd.serviceВ открывшемся окне редактора добавить две строки (там в комментарии будет сказано, куда именно)
[Service]
Environment="LD_PRELOAD=/usr/local/lib/x86_64-linux-gnu/libfprint-2.so"Перезапустить fprintd и проверить, что он не выдаёт ошибок:
sudo systemctl restart fprintd.service
sudo systemctl status fprintd.serviceОжидаемый вывод:
❯ sudo systemctl status fprintd.service
● fprintd.service - Fingerprint Authentication Daemon
Loaded: loaded (/usr/lib/systemd/system/fprintd.service; static)
Drop-In: /etc/systemd/system/fprintd.service.d
└─override.conf
Active: active (running) since Tue 2026-02-24 16:02:45 MSK; 1s ago
Docs: man:fprintd(1)
Main PID: 61913 (fprintd)
Tasks: 6 (limit: 37635)
Memory: 3.3M (peak: 4.5M)
CPU: 93ms
CGroup: /system.slice/fprintd.service
└─61913 /usr/libexec/fprintd
фев 24 16:02:45 machine-name systemd[1]: Starting fprintd.service - Fingerprint Authentication Daemon...
фев 24 16:02:45 machine-name systemd[1]: Started fprintd.service - Fingerprint Authentication Daemon.
4. Зарегистрировать пальцы
sudo fprintd-enroll $USER По умолчанию регистрируется правый указательный, остальное написано в man fprintd-enroll
5. Включить вход по отпечатку
sudo pam-auth-update... поставить звёздочку рядом с Fingerprint Authentication и нажать Ok
Более тонкая настройка делается редактированием файлов в /etc/pam.d
Проверено на Kubuntu 24.04.4 LTS.
Ссылки по теме:
https://github.com/archeYR/libfprint-CS9711
https://man7.org/linux/man-pages/man8/ld.so.8.html
https://manpages.ubuntu.com/manpages/noble/man5/pam.conf.5.html















