dsd / fprintd

http://reactivated.net/fprint/wiki/Fprintd
GNU General Public License v2.0
19 stars 3 forks source link

0a5c:5834 Broadcom Corp. - Device Support #3

Open inventortechie opened 7 years ago

inventortechie commented 7 years ago

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.

mormegil6 commented 6 years ago

Hi there. Is there any progress on this issue?

viherbos commented 6 years ago

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!

mensfeld commented 5 years ago

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

cbluth commented 5 years ago

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/

palvarez89 commented 5 years ago

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.

bud4 commented 5 years ago

Please help !

WillGibson commented 5 years ago

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?

hackerb9 commented 5 years ago

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.

camaeel commented 4 years ago

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

iDoka commented 4 years ago

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

eric-saintetienne commented 3 years ago

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
[...]
jermaine151 commented 2 years ago

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!

project-administrator commented 2 years ago

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

viherbos commented 2 years ago

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)...

project-administrator commented 2 years ago

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
eric-saintetienne commented 2 years ago

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

project-administrator commented 2 years ago

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.
innovativesahil commented 2 years ago

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 commented 2 years ago

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.

cbluth commented 2 years ago

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.

innovativesahil commented 2 years ago

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 commented 2 years ago

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.

project-administrator commented 2 years ago

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.

viherbos commented 2 years ago

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

eric-saintetienne commented 2 years ago

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.
stonedbear commented 2 years ago

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?

hwti commented 2 years ago

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 commented 2 years ago

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
giannello commented 2 years ago

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.

xhertan commented 2 years ago

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

skoruppa commented 2 years ago

