FingerPrint Authentication

I just installed Manjaro Gnome in my laptop. I have spent hours and hours trying to make it work but i am constantly failing. Is there any solution?

Lecture:

It is tricky, but possible.

  1. Check lsusb if it shows the fingerprint sensor.

  2. If it exists in lsusb then copy the device ID XXXX:YYYY

  3. Check this ID, if it is supported by fprintd: lifprint — Supported Devices

  4. if yes, then run fprintd-enroll $USER

  5. Reboot, then login with your fingerprint.

Hello everyone, I was assisting the user on reddit. I continue here.

We had arrived at the firmware installation.

Have you tried installing python-spidev from aur and trying to flash the firmware again?

to install python-spidev from aur:

paru -S python-spidev

wish it was that easy, My device is not in the list.

yes when i run sudo python3 run_538d.py i get:-
Traceback (most recent call last):
File “/home/rk10/goodix-fp-dump/run_538d.py”, line 1, in
from driver_53xd import main
File “/home/rk10/goodix-fp-dump/driver_53xd.py”, line 9, in
from goodix import FLAGS_TRANSPORT_LAYER_SECURITY_DATA, Device
File “/home/rk10/goodix-fp-dump/goodix.py”, line 13, in
from protocol import Protocol, USBProtocol
File “/home/rk10/goodix-fp-dump/protocol.py”, line 14, in
from periphery import CdevGPIO
ModuleNotFoundError: No module named ‘periphery’

In my case the ID (04f3:0c4b) is listed as Supported & Unsupported :thinking:, but clearly it is Unsupported as fprintd-enroll throws an error.

So you might like to check the unsupported list too in case it reveals any extra info.

so install
paru -S python-periphery

and try again

1 Like

thanks after that it worked now when i run
paru -S frintd libfprint-goodix-521d
it throws:-
:: Resolving dependencies…
error: could not find all required packages:
frintd (target)

mispelled: printd

paru -S fprintd libfprint-goodix-521d

1 Like

once installed fprintd and libfprint-goodix-521d you should reboot and the try to enroll a fingerprint.

fprintd-enroll

if it works the finger is registered.

  1. Open the [Activities] overview and start typing Users.
  2. Click on Users to open the panel.
  3. Press on Disabled, next to Fingerprint Login to add a fingerprint for the selected account.
  4. Select the finger that you want to use for the fingerprint, then Next.
  5. Follow the instructions in the dialog and swipe your finger at a moderate speed over your fingerprint reader. Once the computer has a good record of your fingerprint, you will see a Done! message.
  6. Select Next. You will see a confirmation message that your fingerprint was saved successfully. Select Close to finish.

Check that your fingerprint works

Now check that your new fingerprint login works. If you register a fingerprint, you still have the option to log in with your password.

  1. Save any open work, and then [log out]
  2. At the login screen, select your name from the list. The password entry form will appear.
  3. Instead of typing your password, you should be able to swipe your finger on the fingerprint reader.

Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available
this is the output i get when i run fprintd-enroll

did you installed the driver? try again

paru -S fprintd libfprint-goodix-521d

btw if you rebooted on windows you must flash again the sensor

yes, i did install the driver.
I haven’t even installed windows.

BTW you know that my device is not in the list of supported devices:-
https://fprint.freedesktop.org/supported-devices.html

yes i know.

It’s my device too.

lsusb | grep "Goodix"                                                                                                                                        
                                                                                                                                                                       
Bus 003 Device 002: ID 27c6:538d Shenzhen Goodix Technology Co.,Ltd. FingerPrint

And it works with the driver from AUR.

Please try again to flash the device (with run_538d.py) and copy here the output

And also of this

pacman -Qqe | grep fprint

and this

systemctl status fprintd.service

