Запуск USB-сканера отпечатков пальцев Chipsailing CS9711 на Linux.
Эти сканеры продаются на маркетплейсах по цене 1-2 т.р. Команда lsusb опознаёт их какID 2541:0236 Chipsailing CS9711Fingprint. Мейнстримный fprintd этот сканер не поддерживает. Как видно из комментариев к MR, разработчики не могут оценить точность нового алгоритма sigfm для сравнения отпечатков, потому не спешат (а дефолтному уже 15 лет, и он довольно плохо работает с низким разрешением сканера).
На Arch драйвер должен ставиться из коробки, рецепт для Fedora тут, далее - рецепт для Ubuntu.
TL;DR: аккуратно подменяем системную библиотеку libfprint-2.so версией из форка.
1. Скачать и скомпилировать форк libfprint-2 с поддержкой сканера
git clone https://github.com/archeYR/libfprint-CS9711 cd libfprint-CS9711 meson setup build
Последняя команда может выдать ошибку, не найдя в системе пакетов с нужными библиотеками (libgusb-dev, libopencv-dev и т.п.). Надо их поставить и выполнить её снова.
Компилируем:
ninja -C build
Для проверки позапускаем примеры:
cd build/examples sudo ./enroll sudo ./verify
Установить библиотеку, если всё хорошо (действовать с острожностью! обратите внимание на комментарии к посту)
cd .. # предполагаю, что из build/examples никуда не уходили sudo ninja install
В итоге должен появиться файл /usr/local/lib/x86_64-linux-gnu/libfprint-2.so.2.0.0 (и еще другие, тоже в /usr/local, но они не важны)
2. Установить пакет с демоном распознавания по отпечатку пальца
sudo apt install fprintd
Эта команда установит также пакеты с libfprint-2 из системных репозиториев, без поддержки нашего сканера.
3. Подменить библиотеку libfprint-2
Варианты:
указать ld.so читать нужную библиотеку перед запуском fprintd
создать в
/usr/lib/x86_64-linux-gnu/симлинк на правильный файл.
У каждого есть плюсы и минусы, выбираете Вы.
3.1. Предзагрузка нужной libfprint-2
sudo systemctl edit fprintd
Откроется окно редактора; добавить две строки (там сказано, куда)
[Service] Environment="LD_PRELOAD=/usr/local/lib/x86_64-linux-gnu/libfprint-2.so"
сохранить файл, закрыть редактор.
3.2. Установка правильной символической ссылки (ld.so не трогаем)
sudo update-alternatives --install\ /usr/lib/x86_64-linux-gnu/libfprint-2.so.2\ libfprint\ /usr/local/lib/x86_64-linux-gnu/libfprint-2.so.2.0.0 100
В комментах под постом написано, что должна выдать команда ls -l, если всё сделано правильно.
После любой из манипуляций перезапустить fprintd и проверить, что он не выдаёт ошибок.
sudo systemctl restart fprintd sudo systemctl status fprintd
Ожидаемый вывод:
● 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 ... фев 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. Зарегистрировать пальцы командой fprintd-enroll
По умолчанию регистрируется правый указательный, остальное написано в man fprintd-enroll
5. Включить вход по отпечатку
sudo pam-auth-update
поставить звёздочку на Fingerprint Authentication и нажать Ok.
Это вот так поменяет файл /etc/pam.d/common-auth:
-auth [success=1 default=ignore] pam_unix.so nullok +auth [success=2 default=ignore] pam_fprintd.so max-tries=5 timeout=10 # debug +auth [success=1 default=ignore] pam_unix.so nullok try_first_pass
Проверено на 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










