fprintd icon indicating copy to clipboard operation
fprintd copied to clipboard

0a5c:5834 Broadcom Corp. - Device Support

Open inventortechie opened this issue 8 years ago • 94 comments

Would like to add support for this Fingerprint Scanner. Detected this on Latitude 7480 via Ubuntu 17.04.

*I've also noticed a typo in the man file. Will try and see if it's avail in repo to provide correction.

inventortechie avatar Jul 01 '17 03:07 inventortechie

Hi there. Is there any progress on this issue?

mormegil6 avatar Apr 04 '18 08:04 mormegil6

Hi people. I have the same BroadCom chip on a new Precision 7520 and it is the only device I can't control in Ubuntu (16.04). Thanks for your efforts!

viherbos avatar Apr 29 '18 19:04 viherbos

I'm having my fingers crossed for this one as well!

mensfeld avatar Jul 27 '18 15:07 mensfeld

It looks like Canonical has marked this device as Ubuntu Certified, maybe they can produce a driver: https://certification.ubuntu.com/catalog/component/usb/405/0a5c%3A5834/

cbluth avatar Oct 26 '18 09:10 cbluth

It looks like Canonical has marked this device as Ubuntu Certified, maybe they can produce a driver: https://certification.ubuntu.com/catalog/component/usb/405/0a5c%3A5834/

"The Broadcom Corporation 0a5c:5834 is under the Other category and is contained in the certified systems below.", I don't think that means it's Ubuntu Certified. I could be wrong though.

palvarez89 avatar Nov 21 '18 15:11 palvarez89

Please help !

bud4 avatar Dec 28 '18 10:12 bud4

I would love to be able to use this fingerprint reader on my Dell Precision 7520 which was shipped with Ubuntu and I paid the extra few quid for the reader, but there seems to be no way to get it working.

I wouldn't know where to start with writing a driver for it myself, but maybe if enough people want it we could chip in and pay someone who does know how to do such things to do it for us?

WillGibson avatar Apr 27 '19 14:04 WillGibson

I don't know about the fingerprint reader, but you can get NFC working using a little python script: https://github.com/jacekkow/controlvault2-nfc-enable . NFC allows you to use SoloKeys or YubiKeys to wirelessly authenticate.

hackerb9 avatar Jun 10 '19 04:06 hackerb9

I'd like to login with fingerprint reader to my linux.

camaeel avatar Jul 27 '19 20:07 camaeel

I have the same fingerprint on Latitude E7470 How can I use it in Ubuntu for login procedure?

iDoka avatar Oct 02 '19 15:10 iDoka

Same issue with more recent model 0a5c:5842 in my DELL Latitude 7400 2-in-1

Bus 001 Device 004: ID 0a5c:5842 Broadcom Corp. 58200
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0a5c Broadcom Corp.
  idProduct          0x5842 
  bcdDevice            1.01
  iManufacturer           1 Broadcom Corp
  iProduct                2 58200
  iSerial                 3 0123456789ABCD
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x008b
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              4 Broadcom ControlVault 3
      ** UNRECOGNIZED:  10 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[...]

eric-saintetienne avatar Sep 25 '20 20:09 eric-saintetienne

It is now working! 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 sudo 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. Hopefully this helps some of you!

jermaine151 avatar Oct 19 '21 18:10 jermaine151

So... does anyone have the instructions for Debian? ...

project-administrator avatar Oct 31 '21 16:10 project-administrator

I have tried this with my Precision 7520 (Ubuntu 20.04.3) but the "Additional Drives" window doesn't show any Broadcom option though I get an unknown device from Somerville (I don't know if this has anything to do with the fingerprint reader)...

viherbos avatar Oct 31 '21 17:10 viherbos

On Debian I was able to build/install the libfprint tod version and installed the libfprint-2-tod1-broadcom. However, fprintd would not work with 0a5c:5843 Broadcom Corp. 58200 for me:

Sensor Version length: 16
Sensor Version: 3031663-2-0-3528
cv_check_sensor_firmware_upgradable: FALSE
Couldn't find UPDATABLE sensor-firmware for this sensor
Couldn't get UPDATABLE firmware image data for sensor
fpi_device_probe_complete: assertion 'priv->current_action == FPI_DEVICE_ACTION_PROBE' failed

project-administrator avatar Nov 01 '21 09:11 project-administrator

The only repo that I've found is https://git.launchpad.net/libfprint-2-tod1-broadcom/tree/ but it doesn't include any code, only config files and a prebuilt dynamic library.

I'm not sure how to use that .so file. Can you please share what steps you followed?

Thank you

eric-saintetienne avatar Nov 01 '21 09:11 eric-saintetienne

Not sure if sources are available for the libfprint-2-tod1-broadcom

Can you please share what steps you followed?