Just like for @xhertan, I managed to get the fingerprint reader to work with Ubuntu 22.04 (using the official libfprint-2-tod1-broadcom package from dell-ubuntu repo - http://dell.archive.canonical.com/updates/pool/public/libf/libfprint-2-tod1-broadcom/ ) but the reader "disappears" from the system after suspend (deep).

Any idea on how to wake it up without cold boot?

hwti commented 2 years ago

Any idea on how to wake it up without cold boot?

I don't think it's possible, the device is probably in a bad state, and resetting the USB port isn't enough.

But I no longer have issues with suspend. I don't know if it comes from kernel changes, BIOS updates, or the newer firmware I extracted from the Windows drivers.

Here is how I updated the firmware :

Note that several firmware files will be updated, it's quite slow (the progress is visible in the system logs, ie journalctl). If there is a timeout in fprintd, restarting it again should continue and eventually finish.

Ideally, it would be better to have matching versions of the libraries and firmware (it's up to Dell and/or Broadcom...). For example, the 5.9.8.17 Windows package has 5.9.3.1/5.9.7.16 drivers with a 5.9.013.0 firmware. But the 5.9 firmware seems to work fine with the 5.8 Linux libraries.

skoruppa commented 2 years ago

But I no longer have issues with suspend. I don't know if it comes from kernel changes, BIOS updates, or the newer firmware I extracted from the Windows drivers.

Thank you! I'm also not sure what helped beause before I read your reply I updated my kernel to 5.15.0-30 and updated bios (and everything else) through the fwupdmgr update command. After reboot I followed your instructions and even though systemctl restart fprintd.service threw a timeout, my fingerprint reader is still working after a few suspends

aairey commented 2 years ago

Seems we have workarounds for both Debian based systems and Fedora. Is there anything else needed to get a proper fix in fprintd? Is more testing required?

stonedbear commented 2 years ago

Hi Guys, so I am trying to make it work on arch linux, am i missing somehting?

  1. i have ibfprint-2-tod1-broadcom installed https://aur.archlinux.org/packages/libfprint-2-tod1-broadcom
  2. i have libfprint-tod-git-1.94.3+tod1-1 installed
  3. i have fprintd installed version 1.94.2-1
  4. i am following steps in hwti comment above to upgrade firmware

but on systemctl restart fprintd.service nothing happens and my 0a5c:5834 (dell 7470) is not detected, or firmware update attempted.

Any help would be highly appreciated :)

giannello commented 2 years ago

Here is how I updated the firmware :

make sure to not remove the key.pem file - without that, fprintd will segfault, and login via GDM will not work.

xhertan commented 2 years ago

I have tried all the recommendations here, but the driver is not working on e7470 (0a5c:5834) Ubuntu 22.04. The device is working perfectly fine on Win10, so is not a hardware problem. Any idea?

skoruppa commented 2 years ago

I have tried all the recommendations here, but the driver is not working on e7470 (0a5c:5834) Ubuntu 22.04. The device is working perfectly fine on Win10, so is not a hardware problem. Any idea?

Try sudo /usr/bin/update-fw.py. I remember I had to do this after driver installation so the system could see the device

AlexanderS commented 2 years ago

Try sudo /usr/bin/update-fw.py. I remember I had to do this after driver installation so the system could see the device

@skoruppa Are you sure you have a 0a5c:5834 and not a 0a5c:5843? I think the 0a5c:5834 (aka. Dell ControlVault2) is not supported by the current available libfprint-2-tod-1-broadcom.so.

xhertan commented 2 years ago

I can confirm that none of the approaches here work for e7470 -e7490 (0a5c:5834).

Hael616 commented 2 years ago

I can confirm that none of the approaches here work for e7470 -e7490 (0a5c:5834).

I also use the exact the device e7470 I haven't tried it yet tho but my fingerprint scanner works perfectly on windows

Hael616 commented 2 years ago

I can confirm that none of the approaches work for e7470 -e7490 (0a5c:5834).

It didn't work for me also I just tried it

vctls commented 1 year ago

I'm on Ubuntu 22.04 LTS on a Dell Latitude 5430. lsusb lists the device as follows:

lsusb.log ``` Bus 003 Device 003: ID 0a5c:5843 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 0x5843 bcdDevice 1.01 iManufacturer 1 Broadcom Corp iProduct 2 58200 iSerial 3 0123456789ABCD bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x010d bNumInterfaces 4 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 w/FingerPrint ** 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 0x0040 1x 64 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 11 Chip/SmartCard bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 5 Contacted SmartCard ChipCard Interface Descriptor: bLength 54 bDescriptorType 33 bcdCCID 1.00 nMaxSlotIndex 0 bVoltageSupport 7 5.0V 3.0V 1.8V dwProtocols 3 T=0 T=1 dwDefaultClock 4000 dwMaxiumumClock 4000 bNumClockSupported 0 dwDataRate 9600 bps dwMaxDataRate 250000 bps bNumDataRatesSupp. 0 dwMaxIFSD 247 dwSyncProtocols 00000000 dwMechanical 00000000 dwFeatures 000102BA Auto configuration based on ATR Auto voltage selection Auto clock change Auto baud rate change Auto PPS made by CCID NAD value other than 0x00 accepted TPDU level exchange dwMaxCCIDMsgLen 271 bClassGetResponse 00 bClassEnvelope 00 wlcdLayout none bPINSupport 0 bMaxCCIDBusySlots 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 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 0x02 EP 2 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 0x86 EP 6 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 11 Chip/SmartCard bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 6 Contactless SmartCard ChipCard Interface Descriptor: bLength 54 bDescriptorType 33 bcdCCID 1.01 (Warning: Only accurate for version 1.0) nMaxSlotIndex 0 bVoltageSupport 1 5.0V dwProtocols 3 T=0 T=1 dwDefaultClock 3580 dwMaxiumumClock 3580 bNumClockSupported 1 dwDataRate 9600 bps dwMaxDataRate 9600 bps bNumDataRatesSupp. 1 dwMaxIFSD 528 dwSyncProtocols 00000000 dwMechanical 00000000 dwFeatures 000404BA Auto configuration based on ATR Auto voltage selection Auto clock change Auto baud rate change Auto PPS made by CCID Auto IFSD exchange Short and extended APDU level exchange dwMaxCCIDMsgLen 528 bClassGetResponse 00 bClassEnvelope 00 wlcdLayout none bPINSupport 0 bMaxCCIDBusySlots 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 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 0x03 EP 3 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 0x87 EP 7 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 7 Broadcom NFP ** UNRECOGNIZED: 10 26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 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 0x04 EP 4 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 0x88 EP 8 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0000 (Bus Powered) ```

I tried several things, includind @innovativesahil 's comment that looked promising, but couldn't make it work. fprintd keeps saying there are no devices available no matter what.

potokslow commented 1 year ago

Thank you @innovativesahil for summarizing the installation process.

I got the 0a5c:5843 Broadcom Corp. 58200 working on Ubuntu 22.04 LTS on Dell Precision 3571 following the guide, plus some additional steps.

It seems like the there's a dependency on libssl.so.1.1 when using fresh installation of Ubuntu 22.04. Using sudo systemctl status fprintd.service reported the following error: systemd[1]: Starting Fingerprint Authentication Daemon... fprintd[6349]: Impossible to load module /usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-2-tod-1-broadcom.so: libcrypto.so.1.1: cannot open shared object file: No such file or directory

To fix it, I did the following: wget http://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb sudo reboot

Fingerprint reader was working after reboot, I was able to enroll my fingerprints and use them for authentication.

iconoclasthero commented 1 year ago

Latitude 7390 2-in-1. Ubuntu 22.10 kinetic Kernel info (uname): Linux 5.19.0-23-generic #24-Ubuntu SMP PREEMPT_DYNAMIC Fri Oct 14 15:39:57 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

I was able to get to the point where I can see the scanner with lsusb -v -d 0a5c:5834 and systemctl shows that fprintd is running properly but fprint-list and fprint-enroll show no device, no update in firmware, no fingerprint scanner in the settings. I've tried everything above at least once.

If you run into the issue that fprintd.service can't find libcrypto.so.1.1, Nov 8 07:44:23 latitude fprintd[5660]: Impossible to load module /usr/local/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-2-tod-1-broadcom.so: libcrypto.so.1.1: cannot open shared object file: No such file or directory you can download it from here https://packages.ubuntu.com/focal/amd64/libssl1.1/download and dpkg -i to install it. (See https://askubuntu.com/questions/1403055/error-libcrypto-so-1-1-could-not-open-while-try-run-wps-office-on-ubuntu-22-04)

iconoclasthero commented 1 year ago

@jermaine151

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)". ... 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.

