Start a Conversation

Unsolved

A

1 Message

51345

May 9th, 2020 08:00

Fingerprint driver for GNU/Linux

Dear developers,

Could you please pay attention to the problem of a missing driver for the 0a5c:5843 device on GNU/Linux? Here is a tread where developers and users of libfprint request your support:

https://gitlab.freedesktop.org/libfprint/libfprint/-/issues/221

Thanks in advance,

Anton K.

2 Posts

September 18th, 2021 03:00

I've found a driver which can possibly support these kinds of fingerprint readers: https://salsa.debian.org/rousseau/CCID

I compiled it (and its dependency PCSC), the install instruction is not super user friendly, but I was unable to configure it properly for fprintd and it did not recognize the reader.

Maybe someone else will have better luck with it. Please keep us informed of you succeed.

(Dell Latitude 5520)

September 19th, 2021 07:00

Hi, thanks for the link!

I tried to build the drivers, but It seems that only the smart card is working:

00000790 hotplug_libudev.c:300:get_driver() Looking for a driver for VID: 0x0A5C, PID: 0x5843, path: /dev/bus/usb/001/005
00000027 hotplug_libudev.c:441:HPAddDevice() Adding USB device: Broadcom Corp 58200
00000117 readerfactory.c:1079:RFInitializeReader() Attempting startup of Broadcom Corp 58200 [Contacted SmartCard] (0123456789ABCD) 00 00 using /usr/local/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so
00000623 readerfactory.c:954:RFBindFunctions() Loading IFD Handler 3.0
00000057 ifdhandler.c:2026:init_driver() Driver version: 1.4.36
00002071 ifdhandler.c:2043:init_driver() LogLevel: 0x0003
00000018 ifdhandler.c:2054:init_driver() DriverOptions: 0x0000
00000651 ifdhandler.c:110:CreateChannelByNameOrChannel() Lun: 0, device: usb:0a5c/5843:libudev:1:/dev/bus/usb/001/005
00000041 ccid_usb.c:302:OpenUSBByName() Using: /usr/local/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist
00001301 ccid_usb.c:320:OpenUSBByName() ifdManufacturerString: Ludovic Rousseau (ludovic.rousseau@free.fr)
00000006 ccid_usb.c:321:OpenUSBByName() ifdProductString: Generic CCID driver
00000002 ccid_usb.c:322:OpenUSBByName() Copyright: This driver is protected by terms of the GNU Lesser General Public License version 2.1, or (at your option) any later version.
00005205 ccid_usb.c:664:OpenUSBByName() Found Vendor/Product: 0A5C/5843 (Broadcom Corp 58200)
00000005 ccid_usb.c:666:OpenUSBByName() Using USB bus/device: 1/5
00000002 ccid_usb.c:727:OpenUSBByName() bNumDataRatesSupported is 0
00124970 ifdhandler.c:388:IFDHGetCapabilities() tag: 0xFB3, usb:0a5c/5843:libudev:1:/dev/bus/usb/001/005 (lun: 0)
00000033 readerfactory.c:400:RFAddReader() Using the reader polling thread
00003319 ifdhandler.c:388:IFDHGetCapabilities() tag: 0xFAE, usb:0a5c/5843:libudev:1:/dev/bus/usb/001/005 (lun: 0)
00000038 ifdhandler.c:484:IFDHGetCapabilities() Reader supports 1 slot(s)

But the fingerprint device, even though it's found, it seems not to be initialized properly