These are the hacky instructions that I did in an attempt to make it work:

  1. Build and install the tod branch of the https://gitlab.freedesktop.org/3v1n0/libfprint/-/tree/tod, find the build dependencies here: https://packages.debian.org/source/sid/libfprint.
  2. Manually point the /usr/lib/x86_64-linux-gnu/libfprint-2.so.2 to the newly installed /usr/local/lib/x86_64-linux-gnu/libfprint-2.so.2.0.0 (this is what fprintd service uses)
  3. Install http://dell.archive.canonical.com/updates/pool/public/libf/libfprint-2-tod1-broadcom/libfprint-2-tod1-broadcom_5.8.012.0-0ubuntu1~oem2_amd64.deb
  4. Symlink /usr/local/lib/x86_64-linux-gnu/libfprint-2 to what has been installed in step 3 /usr/lib/x86_64-linux-gnu/libfprint-2
  5. (optionally check that rules are installed for your device in /lib/udev/rules.d/60-libfprint-2*. I commented the duplicate entries just in case)
  6. kill fprintd if it's running, run fprintd-list / fprintd-enroll and check the fprintd service logs. On this step, it attempted to initialize the device and was able to check its FW version.

project-administrator avatar Nov 01 '21 13:11 project-administrator

So this is how i got it working Clone this repo https://git.launchpad.net/~oem-solutions-engineers/libfprint-2-tod1-broadcom/+git/libfprint-2-tod1-broadcom/

then go into the cloned folder sudo sh install.sh python3 debian/update-fw.py I had to restart the laptop but it worked.

Also check if the fingerprint login is enabled sudo pam-auth-update

lsusb -v -d 0a5c:5843

Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0a5c Broadcom Corp.
  idProduct          0x5843 
  bcdDevice            1.02
  iManufacturer           1 Broadcom Corp
  iProduct                2 58200
  iSerial                 3 0123456789ABCD
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0037
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              4 
      ** UNRECOGNIZED:  10 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               1

image

My System Info image

innovativesahil avatar Nov 06 '21 09:11 innovativesahil

So this is how i got it working Clone this repo https://git.launchpad.net/~oem-solutions-engineers/libfprint-2-tod1-broadcom/+git/libfprint-2-tod1-broadcom/

then go into the cloned folder sudo sh install.sh python3 debian/update-fw.py I had to restart the laptop but it worked.

Also check if the fingerprint login is enabled sudo pam-auth-update

lsusb -v -d 0a5c:5843

Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0a5c Broadcom Corp.
  idProduct          0x5843 
  bcdDevice            1.02
  iManufacturer           1 Broadcom Corp
  iProduct                2 58200
  iSerial                 3 0123456789ABCD
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0037
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              4 
      ** UNRECOGNIZED:  10 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               1

image

My System Info image

Attaching logs

