Ask / Submit
1

Troubleshooting the Fingerprint scanner

asked 2018-12-23 17:02:52 +0200

Keeper-of-the-Keys gravatar image

updated 2018-12-25 20:27:57 +0200

My Xperia X fingerprint scanner stopped working and I'd like to trouble shoot it to figure out if it's a hardware or software issue.

I read all about the 5-print limitation here, to the best of my knowledge I did not surpass that limit before the scanner stopped working, I did attempt to enroll a finger after that which for sure was beyond 5 fingers.

As far as I can tell from systemctl the daemon seems to be working and journalctl does not show any errors.

So:

  1. Can you please give a trouble-shooting procedure?

  2. Is it possible to reset what fingers are enrolled?

Thanks

Update:

I used the below procedure to reset the fingerprints enrolled, I enrolled 4 fingers after which everything was working fine for a day.

Today the fingerprint sensor again stopped working

systemctl status sailfish-fpd

showed that the service had crashed, a restart did not help.

After device reboot the configuration interface listed no enrolled fingers and I was able to enroll 1 finger after which the 5+ behavior happened (unable to enroll another finger). The re-enrolled finger works while the previously enrolled fingers do not, sadly reboot means that the previous logs seem to not have been preserved as far as I can tell but next time this happens I will first get logs of the failed service.

Update 2:

Well that didn't survive long (less then 5 hours), daemon crashed after manual restart no enrolled fingers are shown.

Here are some logs:

Dec 25 19:24:27 Sailfish sailfish-fpd[1642]: mrcontrol_fphal_timeout_cb: fp hal is stuck; terminating 
Dec 25 19:24:27 Sailfish fpslave[1652]: fpcontrol_mainloop: master poll hup
Dec 25 19:24:27 Sailfish fpslave[1652]: fpdevice_quit: QUIRK: device.close() skipped
Dec 25 19:24:27 Sailfish sailfish-fpd[1642]: *** SLAVE TERMINATE
Dec 25 19:24:27 Sailfish systemd[1]: sailfish-fpd.service: Main process exited, code=exited, status=1/FAILURE
Dec 25 19:24:27 Sailfish systemd[1]: sailfish-fpd.service: Unit entered failed state.
Dec 25 19:24:27 Sailfish systemd[1]: sailfish-fpd.service: Failed with result 'exit-code'.
Dec 25 19:24:28 Sailfish systemd[1]: sailfish-fpd.service: Service hold-off time over, scheduling restart.
Dec 25 19:24:28 Sailfish systemd[1]: Stopped Fingerprint Daemon.
Dec 25 19:24:28 Sailfish systemd[1]: Starting Fingerprint Daemon...
Dec 25 19:24:28 Sailfish systemd[1]: Started Fingerprint Daemon.
Dec 25 19:24:28 Sailfish fpslave[13860]: fpmodule_open_device: module.open() -> error=-22
Dec 25 19:24:28 Sailfish fpslave[13860]: fpdevice_init: failed to open fingerprint device
Dec 25 19:24:28 Sailfish sailfish-fpd[13859]: mrcontrol_slave_rx_cb: error condition
Dec 25 19:24:28 Sailfish sailfish-fpd[13859]: mrcontrol_slave_rx_cb: disable slave io watch
Dec 25 19:24:28 Sailfish sailfish-fpd[13859]: main: sailfish-fpd terminating with exit value 1
Dec 25 19:24:28 Sailfish systemd[1]: sailfish-fpd.service: Main process exited, code=exited, status=1/FAILURE
Dec 25 19:24:28 Sailfish systemd[1]: sailfish-fpd.service: Unit entered failed state.
Dec 25 19:24:28 Sailfish systemd[1]: sailfish-fpd.service: Failed with result 'exit-code'.
Dec 25 19:24:29 Sailfish systemd[1]: sailfish-fpd.service: Service hold-off time over, scheduling restart.
Dec 25 19:24:29 Sailfish systemd[1]: Stopped Fingerprint Daemon.
Dec 25 19:24:29 Sailfish systemd[1]: Starting Fingerprint Daemon...
Dec 25 19:24:29 Sailfish systemd[1]: Started Fingerprint Daemon.
Dec 25 19:24:29 Sailfish fpslave[13866]: fpmodule_open_device: module.open() -> error=-22
Dec 25 19:24:29 Sailfish fpslave[13866]: fpdevice_init: failed to open fingerprint device
Dec 25 19:24:29 Sailfish sailfish-fpd[13864]: mrcontrol_slave_rx_cb: error condition
Dec 25 19:24:29 Sailfish sailfish-fpd[13864]: mrcontrol_slave_rx_cb: disable slave io watch
Dec 25 19:24:29 Sailfish systemd[1]: sailfish-fpd.service: Main process exited, code=exited, status=1/FAILURE
Dec 25 19:24:29 Sailfish systemd[1]: sailfish-fpd.service: Unit entered failed state.
Dec 25 19:24:29 Sailfish systemd[1]: sailfish-fpd.service: Failed with result 'exit-code'.
Dec 25 19:24:30 Sailfish systemd[1]: sailfish-fpd.service: Service hold-off time over, scheduling restart.
Dec 25 19:24:30 Sailfish systemd[1]: Stopped Fingerprint Daemon.
Dec 25 19:24:30 Sailfish systemd[1]: Starting Fingerprint Daemon...
Dec 25 19:24:30 Sailfish systemd[1]: Started Fingerprint Daemon.
Dec 25 19:24:30 Sailfish fpslave[13874]: fpmodule_open_device: module.open() -> error=-22
Dec 25 19:24:30 Sailfish fpslave[13874]: fpdevice_init: failed to open fingerprint device
Dec 25 19:24:30 Sailfish sailfish-fpd[13872]: mrcontrol_slave_rx_cb: error condition
Dec 25 19:24:30 Sailfish sailfish-fpd[13872]: mrcontrol_slave_rx_cb: disable slave io watch
Dec 25 19:24:30 Sailfish sailfish-fpd[13872]: main: sailfish-fpd terminating with exit value 1
Dec 25 19:24:30 Sailfish systemd[1]: sailfish-fpd.service: Main process exited, code=exited, status=1/FAILURE
Dec 25 19:24:30 Sailfish systemd[1]: sailfish-fpd.service: Unit entered failed state.
Dec 25 19:24:30 Sailfish systemd[1]: sailfish-fpd.service: Failed with result 'exit-code'.
Dec 25 19:24:31 Sailfish systemd[1]: sailfish-fpd.service: Service hold-off time over, scheduling restart.
Dec 25 19:24:31 Sailfish systemd[1]: sailfish-fpd.service: Start request repeated too quickly.
Dec 25 19:24:31 Sailfish systemd[1]: sailfish-fpd.service: Unit entered failed state.
Dec 25 19:24:31 Sailfish systemd[1]: sailfish-fpd.service: Failed with result 'start-limit'.