00000087 hotplug_libudev.c:300:get_driver() Looking for a driver for VID: 0x0A5C, PID: 0x5843, path: /dev/bus/usb/001/005
00000005 hotplug_libudev.c:441:HPAddDevice() Adding USB device: Broadcom Corp 58200
00000041 readerfactory.c:1079:RFInitializeReader() Attempting startup of Broadcom Corp 58200 [Broadcom ControlVault 3 w/FingerPrint] (0123456789ABCD) 00 00 using /usr/local/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so
00000164 readerfactory.c:954:RFBindFunctions() Loading IFD Handler 3.0
00000016 ifdhandler.c:2026:init_driver() Driver version: 1.4.36
00000527 ifdhandler.c:2043:init_driver() LogLevel: 0x0003
00000005 ifdhandler.c:2054:init_driver() DriverOptions: 0x0000
00000166 ifdhandler.c:110:CreateChannelByNameOrChannel() Lun: 0, device: usb:0a5c/5843:libudev:0:/dev/bus/usb/001/005
00000014 ccid_usb.c:302:OpenUSBByName() Using: /usr/local/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist
00000489 ccid_usb.c:320:OpenUSBByName() ifdManufacturerString: Ludovic Rousseau (ludovic.rousseau@free.fr)
00000004 ccid_usb.c:321:OpenUSBByName() ifdProductString: Generic CCID driver
00000001 ccid_usb.c:322:OpenUSBByName() Copyright: This driver is protected by terms of the GNU Lesser General Public License version 2.1, or (at your option) any later version.
00117245 ccid_usb.c:641:OpenUSBByName() Found interface 1 but expecting 0
00000032 ccid_usb.c:643:OpenUSBByName() Wrong interface for USB device 1/5. Checking next one.
00001397 ccid_usb.c:189:close_libusb_if_needed() libusb_exit
00000387 ccid_usb.c:805:OpenUSBByName() Device not found?
00000030 ifdhandler.c:155:CreateChannelByNameOrChannel() failed

I've just mailed to the driver's developer asking about it.

September 19th, 2021 10:00

Hi @subaKG The developer replied and explained to me that CCID is a specification for smart cards only

Our beloved 0a5c:5843 device is supported, but the smart card feature only.

4 Posts

September 19th, 2021 16:00

Seems like it might be fun to try to implement it hehe. Might have a play around soon and report back.

4 Posts

September 19th, 2021 16:00

Looks like the CCID driver just doesn't have the scope to support the device.

The included parse program just states that the 0a5c:5843 device is not a CCID/ICCD device

Parsing USB bus/device: 0A5C:5843 (bus 1, device 4)                                      
idVendor:  0x0A5C  iManufacturer: Broadcom Corp
idProduct: 0x5843  iProduct: 58200                                                      
 NOT a CCID/ICCD device

It's probably better to just try to add support to libfprint. ¯\_(ツ)_/¯

2 Posts

September 20th, 2021 01:00

Hello @szaffarano, thanks for the notif. Wondering when will dell or the reader's manufacturer implement a linux driver for this device...

Until then we have to stick to typing passwords...

11 Posts

October 19th, 2021 10:00

With a fresh install of Ubuntu 20.04.3 on a Latitude 7420 the 0a5c:5843 Broadcom fingerprint reader is working! I had to go into Software & Updates -> Additional Drivers and move the radio button to "Using Broadcom fingerprint TOD driver from libfprint-2-tod1-broadcom (open source)". Then I was able to add fingerprints in Settings -> Users, open a terminal, run pam-auth-update, and enable Fingerprint authentication. I also just got it working on my Latitude 9410 with the same reader, running 21.04. They both have the libfprint-2-tod1 package installed. The trick is to enable the Canonical Partners repo for somerville and somerville-melissa (on 9410 and somerville-squirtle on 7420), then go back into Additional drivers and switch the radio button to use the newly found driver. I'm stoked and I hope this helps others!

Screenshot from 2021-10-19 13-11-30.png2021-10-19_13-25.png

11 Posts

October 19th, 2021 13:00

You're very welcome! 

October 19th, 2021 13:00

Hey! Thanks so much @jermaine151 !!!!!!

4 Posts

October 19th, 2021 21:00