Nov  6 14:14:34 ubuntu dbus-daemon[902]: [system] Activating via systemd: service name='net.reactivated.Fprint' unit='fprintd.service' requested by ':1.604' (uid=1000 pid=403543 comm="python3 update-fw.py " label="unconfined")
Nov  6 14:14:34 ubuntu systemd[1]: Starting Fingerprint Authentication Daemon...
Nov  6 14:14:34 ubuntu dbus-daemon[902]: [system] Successfully activated service 'net.reactivated.Fprint'
Nov  6 14:14:34 ubuntu systemd[1]: Started Fingerprint Authentication Daemon.
Nov  6 14:15:01 ubuntu CRON[403582]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Nov  6 14:15:05 ubuntu systemd[1]: fprintd.service: Deactivated successfully.
Nov  6 14:15:12 ubuntu dbus-daemon[902]: [system] Activating via systemd: service name='net.reactivated.Fprint' unit='fprintd.service' requested by ':1.606' (uid=0 pid=403604 comm="sudo pam-auth-update " label="unconfined")
Nov  6 14:15:12 ubuntu systemd[1]: Starting Fingerprint Authentication Daemon...
Nov  6 14:15:12 ubuntu dbus-daemon[902]: [system] Successfully activated service 'net.reactivated.Fprint'
Nov  6 14:15:12 ubuntu systemd[1]: Started Fingerprint Authentication Daemon.
Nov  6 14:15:31 ubuntu systemd[349499]: Started Application launched by gnome-shell.
Nov  6 14:15:42 ubuntu systemd[1]: fprintd.service: Deactivated successfully.
Nov  6 14:15:43 ubuntu dbus-daemon[902]: [system] Activating via systemd: service name='net.reactivated.Fprint' unit='fprintd.service' requested by ':1.609' (uid=0 pid=403695 comm="/usr/libexec/polkit-agent-helper-1 sahil " label="unconfined")
Nov  6 14:15:43 ubuntu systemd[1]: Starting Fingerprint Authentication Daemon...
Nov  6 14:15:43 ubuntu dbus-daemon[902]: [system] Successfully activated service 'net.reactivated.Fprint'
Nov  6 14:15:43 ubuntu systemd[1]: Started Fingerprint Authentication Daemon.
Nov  6 14:16:13 ubuntu systemd[1]: fprintd.service: Deactivated successfully.
Nov  6 14:16:28 ubuntu dbus-daemon[902]: [system] Activating via systemd: service name='net.reactivated.Fprint' unit='fprintd.service' requested by ':1.612' (uid=1000 pid=403823 comm="python3 update-fw.py " label="unconfined")
Nov  6 14:16:28 ubuntu systemd[1]: Starting Fingerprint Authentication Daemon...
Nov  6 14:16:28 ubuntu dbus-daemon[902]: [system] Successfully activated service 'net.reactivated.Fprint'
Nov  6 14:16:28 ubuntu systemd[1]: Started Fingerprint Authentication Daemon.
Nov  6 14:16:58 ubuntu systemd[1]: fprintd.service: Deactivated successfully.
Nov  6 14:17:01 ubuntu CRON[403858]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Nov  6 14:17:29 ubuntu dbus-daemon[902]: [system] Activating via systemd: service name='net.reactivated.Fprint' unit='fprintd.service' requested by ':1.614' (uid=1000 pid=403878 comm="python3 update-fw.py " label="unconfined")
Nov  6 14:17:29 ubuntu systemd[1]: Starting Fingerprint Authentication Daemon...
Nov  6 14:17:29 ubuntu dbus-daemon[902]: [system] Successfully activated service 'net.reactivated.Fprint'
Nov  6 14:17:29 ubuntu systemd[1]: Started Fingerprint Authentication Daemon.
Nov  6 14:17:59 ubuntu systemd[1]: fprintd.service: Deactivated successfully.
Nov  6 14:19:14 ubuntu dbus-daemon[902]: [system] Activating via systemd: service name='org.freedesktop.timedate1' unit='dbus-org.freedesktop.timedate1.service' requested by ':1.608' (uid=1000 pid=403636 comm="gnome-control-center " label="unconfined")
Nov  6 14:19:14 ubuntu systemd[1]: Starting Time & Date Service...
Nov  6 14:19:14 ubuntu dbus-daemon[902]: [system] Successfully activated service 'org.freedesktop.timedate1'
Nov  6 14:19:14 ubuntu systemd[1]: Started Time & Date Service.
Nov  6 14:19:15 ubuntu dbus-daemon[902]: [system] Activating via systemd: service name='net.reactivated.Fprint' unit='fprintd.service' requested by ':1.608' (uid=1000 pid=403636 comm="gnome-control-center " label="unconfined")
Nov  6 14:19:15 ubuntu systemd[1]: Starting Fingerprint Authentication Daemon...
Nov  6 14:19:15 ubuntu fprintd[404195]: In cvif_IsUshThere(), cv_get_ush_ver() status: (0x0)
Nov  6 14:19:15 ubuntu fprintd[404195]: Control Vault getting chip type
Nov  6 14:19:15 ubuntu fprintd[404195]: Citadel A0 CID7 Chip Found....
Nov  6 14:19:15 ubuntu fprintd[404195]: Current AAI Version = 5.7.20.0
Nov  6 14:19:15 ubuntu fprintd[404195]: Current SBI Version = 116
Nov  6 14:19:15 ubuntu fprintd[404195]: AAI version available for upgrade = 5.8.12.0
Nov  6 14:19:15 ubuntu fprintd[404195]: SBI version available for upgrade = 122
Nov  6 14:19:15 ubuntu fprintd[404195]: Updating ControlVault firmware from 5.7.20.0 to 5.8.12.0
Nov  6 14:19:15 ubuntu fprintd[404195]: Event: FwUpgradeStarted
Nov  6 14:19:15 ubuntu fprintd[404195]: Upgrade the SBI from 116 to 122, first clear SCD
Nov  6 14:19:15 ubuntu fprintd[404195]: Writing /var/lib/fprint/fw/bcm_cv_clearscd.bin to flash
Nov  6 14:19:15 ubuntu fprintd[404195]: cv_flash_update() successful
Nov  6 14:19:15 ubuntu fprintd[404195]: Reset to SBI to update the SBI....
Nov  6 14:19:18 ubuntu fprintd[404195]: In cvif_IsUshThere(), cv_get_ush_ver() status: (0x13)
Nov  6 14:19:18 ubuntu kernel: [489037.192608] usb 1-8: USB disconnect, device number 3
Nov  6 14:19:18 ubuntu kernel: [489037.786851] usb 1-8: new high-speed USB device number 6 using xhci_hcd
Nov  6 14:19:18 ubuntu kernel: [489037.956470] usb 1-8: New USB device found, idVendor=0a5c, idProduct=5841, bcdDevice= 1.02
Nov  6 14:19:18 ubuntu kernel: [489037.956486] usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Nov  6 14:19:18 ubuntu kernel: [489037.956493] usb 1-8: Product: 58200
Nov  6 14:19:18 ubuntu kernel: [489037.956498] usb 1-8: Manufacturer: Broadcom Corp
Nov  6 14:19:18 ubuntu kernel: [489037.956502] usb 1-8: SerialNumber: 0123456789ABCD
Nov  6 14:19:18 ubuntu mtp-probe: checking bus 1, device 6: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8"
Nov  6 14:19:18 ubuntu mtp-probe: bus: 1, device: 6 was not an MTP device
Nov  6 14:19:18 ubuntu mtp-probe: checking bus 1, device 6: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8"
Nov  6 14:19:19 ubuntu mtp-probe: bus: 1, device: 6 was not an MTP device
Nov  6 14:19:19 ubuntu fprintd[404195]: In cvif_IsUshThere(), cv_get_ush_ver() status: (0x0)
Nov  6 14:19:19 ubuntu fprintd[404195]: Found ControlVault Chip Type: CITADEL A0 CID7
Nov  6 14:19:19 ubuntu fprintd[404195]: Event: FwUpgradeInProgress 1
Nov  6 14:19:19 ubuntu fprintd[404195]: Going to update SBI (bcmsbiCitadelA0_7.otp)
Nov  6 14:19:19 ubuntu fprintd[404195]: Writing /var/lib/fprint/fw/bcmsbiCitadelA0_7.otp to flash
Nov  6 14:19:21 ubuntu fprintd[404195]: cv_flash_update() successful
Nov  6 14:19:21 ubuntu fprintd[404195]: BCM Update attempt 1
Nov  6 14:19:21 ubuntu fprintd[404195]: Event: FwUpgradeInProgress 2
Nov  6 14:19:21 ubuntu fprintd[404195]: Going to clear SCD
Nov  6 14:19:21 ubuntu fprintd[404195]: Writing /var/lib/fprint/fw/bcm_cv_clearscd.bin to flash
Nov  6 14:19:22 ubuntu fprintd[404195]: cv_flash_update() successful
Nov  6 14:19:22 ubuntu fprintd[404195]: Going to Reset to SBI
Nov  6 14:19:22 ubuntu fprintd[404195]: Event: FwUpgradeInProgress 3
Nov  6 14:19:22 ubuntu fprintd[404195]: Waiting for Control Vault to comeback from reset
Nov  6 14:19:24 ubuntu systemd[349499]: app-gnome-gnome\x2dcontrol\x2dcenter-403636.scope: Deactivated successfully.
Nov  6 14:19:24 ubuntu systemd[349499]: app-gnome-gnome\x2dcontrol\x2dcenter-403636.scope: Consumed 8.187s CPU time.
Nov  6 14:19:24 ubuntu kernel: [489043.803054] usb 1-8: USB disconnect, device number 6
Nov  6 14:19:24 ubuntu gsd-media-keys[358309]: <window.Window object at 0x7f8cccbcad00 (terminatorlib+window+Window at 0x15c8500)> is not in registered window list
Nov  6 14:19:24 ubuntu systemd[349499]: vte-spawn-d3e6f461-4b10-4962-8863-f4e51db2d470.scope: Deactivated successfully.
Nov  6 14:19:24 ubuntu systemd[349499]: vte-spawn-d3e6f461-4b10-4962-8863-f4e51db2d470.scope: Consumed 14.007s CPU time.
Nov  6 14:19:24 ubuntu systemd[349499]: app-gnome-x\x2dterminal\x2demulator-358309.scope: Deactivated successfully.
Nov  6 14:19:24 ubuntu systemd[349499]: app-gnome-x\x2dterminal\x2demulator-358309.scope: Consumed 19.600s CPU time.
Nov  6 14:19:25 ubuntu kernel: [489044.318995] usb 1-8: new high-speed USB device number 7 using xhci_hcd
Nov  6 14:19:25 ubuntu kernel: [489044.488008] usb 1-8: New USB device found, idVendor=0a5c, idProduct=5841, bcdDevice= 1.02
Nov  6 14:19:25 ubuntu kernel: [489044.488023] usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Nov  6 14:19:25 ubuntu kernel: [489044.488029] usb 1-8: Product: 58200
Nov  6 14:19:25 ubuntu kernel: [489044.488033] usb 1-8: Manufacturer: Broadcom Corp
Nov  6 14:19:25 ubuntu kernel: [489044.488037] usb 1-8: SerialNumber: 0123456789ABCD
Nov  6 14:19:25 ubuntu mtp-probe: checking bus 1, device 7: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8"
Nov  6 14:19:25 ubuntu mtp-probe: bus: 1, device: 7 was not an MTP device
Nov  6 14:19:25 ubuntu mtp-probe: checking bus 1, device 7: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8"
Nov  6 14:19:25 ubuntu mtp-probe: bus: 1, device: 7 was not an MTP device
Nov  6 14:19:33 ubuntu systemd[349499]: Started Application launched by gsd-media-keys.
Nov  6 14:19:33 ubuntu systemd[349499]: Started VTE child process 404279 launched by x-terminal-emulator process 404253.
Nov  6 14:19:33 ubuntu gnome-shell[349630]: setup_framebuffers: assertion 'width > 0' failed
Nov  6 14:19:37 ubuntu fprintd[404195]: ...............
Nov  6 14:19:38 ubuntu fprintd[404195]: In cvif_IsUshThere(), cv_get_ush_ver() status: (0x0)
Nov  6 14:19:38 ubuntu fprintd[404195]: SBI mode
Nov  6 14:19:38 ubuntu fprintd[404195]: Security check before flashing passed
Nov  6 14:19:38 ubuntu fprintd[404195]: Citadel A0 CID7 Chip Found....
Nov  6 14:19:38 ubuntu fprintd[404195]: Going to update BCM (bcmCitadel_7.otp)
Nov  6 14:19:38 ubuntu fprintd[404195]: Event: FwUpgradeInProgress 4
Nov  6 14:19:38 ubuntu fprintd[404195]: cv_open() return status: 0x57
Nov  6 14:19:38 ubuntu fprintd[404195]: Going to update the BCM with /var/lib/fprint/fw/bcmCitadel_7.otp
Nov  6 14:19:38 ubuntu fprintd[404195]: Please wait, this takes about one minute
Nov  6 14:19:44 ubuntu systemd[1]: systemd-timedated.service: Deactivated successfully.
Nov  6 14:19:46 ubuntu dbus-daemon[902]: [system] Activating via systemd: service name='net.reactivated.Fprint' unit='fprintd.service' requested by ':1.630' (uid=1000 pid=404613 comm="python3 debian/update-fw.py " label="unconfined")
Nov  6 14:20:03 ubuntu fprintd[404195]: Firmware Upgrade Complete
Nov  6 14:20:03 ubuntu fprintd[404195]: Going to Reset Control Vault
Nov  6 14:20:03 ubuntu fprintd[404195]: Event: FwUpgradeInProgress 5
Nov  6 14:20:03 ubuntu fprintd[404195]: Reboot USH
Nov  6 14:20:03 ubuntu fprintd[404195]: Waiting for Control Vault to comeback from reset
Nov  6 14:20:06 ubuntu kernel: [489085.487696] usb 1-8: USB disconnect, device number 7
Nov  6 14:20:08 ubuntu kernel: [489087.511749] usb 1-8: new high-speed USB device number 8 using xhci_hcd
Nov  6 14:20:10 ubuntu kernel: [489089.220066] usb 1-8: New USB device found, idVendor=0a5c, idProduct=5843, bcdDevice= 1.02
Nov  6 14:20:10 ubuntu kernel: [489089.220080] usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Nov  6 14:20:10 ubuntu kernel: [489089.220086] usb 1-8: Product: 58200
Nov  6 14:20:10 ubuntu kernel: [489089.220090] usb 1-8: Manufacturer: Broadcom Corp
Nov  6 14:20:10 ubuntu kernel: [489089.220094] usb 1-8: SerialNumber: 0123456789ABCD
Nov  6 14:20:10 ubuntu mtp-probe: checking bus 1, device 8: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8"
Nov  6 14:20:10 ubuntu mtp-probe: bus: 1, device: 8 was not an MTP device
Nov  6 14:20:10 ubuntu upowerd[1341]: treating change event as add on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-8
Nov  6 14:20:10 ubuntu mtp-probe: checking bus 1, device 8: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8"
Nov  6 14:20:10 ubuntu mtp-probe: bus: 1, device: 8 was not an MTP device
Nov  6 14:20:11 ubuntu dbus-daemon[902]: [system] Activating via systemd: service name='net.reactivated.Fprint' unit='fprintd.service' requested by ':1.639' (uid=1000 pid=404613 comm="python3 debian/update-fw.py " label="unconfined")
Nov  6 14:20:18 ubuntu fprintd[404195]: ...............
Nov  6 14:20:19 ubuntu fprintd[404195]: In cvif_IsUshThere(), cv_get_ush_ver() status: (0x0)
Nov  6 14:20:20 ubuntu fprintd[404195]: Citadel A0 CID7 Chip Found....
Nov  6 14:20:20 ubuntu fprintd[404195]: Opening CV session
Nov  6 14:20:20 ubuntu fprintd[404195]: Event: FwUpgradeInProgress 6
Nov  6 14:20:20 ubuntu fprintd[404195]: Control Vault firmware upgrade successful
Nov  6 14:20:20 ubuntu fprintd[404195]: Citadel A0 CID7 Chip Found....
Nov  6 14:20:20 ubuntu fprintd[404195]: Sensor type  : 12 Sensor firmware version on device: 3088084-109-0-3473 length: 18
Nov  6 14:20:20 ubuntu fprintd[404195]: Sensor-firmware file signature verification is valid
Nov  6 14:20:20 ubuntu fprintd[404195]: Sensor Version length: 16
Nov  6 14:20:20 ubuntu fprintd[404195]: Sensor Version: 3031663-2-0-3545
Nov  6 14:20:20 ubuntu fprintd[404195]: cv_check_sensor_firmware_upgradable: FALSE
Nov  6 14:20:20 ubuntu fprintd[404195]: cv_check_sensor_firmware_upgradable: Skipping
Nov  6 14:20:20 ubuntu fprintd[404195]: Sensor Version length: 18
Nov  6 14:20:20 ubuntu fprintd[404195]: Sensor Version: 3088084-109-0-3473
Nov  6 14:20:20 ubuntu fprintd[404195]: cv_check_sensor_firmware_upgradable: FALSE
Nov  6 14:20:20 ubuntu fprintd[404195]: cv_check_sensor_firmware_upgradable: Skipping
Nov  6 14:20:20 ubuntu fprintd[404195]: cv_check_sensor_firmware_upgradable: Skipping
Nov  6 14:20:20 ubuntu fprintd[404195]: Sensor Version length: 16
Nov  6 14:20:20 ubuntu fprintd[404195]: Sensor Version: 3031663-2-0-3528
Nov  6 14:20:20 ubuntu fprintd[404195]: cv_check_sensor_firmware_upgradable: FALSE
Nov  6 14:20:20 ubuntu fprintd[404195]: Couldn't find UPDATABLE sensor-firmware for this sensor
Nov  6 14:20:20 ubuntu fprintd[404195]: Couldn't get UPDATABLE firmware image data for sensor
Nov  6 14:20:20 ubuntu fprintd[404195]: Ignoring device due to initialization error: An unspecified error occurred!
Nov  6 14:20:20 ubuntu fprintd[404195]: g_task_return_boolean: assertion 'G_IS_TASK (task)' failed
Nov  6 14:20:20 ubuntu dbus-daemon[902]: [system] Successfully activated service 'net.reactivated.Fprint'
Nov  6 14:20:20 ubuntu systemd[1]: Started Fingerprint Authentication Daemon.
Nov  6 14:20:24 ubuntu systemd[349499]: Started Application launched by gnome-shell.
Nov  6 14:20:50 ubuntu systemd[1]: fprintd.service: Deactivated successfully.