Incidentally CSD runs its' check against the sailfish-fpd daemon so I'm not sure to what extent it can truly check for a hardware issue.

edit retag flag offensive close delete

Comments

You get 'fpmodule_open_device: module.open() -> error=-22'. See this thread: https://together.jolla.com/question/193449/sailfish-fpd-wont-start-xperia-x-fingerprint/?answer=193527#post-id-193527

carmenfdezb ( 2018-12-29 09:17:16 +0200 )edit

I had the same issue as you, for some reason, fingerprints are missing after rebooting the device, but they are enrolled. You can't add more than 5 fingerprints, so you must reset fingerprint data before you add a fingerprint

carmenfdezb ( 2018-12-29 09:39:40 +0200 )edit

OK I think that actually merits a bug report because HAL failure should not cause SailfishOS side of things to fail permanently too...

Keeper-of-the-Keys ( 2019-01-07 00:59:09 +0200 )edit

Submitted a summary which I hope will get the attention of Jolla sailors:

https://together.jolla.com/question/196877/bug-fingerprint-hal-failure-resullts-in-enrolled-fingers-lost-from-sfos-side/

Keeper-of-the-Keys ( 2019-01-07 01:14:45 +0200 )edit

1 Answer

Sort by » oldest newest most voted
3

answered 2018-12-24 15:40:42 +0200

carmenfdezb gravatar image

updated 2018-12-24 15:42:44 +0200

You can try to reset fingerprint data. Open Terminal and run following commands as root:

systemctl stop sailfish-fpd.service
/usr/lib/sailfish-fpd/fpslave --remove-all
/usr/lib/sailfish-fpd/fpslave --flush-cache
systemctl start sailfish-fpd.service # or reboot the device
edit flag offensive delete publish link more

Comments

1

This is the best solution if the trouble is not hardware.

shults ( 2018-12-24 16:04:19 +0200 )edit
2

If you think it's a hardware problem, use CSD Tool and do Fingerprint test. To open CSD Tool, go to Settings-> About device and tap several times on sotfware build number

carmenfdezb ( 2018-12-24 16:18:35 +0200 )edit

That worked but the stored fingerprints seem to get lost intermittently, I reset the daemon yesterday and enrolled 4 fingers, today it stopped working and after a reboot no fingers were shown to be enrolled.

Keeper-of-the-Keys ( 2018-12-25 15:03:38 +0200 )edit

The CSD is mighty cool :)

Keeper-of-the-Keys ( 2018-12-25 15:15:52 +0200 )edit
Login/Signup to Answer

Question tools

Follow
2 followers

Stats

Asked: 2018-12-23 17:02:52 +0200

Seen: 390 times

Last updated: Dec 25 '18