Huzah! I got it working on Arch! Wrote a pkgbuild to grab the libfprint-2-tod1-broadcom package from the Ubuntu repositories.  I then installed libfprint-tod-git from the AUR (you will have to configure the PKGBUILD to ignore the tests, three tests fail and I can't be bothered to find out why). There's a python script that comes with libfprint-2-tod1-broadcom which installs the firmware to the fingerprint reader and I do not know how I am supposed to package it. I have left it out but running the script is likely necessary. From now on you should be able to fprintd-enroll your fingerprints!

I'm going to put the libfprint-2-tod1-broadcom package on the AUR.

9 Posts

October 31st, 2021 13:00

fprintd fails to pick up this driver on my Debian

Oct 31 21:49:22 host systemd[1]: Starting Fingerprint Authentication Daemon...
Oct 31 21:49:22 host fprintd[6647]: Failed to open /sys/bus/usb/devices/1-10/power/persist
Oct 31 21:49:22 host fprintd[6647]: In cvif_IsUshThere(), cv_get_ush_ver() status: (0x0)
Oct 31 21:49:22 host fprintd[6647]: Control Vault getting chip type
Oct 31 21:49:22 host fprintd[6647]: Citadel A0 CID7 Chip Found....
Oct 31 21:49:22 host fprintd[6647]: Current AAI Version = 5.8.12.0
Oct 31 21:49:22 host fprintd[6647]: Current SBI Version = 122
Oct 31 21:49:22 host fprintd[6647]: AAI version available for upgrade = 5.8.12.0
Oct 31 21:49:22 host fprintd[6647]: SBI version available for upgrade = 122
Oct 31 21:49:22 host fprintd[6647]: AAI version matches - it is up do date
Oct 31 21:49:22 host fprintd[6647]: SBI version matches - it is up do date
Oct 31 21:49:22 host fprintd[6647]: Citadel A0 CID7 Chip Found....
Oct 31 21:49:22 host fprintd[6647]: Sensor type  : 12 Sensor firmware version on device: 3088084-109-0-3473 length: 18
Oct 31 21:49:22 host fprintd[6647]: Sensor-firmware file signature verification is valid
Oct 31 21:49:22 host fprintd[6647]: Sensor Version length: 16
Oct 31 21:49:22 host fprintd[6647]: Sensor Version: 3031663-2-0-3545
Oct 31 21:49:22 host fprintd[6647]: cv_check_sensor_firmware_upgradable: FALSE
Oct 31 21:49:22 host fprintd[6647]: cv_check_sensor_firmware_upgradable: Skipping
Oct 31 21:49:22 host fprintd[6647]: Sensor Version length: 18
Oct 31 21:49:22 host fprintd[6647]: Sensor Version: 3088084-109-0-3473
Oct 31 21:49:22 host fprintd[6647]: cv_check_sensor_firmware_upgradable: FALSE
Oct 31 21:49:22 host fprintd[6647]: cv_check_sensor_firmware_upgradable: Skipping
Oct 31 21:49:22 host fprintd[6647]: cv_check_sensor_firmware_upgradable: Skipping
Oct 31 21:49:22 host fprintd[6647]: Sensor Version length: 16
Oct 31 21:49:22 host fprintd[6647]: Sensor Version: 3031663-2-0-3528
Oct 31 21:49:22 host fprintd[6647]: cv_check_sensor_firmware_upgradable: FALSE
Oct 31 21:49:22 host fprintd[6647]: Couldn't find UPDATABLE sensor-firmware for this sensor
Oct 31 21:49:22 host fprintd[6647]: Couldn't get UPDATABLE firmware image data for sensor
Oct 31 21:49:22 host fprintd[6647]: fpi_device_probe_complete: assertion 'priv->current_action == FPI_DEVICE_ACTION_PROBE' failed
Oct 31 21:49:47 host dbus-daemon[903]: [system] Failed to activate service 'net.reactivated.Fprint': timed out (service_start_timeout=25000ms)
Oct 31 21:50:52 host systemd[1]: fprintd.service: start operation timed out. Terminating.
Oct 31 21:51:02 host systemd[1]: fprintd.service: State 'stop-sigterm' timed out. Killing.
Oct 31 21:51:02 host systemd[1]: fprintd.service: Killing process 6647 (fprintd) with signal SIGKILL.
Oct 31 21:51:02 host systemd[1]: fprintd.service: Main process exited, code=killed, status=9/KILL
Oct 31 21:51:02 host systemd[1]: fprintd.service: Failed with result 'timeout'.
Oct 31 21:51:02 host systemd[1]: Failed to start Fingerprint Authentication Daemon.

November 6th, 2021 02:00

Please see my comment on how I got it working on Dell Latitude 5400
https://github.com/dsd/fprintd/issues/3#issuecomment-962422370

9 Posts

November 12th, 2021 01:00

I was able to get it working by updating the fprintd version. 

It's working for some time now, but the fingerprint device would disappear (disconnect from the USB bus) after I suspend the system a few times. 

11 Posts

November 12th, 2021 04:00

I have that same problem and rebooting is the only way that I can get it working again. 

November 12th, 2021 05:00

Same problem here! I didn't find a root cause but after a while (around once every three days) I have to reboot the laptop (or stop using the fprintd).  I get a lot of "Error: 0x1c" error messages, and if I try to restart the fprintd service: "Ignoring device due to initialization error: An unspecified error occurred!"

No Events found!

Top