Had to restart after this to get the device working.

innovativesahil avatar Nov 06 '21 09:11 innovativesahil

Wow, great work, and a big thank you to the devs that were able to provide patches, bummer I don't have this laptop anymore, otherwise I would confirm your instructions.

cbluth avatar Nov 06 '21 19:11 cbluth

I have tried this with my Precision 7520 (Ubuntu 20.04.3) but the "Additional Drives" window doesn't show any Broadcom option though I get an unknown device from Somerville (I don't know if this has anything to do with the fingerprint reader)...

Try my solution above. It worked for Dell 5400

innovativesahil avatar Nov 07 '21 07:11 innovativesahil

The only repo that I've found is https://git.launchpad.net/libfprint-2-tod1-broadcom/tree/ but it doesn't include any code, only config files and a prebuilt dynamic library.

I'm not sure how to use that .so file. Can you please share what steps you followed?

Thank you

I have tried this with my Precision 7520 (Ubuntu 20.04.3) but the "Additional Drives" window doesn't show any Broadcom option though I get an unknown device from Somerville (I don't know if this has anything to do with the fingerprint reader)...

So... does anyone have the instructions for Debian? ...

I have the same fingerprint on Latitude E7470 How can I use it in Ubuntu for login procedure?

I'd like to login with fingerprint reader to my linux.