run_538d.py:-
#######################################################
This program might break your device.
Consider that it may flash the device firmware.
Continue at your own risk.
But don't hold us responsible if your device is broken!
Don't run this program as part of a regular process.
#######################################################
Type 2676 to continue and confirm that you are not a bot: 2676
__init__(21389, <class 'protocol.USBProtocol'>, 5)
Found Goodix device: "FingerPrint" from "Goodix" on bus 1 address 2.
Found interface data: 0
Found endpoint in: 0x83
Found endpoint out: 0x1
empty_buffer()
nop()
firmware_version()
Firmware: GF5298_GM168SEC_APP_13016
preset_psk_read(3137470465, 32, 0)
Valid PSK: True
reset(True, False, 20)
read_sensor_register(0, 4)
read_otp()
request_tls_connection()
upload_config_mcu(b'p\x11`q,\x9d,\xc9\x1c\xe5\x18\xfd\x00\xfd\x00\xfd\x03\xba\x00\x01\x80\xca\x00\x08\x00\x84\x00\xbe\xc3\x86\x00\xb1\xb6\x88\x00\xba\xba\x8a\x00\xb3\xb3\x8c\x00\xbc\xbc\x8e\x00\xb1\xb1\x90\x00\xbb\xbb\x92\x00\xb1\xb1\x94\x00\x00\x00\x96\x00\x00\x00\x98\x00\x00\x00\x9a\x00\x00\x00\xd2\x00\x00\x00\xd4\x00\x00\x00\xd6\x00\x00\x00\xd8\x00\x00\x00P\x00\x01\x05\xd0\x00\x00\x00p\x00\x00\x00r\x00xVt\x004\x12 \x00\x10@*\x01\x02\x04"\x00\x01 $\x002\x00\x80\x00\x01\x00\\\x00\x01\x01V\x00$ X\x00\x01\x022\x00\x04\x02f\x00\x00\x02|\x00\x00X\x82\x00\x7f\x08*\x01\x82\x07"\x00\x01 $\x00\x14\x00\x80\x00\x01@\\\x00\xe7\x00V\x00\x06\x14X\x00\x04\x022\x00\x0c\x02f\x00\x00\x02|\x00\x00X\x82\x00\x80\x08*\x01\x08\x00\\\x00\x01\x01T\x00\x00\x01b\x00\x08\x04d\x00\x10\x00f\x00\x00\x02|\x00\x00X*\x01\x08\x00\\\x00\xdc\x00R\x00\x08\x00T\x00\x00\x01f\x00\x00\x02|\x00\x00X \xc5\x1d')
mcu_switch_to_fdt_mode(b'\r\x01(\x01"\x01(\x01$\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', False)
mcu_switch_to_fdt_mode(b'\r\x01(\x01"\x01(\x01$\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01', True)
write_sensor_register(556, b'\n\x03')
mcu_get_image()
image: 80 x 64, length: 5120
write_sensor_register(556, b'\n\x02')
write_sensor_register(556, b'\n\x03')
mcu_get_image()
image: 80 x 64, length: 5120
write_sensor_register(556, b'\n\x02')
write_sensor_register(556, b'\n\x03')
mcu_get_image()
image: 80 x 64, length: 5120
write_sensor_register(556, b'\n\x02')
mcu_switch_to_fdt_mode(b'\x8d\x01(\x01"\x01(\x01$\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', False)
mcu_switch_to_fdt_mode(b'\x8d\x01(\x01"\x01(\x01$\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01', True)
write_sensor_register(556, b'\n\x03')
mcu_get_image()
image: 80 x 64, length: 5120
write_sensor_register(556, b'\n\x02')
mcu_switch_to_fdt_mode(b'\r\x01(\x01"\x01(\x01$\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', False)
mcu_switch_to_fdt_mode(b'\r\x01(\x01"\x01(\x01$\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01', True)
mcu_switch_to_sleep_mode()
query_mcu_state(b'\x01\x01\x01', False)
mcu_switch_to_fdt_down(b'\x8c\x01(\x01"\x01(\x01$\x01\x91\x91\x8b\x8b\x96\x96\x91\x91\x98\x98\x90\x90\x92\x92\x88\x88\x00', False)
Waiting for finger...
mcu_switch_to_fdt_down(b'\x8c\x01(\x01"\x01(\x01$\x01\x91\x91\x8b\x8b\x96\x96\x91\x91\x98\x98\x90\x90\x92\x92\x88\x88\x01', True)
mcu_switch_to_fdt_mode(b'\r\x01(\x01"\x01(\x01$\x01\x91\x91\x8b\x8b\x96\x96\x91\x91\x98\x98\x90\x90\x92\x92\x88\x88\x00', False)
mcu_switch_to_fdt_mode(b'\r\x01(\x01"\x01(\x01$\x01\x91\x91\x8b\x8b\x96\x96\x91\x91\x98\x98\x90\x90\x92\x92\x88\x88\x01', True)
write_sensor_register(556, b'\x05\x03')
mcu_get_image()
image: 80 x 64, length: 5120

pacman -Qqe | grep fprint:-
fprintd
libfprint-2-tod1-goodix

systemctl status fprintd.service:-
 fprintd.service - Fingerprint Authentication Daemon
     Loaded: loaded (/usr/lib/systemd/system/fprintd.service; static)
     Active: inactive (dead)
       Docs: man:fprintd(1)

May 06 07:18:08 Vostro3400 systemd[1]: Starting Fingerprint Authentication Daemon...
May 06 07:18:08 Vostro3400 systemd[1]: Started Fingerprint Authentication Daemon.
May 06 07:18:39 Vostro3400 systemd[1]: fprintd.service: Deactivated successfully.
May 06 07:26:24 Vostro3400 systemd[1]: Starting Fingerprint Authentication Daemon...
May 06 07:26:24 Vostro3400 systemd[1]: Started Fingerprint Authentication Daemon.
May 06 07:26:55 Vostro3400 systemd[1]: fprintd.service: Deactivated successfully.
May 06 07:28:18 Vostro3400 systemd[1]: Starting Fingerprint Authentication Daemon...
May 06 07:28:18 Vostro3400 systemd[1]: Started Fingerprint Authentication Daemon.
May 06 07:28:49 Vostro3400 systemd[1]: fprintd.service: Deactivated successfully.

i also tried using
systemctl start fprintd.service
systemctl enable fprintd.service
There still is no option of fingerprint login or The Fingerprint GUI still says No devices found.

I don’t understand, it worked for me.
The only thing I can think of is that it’s a permissions problem.
Try adding your user to the input group

sudo usermod -a -G input rk10

(where rk10 is your username, if it is different change it accordingly)

then reboot and try again

fprintd-enroll

If this doesn’t work try to ask to the driver developers here: Discord