libfprint-2-tod1 is already the newest version (1:1.94.5+tod1-0ubuntu1). but I do not have any additional drivers available in 22.11.

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!

How is this done? I wasn't really able to find anything about this. I tried to add the Jammy repos for somerville, etc., since I'm fairly sure there aren't Kinetic ones, but either I didn't do it right or it isn't working. Here's a log of apt-update: https://pastebin.com/0uFBpXTn

AlexanderS commented 1 year ago

I was able to get to the point where I can see the scanner with lsusb -v -d 0a5c:5834 and systemctl shows that fprintd is running properly but fprint-list and fprint-enroll show no device

I do not think this device will work. There are only successful installations in this thread with 0a5c:5843. I do not think the current version of libfprint-2-tod1 supports the device with id 0a5c:5834.

iconoclasthero commented 1 year ago

OK, thanks. I transposed numbers I guess. This isn't mission critical or anything so I'm going to spend time somewhere else for the time being.

On Fri, Nov 11, 2022 at 7:28 AM Alexander Sulfrian @.***> wrote:

I was able to get to the point where I can see the scanner with lsusb -v -d 0a5c:5834 and systemctl shows that fprintd is running properly but fprint-list and fprint-enroll show no device

I do not think this device will work. There are only successful installations in this thread with 0a5c:5843. I do not think the current version of libfprint-2-tod1 supports the device with id 0a5c:5834.

— Reply to this email directly, view it on GitHub https://github.com/dsd/fprintd/issues/3#issuecomment-1311641112, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEC3GTSU2UBD3UTUSXWUVTWHY3YNANCNFSM4DRM2M3A . You are receiving this because you commented.Message ID: @.***>

lfarkas commented 1 year ago

fedora users can use my repo: https://lfarkas.org/linux/packages/fedora/lfarkas.repo

rpm -e --nodeps libfprint
dnf install libfprint-tod libfprint-tod-broadcom

and reboot (sometimes the first reboot not working and needs 2 reboot:-)

our packages directly from: https://lfarkas.org/linux/packages/fedora/37/x86_64/

AlexanderS commented 1 year ago

@lfarkas Do you know, whether the new version works with 0a5c:5834 or is it still only working with 0a5c:584x devices?