I would love to be able to use this fingerprint reader on my Dell Precision 7520 which was shipped with Ubuntu and I paid the extra few quid for the reader, but there seems to be no way to get it working.

I wouldn't know where to start with writing a driver for it myself, but maybe if enough people want it we could chip in and pay someone who does know how to do such things to do it for us?

Check instructions above if they are helpful to get it running.

innovativesahil avatar Nov 07 '21 07:11 innovativesahil

It worked after I upgraded the fprintd to version 1.94 However, the 0a5c:5843 device disappeared after I suspended the laptop (dell latitude 5401) several times. So, basically, it works only after shutdown and cold boot for some time, until you suspend the system.

project-administrator avatar Nov 07 '21 20:11 project-administrator

None of the proposed solutions seems to work with 0a5c:5834 (Precision 7520) and Ubuntu 20.04. Any ideas?

viherbos avatar Nov 09 '21 08:11 viherbos

Got it working on Fedora 35, hardware is Lattitude 7400 (0a5c:5843) I recompiled fprintd from source (tag v1.94.1) and reinstalled it (sudo meson install) same with libfprintd using branch tod (sudo meson install) Cloned git://git.launchpad.net/~oem-solutions-engineers/libfprint-2-tod1-broadcom/+git/libfprint-2-tod1-broadcom and ran the install script.

