USB fingerprint reader verification

I bought a cheap USB fingerprint reader, which my Tumbleweed installation recognises:

[57410.112935] usb 2-1.1: new full-speed USB device number 9 using ehci-pci
[57410.222356] usb 2-1.1: New USB device found, idVendor=0483, idProduct=2016, bcdDevice= 0.01
[57410.222367] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[57410.222372] usb 2-1.1: Product: Biometric Coprocessor
[57410.222375] usb 2-1.1: Manufacturer: STMicroelectronics
[59577.002850] usb 2-1.1: USB disconnect, device number 9
[59611.140935] usb 2-1.1: new full-speed USB device number 10 using ehci-pci
[59611.250493] usb 2-1.1: New USB device found, idVendor=0483, idProduct=2016, bcdDevice= 0.01
[59611.250505] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[59611.250509] usb 2-1.1: Product: Biometric Coprocessor
[59611.250513] usb 2-1.1: Manufacturer: STMicroelectronics

I can enrol my fingerprint without any difficulty. However, when I try to verify my fingerprint it immediately returns without asking me to scan my print

Using device /net/reactivated/Fprint/Device/0
Listing enrolled fingers:
 - #0: right-index-finger
Verify started!
Verifying: right-index-finger
Verify result: verify-disconnected (done)

Two questions:

  1. Can anyone tell me how I might fix the problem? Happy to provide additional information
  2. If the answer is, “it is a crap scanner”, could anyone suggest a scanner that might work?

Can you, in a parallel session, run “dmesg --follow” and see if anything is printed there when you try to scan?

dmesg doesn’t see print any messages. However, journalctl returns the following:

May 09 08:02:54 localhost.localdomain fprintd[24293]: Device reported close completion
May 09 08:02:54 localhost.localdomain fprintd[24293]: Authorization granted to :1.1822 to call method 'Release' for device 'UPEK TouchStrip'!
May 09 08:02:54 localhost.localdomain fprintd[24293]: Requesting authorization from :1.1822 to call method 'Release' for device 'UPEK TouchStrip'
May 09 08:02:54 localhost.localdomain fprintd[24293]: GTask [gio] D-Bus interface method dispatch (source object: 0x55fdfe5ec7a0, source tag: 0x7fdad3ad81c0) finalized witho>
May 09 08:02:54 localhost.localdomain fprintd[24293]: Authorization granted to :1.1822 to call method 'VerifyStop' for device 'UPEK TouchStrip'!
May 09 08:02:54 localhost.localdomain fprintd[24293]: Requesting authorization from :1.1822 to call method 'VerifyStop' for device 'UPEK TouchStrip'
May 09 08:02:54 localhost.localdomain fprintd[24293]: Device reported an error during verify: Response had wrong subcommand type
May 09 08:02:54 localhost.localdomain fprintd[24293]: report_verify_status: result verify-disconnected
May 09 08:02:54 localhost.localdomain fprintd[24293]: verify_cb: result verify-disconnected
May 09 08:02:54 localhost.localdomain fprintd[24293]: Updated temperature model after 0.02 seconds, ratio 0.26 -> 0.26, active 0 -> 0, FP_TEMPERATURE_COLD -> FP_TEMPERATURE_>
May 09 08:02:54 localhost.localdomain fprintd[24293]: Completing action FPI_DEVICE_ACTION_VERIFY in idle!
May 09 08:02:54 localhost.localdomain fprintd[24293]: Device reported verify completion
May 09 08:02:54 localhost.localdomain fprintd[24293]: [upekts] DEINITSM_NUM_STATES completed successfully
May 09 08:02:54 localhost.localdomain fprintd[24293]: cmd 1 from device to driver
May 09 08:02:54 localhost.localdomain fprintd[24293]: A=01 B=00 len=0
May 09 08:02:54 localhost.localdomain fprintd[24293]: [upekts] DEINITSM_NUM_STATES entering state 1
May 09 08:02:54 localhost.localdomain fprintd[24293]: seq=07 len=1
May 09 08:02:54 localhost.localdomain fprintd[24293]: [upekts] DEINITSM_NUM_STATES entering state 0
May 09 08:02:54 localhost.localdomain fprintd[24293]: device responds to subcmd f0 with 1 bytes

Kudos that:

  • You tried journatlctl instead of dmesg
  • The developer of the driver die have it produce a reasonable clear error:

Device reported an error during verify: Response had wrong subcommand type`

I do not think the fingerprint has an error but that somehow the driver it is not supporting it because the developer did not add support for it yet.

Probably it is an open-source driver and maybe you can find it on github or somewhere similar. Opening an issue there might help.