In the end this is what I have:

lrwxrwxrwx. 1 root root      20 Sep 24 16:44 /usr/lib64/libfprint-2.so.2 -> libfprint-2.so.2.0.0
-rwxr-xr-x. 1 root root 2440288 Nov 11 11:59 /usr/lib64/libfprint-2.so.2.0.0
-rwxr-xr-x. 1 root root 1060656 Nov 11 11:31 /usr/lib64/libfprint-2/tod-1/libfprint-2-tod-1-broadcom.so
-rwxr-xr-x. 1 root root  605384 Nov 11 12:00 /usr/lib64/libfprint-2-tod.so
-rwxr-xr-x. 1 root root  605384 Nov 11 11:59 /usr/lib64/libfprint-2-tod.so.1
lrwxrwxrwx. 1 root root      23 Nov 11 12:06 /usr/lib/x86_64-linux-gnu/libfprint-2.so.2 -> /lib64/libfprint-2.so.2
-rwxr-xr-x. 1 root root 1060656 Nov 11 11:56 /usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-2-tod-1-broadcom.so
lrwxrwxrwx. 1 root root      16 Nov 11 11:59 /usr/local/lib64/libfprint-2.so -> libfprint-2.so.2
lrwxrwxrwx. 1 root root      20 Nov 11 11:59 /usr/local/lib64/libfprint-2.so.2 -> libfprint-2.so.2.0.0
-rwxr-xr-x. 1 root root 2440288 Nov 11 11:59 /usr/local/lib64/libfprint-2.so.2.0.0
-rwxr-xr-x. 1 root root 1060656 Nov 11 11:31 /usr/local/lib64/libfprint-2/tod-1/libfprint-2-tod-1-broadcom.so
lrwxrwxrwx. 1 root root      20 Nov 11 11:59 /usr/local/lib64/libfprint-2-tod.so -> libfprint-2-tod.so.1
-rwxr-xr-x. 1 root root  605384 Nov 11 11:58 /usr/local/lib64/libfprint-2-tod.so.1

Now journalctl -u fprintd shows that it has found the device with version 12. But it fails with a dbus error:

failed to claim device: GDBus.Error:net.reactivated.Fprint.Error.PermissionDenied: Not Authorized: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action net.reactivated.fprint.device.enroll is not registered

Just reboot and voilà fprintd-enroll now work.

If you use the stock fprintd package from Fedora, then you get another type of error (that's why it's important te rebuild and install it from sources)

Error: 0xb from cv_get_ush_ver()
In cvif_IsUshThere(), cv_get_ush_ver() status: (0xb)
...
Could NOT detect USH.
UpgradeError. Check Firmware Files or CID used or Hardware etc. Error: 0x1c
Ignoring device due to initialization error: An unspecified error occurred!

Thanks all for your help.

EDIT: I can register a fingerprint but fprintd-verify seem to hang:

$ fprintd-verify 
Using device /net/reactivated/Fprint/Device/0
Listing enrolled fingers:
 - #0: right-index-finger
Verify started!
Verifying: right-index-finger

At that stage the daemon has output this:

Nov 11 12:53:00 dell systemd[1]: Starting Fingerprint Authentication Daemon...
Nov 11 12:53:00 dell fprintd[2145]: In cvif_IsUshThere(), cv_get_ush_ver() status: (0x0)
Nov 11 12:53:00 dell fprintd[2145]: Control Vault getting chip type
Nov 11 12:53:00 dell fprintd[2145]: Citadel A0 CID7 Chip Found....
Nov 11 12:53:00 dell fprintd[2145]: Current AAI Version = 5.8.12.0
Nov 11 12:53:00 dell fprintd[2145]: Current SBI Version = 122
Nov 11 12:53:00 dell fprintd[2145]: AAI version available for upgrade = 5.8.12.0
Nov 11 12:53:00 dell fprintd[2145]: SBI version available for upgrade = 122
Nov 11 12:53:00 dell fprintd[2145]: AAI version matches - it is up do date
Nov 11 12:53:00 dell fprintd[2145]: SBI version matches - it is up do date
Nov 11 12:53:00 dell fprintd[2145]: Citadel A0 CID7 Chip Found....
Nov 11 12:53:00 dell fprintd[2145]: Sensor type  : 12 Sensor firmware version on device: 3088084-109-0-3473 length: 18
Nov 11 12:53:00 dell fprintd[2145]: Sensor-firmware file signature verification is valid
Nov 11 12:53:00 dell fprintd[2145]: Sensor Version length: 16
Nov 11 12:53:00 dell fprintd[2145]: Sensor Version: 3031663-2-0-3545
Nov 11 12:53:00 dell fprintd[2145]: cv_check_sensor_firmware_upgradable: FALSE
Nov 11 12:53:00 dell fprintd[2145]: cv_check_sensor_firmware_upgradable: Skipping
Nov 11 12:53:00 dell fprintd[2145]: Sensor Version length: 18
Nov 11 12:53:00 dell fprintd[2145]: Sensor Version: 3088084-109-0-3473
Nov 11 12:53:00 dell fprintd[2145]: cv_check_sensor_firmware_upgradable: FALSE
Nov 11 12:53:00 dell fprintd[2145]: cv_check_sensor_firmware_upgradable: Skipping
Nov 11 12:53:00 dell fprintd[2145]: cv_check_sensor_firmware_upgradable: Skipping
Nov 11 12:53:00 dell fprintd[2145]: Sensor Version length: 16
Nov 11 12:53:00 dell fprintd[2145]: Sensor Version: 3031663-2-0-3528
Nov 11 12:53:00 dell fprintd[2145]: cv_check_sensor_firmware_upgradable: FALSE
Nov 11 12:53:00 dell fprintd[2145]: Couldn't find UPDATABLE sensor-firmware for this sensor
Nov 11 12:53:00 dell fprintd[2145]: Couldn't get UPDATABLE firmware image data for sensor
Nov 11 12:53:00 dell systemd[1]: Started Fingerprint Authentication Daemon.

Pressing the sensor doesn't do much at this point.

After a few minutes I Ctrl+C to terminate fprint-verify and then the daemon outputs this:

Nov 11 12:59:51 dell fprintd[2145]: Capture Initiated, Please place your finger now on the sensor now
Nov 11 12:59:51 dell fprintd[2145]: The interrupt processed data 3
Nov 11 12:59:51 dell systemd[1]: fprintd.service: Deactivated successfully.

eric-saintetienne avatar Nov 11 '21 12:11 eric-saintetienne

0a5c:5834

Can confirm that none of the approaches work for 0a5c:5834 (dell e7470). I noticed that in the repo in the udev rules it doesnt even list 5834:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="5842", ATTRS{dev}=="*", TEST=="power/contr> SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="5842", ENV{LIBFPRINT_DRIVER}="Broadcom Sen> SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="5843", ATTRS{dev}=="*", TEST=="power/contr> SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="5843", ENV{LIBFPRINT_DRIVER}="Broadcom Sen> SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="5844", ATTRS{dev}=="*", TEST=="power/contr> SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="5844", ENV{LIBFPRINT_DRIVER}="Broadcom Sen> SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="5845", ATTRS{dev}=="*", TEST=="power/contr> SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="5845", ENV{LIBFPRINT_DRIVER}="Broadcom Sen>

Adding a line for 5834 does nothing.

Any ideas?

stonedbear avatar Nov 26 '21 15:11 stonedbear

EDIT: I can register a fingerprint but fprintd-verify seem to hang:

$ fprintd-verify 
Using device /net/reactivated/Fprint/Device/0
Listing enrolled fingers:
 - #0: right-index-finger
Verify started!
Verifying: right-index-finger

In my case, fprintd-verify only prints the Verify started! message when I press the fingerprint reader, which is wrong.

pam-fprintd on Fedora 35 has the same issue : a sudo doesn't print Place your finger on the fingerprint reader until I press the sensor, and I get Unexpected VerifyResult 'verify-match' in the system logs (the VerifyStatus signal is sent before the VerifyStart completes, which isn't valid).

It seems to be a bug in the closed-source libfprint-2-tod1-broadcom, which blocks on synchronous USB transfers in its verify method. But using fp_device_identify (which is asynchronous in the library), which is used when asked to verify "any" finger, works.

Ubuntu 20.04 doesn't have https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/fc65055279, so fprintd-verify -f any and pam-fprintd always use fp_device_identify, so they work.

Fedora 35 has the commit, so it only works when at least two fingers are enrolled.

~ fprintd-verify -f any                      
Using device /net/reactivated/Fprint/Device/0
Listing enrolled fingers:
 - #0: right-index-finger
 - #1: left-index-finger
Verify started!
Verifying: any
Verify result: verify-match (done)

It seems to make pam-fprintd work on Fedora.

hwti avatar Jan 03 '22 05:01 hwti

Also, keeping fprintd running by adding --no-timeout to its command line seems to avoid the fingerprint controller not responding after a few days of use. By default it only starts when needed, and exits after some time, which maybe leaves the controller in a bad state sometimes, or triggers a memory leak in the firmware due to lots of init/shutdown.

For this I created /etc/systemd/system/fprintd.service.d/override.conf :

[Service]
ExecStart=
ExecStart=/usr/libexec/fprintd --no-timeout

hwti avatar Feb 10 '22 23:02 hwti

Here's a quick hack for Debian Testing.

https://gist.github.com/giannello/367b868618950e5687ef344d82d1e204

On the first usage, the closed-source library will upload a firmware to the fingerprint reader. This will take a few minutes (check system logs for progress). If after a few minutes the reader still doesn't work, reboot.

With this, the fingerprint reader will happily start working in Gnome. If you also want fingerprint support in your terminal, run sudo pam-auth-update and enable "Fingerprint authentication".

Fingerprints can be enrolled either via fprintd-enroll or through Gnome's Users admin panel. Verify them via cli using fprintd-verify -f any - anything else will hang, due to the bug mentioned above.

In case of a fprintd/libfprint update, just re-run the script.

giannello avatar May 01 '22 11:05 giannello

Ubuntu 22.04 and the script, the fingerprint is detected but disappears after a couple of minutes for 0a5c:5834 (dell e7470).

xhertan avatar May 08 '22 12:05 xhertan