Fprintd.service file doesn't exist

My fingerprint reader is ELAN MoC 0C4C, which to my knowledge isn’t supported on Linux. It’s supported by this. But when I run fprintd-enroll, it says:
Impossible to enroll: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name is not activatable
It seems the fprintd.service file doesn’t exist on my system for some reason. Any help getting it on my system would be appreciated

That code hasn’t been merged into libfprint, it’s still in review and discussion. Did you build and install the driver of from elanmoc2 branch? See Add driver for ELAN MoC 0c4c (!330) · Merge requests · libfprint / libfprint · GitLab

Rebuilt. All went fine till this step:

sudo systemctl restart fprintd.service

It shows Failed to restart fprintd.service: Unit fprintd.service has a bad unit file setting. See system logs and 'systemctl status fprintd.service' for details.

How does your unit file look like (stored in /usr/lib/systemd? (Use systemctl list-unit-files or systemctl --all -t service) to list them.
What does the journal tell you about fprintd.service? What does systemctl status fprintd.service say?

1 Like

Contents of the file:

[Unit]
Description=Fingerprint Authentication Daemon
Documentation=man:fprintd(1)

[Service]
Type=dbus
BusName=net.reactivated.Fprint
ExecStart=@libexecdir@/fprintd

# Filesystem lockdown
ProtectSystem=strict
ProtectKernelTunables=true
ProtectKernelLogs=true
ProtectControlGroups=true
# This always corresponds to /var/lib/fprint
StateDirectory=fprint
StateDirectoryMode=0700
ProtectHome=true
PrivateTmp=true

SystemCallFilter=@system-service

# Network
RestrictAddressFamilies=AF_UNIX AF_LOCAL AF_NETLINK

# Execute Mappings
MemoryDenyWriteExecute=true

# Modules
ProtectKernelModules=true

# Real-time
RestrictRealtime=true

# Privilege escalation
NoNewPrivileges=true

# Protect clock, allow USB and SPI device access
ProtectClock=yes
DeviceAllow=char-usb_device rw
DeviceAllow=char-spi rw
DeviceAllow=char-hidraw rw

# Allow tuning USB parameters (wakeup and persist)
ReadWritePaths=/sys/devices

systemctl status fprintd.service shows:

fprintd.service - Fingerprint Authentication Daemon
     Loaded: bad-setting (Reason: Unit fprintd.service has a bad unit file setting.)
     Active: inactive (dead)
       Docs: man:fprintd(1)

Jun 28 19:31:29 fedora systemd[1]: /usr/lib/systemd/system/fprintd.service:8: Neither a valid executable name nor a>
Jun 28 19:31:29 fedora systemd[1]: fprintd.service: Unit configuration has fatal error, unit will not be started.
Jun 28 19:32:26 fedora systemd[1]: /usr/lib/systemd/system/fprintd.service:8: Neither a valid executable name nor a>
Jun 28 19:32:26 fedora systemd[1]: fprintd.service: Unit configuration has fatal error, unit will not be started.
Jun 28 19:33:38 fedora systemd[1]: /usr/lib/systemd/system/fprintd.service:8: Neither a valid executable name nor a>
Jun 28 19:33:38 fedora systemd[1]: fprintd.service: Unit configuration has fatal error, unit will not be started.
Jun 28 19:34:14 fedora systemd[1]: /usr/lib/systemd/system/fprintd.service:8: Neither a valid executable name nor a>
Jun 28 19:34:14 fedora systemd[1]: fprintd.service: Unit configuration has fatal error, unit will not be started.
Jun 28 19:34:43 fedora systemd[1]: /usr/lib/systemd/system/fprintd.service:8: Neither a valid executable name nor a>
Jun 28 19:34:43 fedora systemd[1]: fprintd.service: Unit configuration has fatal error, unit will not be started.

ExecStart=@libexecdir@/fprintd is supposed to be ExecStart=/usr/libexec/fprintd.

Where did you get that file from? I checked the Fedora 38 version of fprintd and it contained the correct ExecStart line.

1 Like

Edited the file. Now, journalctl -xeu fprintd.service returns:

Jun 28 19:32:26 fedora systemd[1]: /usr/lib/systemd/system/fprintd.service:8: Neither a valid executable name nor an absolute path: libexecdir@/fprintd
Jun 28 19:32:26 fedora systemd[1]: fprintd.service: Unit configuration has fatal error, unit will not be started.
Jun 28 19:33:38 fedora systemd[1]: /usr/lib/systemd/system/fprintd.service:8: Neither a valid executable name nor an absolute path: libexecdir@/fprintd
Jun 28 19:33:38 fedora systemd[1]: fprintd.service: Unit configuration has fatal error, unit will not be started.
Jun 28 19:34:14 fedora systemd[1]: /usr/lib/systemd/system/fprintd.service:8: Neither a valid executable name nor an absolute path: libexecdir@/fprintd
Jun 28 19:34:14 fedora systemd[1]: fprintd.service: Unit configuration has fatal error, unit will not be started.
Jun 28 19:34:43 fedora systemd[1]: /usr/lib/systemd/system/fprintd.service:8: Neither a valid executable name nor an absolute path: libexecdir@/fprintd
Jun 28 19:34:43 fedora systemd[1]: fprintd.service: Unit configuration has fatal error, unit will not be started.
Jun 28 19:56:31 fedora systemd[1]: Starting fprintd.service - Fingerprint Authentication Daemon...
░░ Subject: A start job for unit fprintd.service has begun execution
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ A start job for unit fprintd.service has begun execution.
░░ 
░░ The job identifier is 4419.
Jun 28 19:56:31 fedora (fprintd)[107600]: fprintd.service: Failed to locate executable /usr/libexec/fprintd: No such file or directory
░░ Subject: Process /usr/libexec/fprintd could not be executed
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ The process /usr/libexec/fprintd could not be executed and failed.
░░ 
░░ The error number returned by this process is ERRNO.
Jun 28 19:56:31 fedora (fprintd)[107600]: fprintd.service: Failed at step EXEC spawning /usr/libexec/fprintd: No such file or directory
░░ Subject: Process /usr/libexec/fprintd could not be executed
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ The process /usr/libexec/fprintd could not be executed and failed.
░░ 
░░ The error number returned by this process is ERRNO.
Jun 28 19:56:31 fedora systemd[1]: fprintd.service: Main process exited, code=exited, status=203/EXEC
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ An ExecStart= process belonging to unit fprintd.service has exited.
░░ 
░░ The process' exit code is 'exited' and its exit status is 203.
Jun 28 19:56:31 fedora systemd[1]: fprintd.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ The unit fprintd.service has entered the 'failed' state with result 'exit-code'.
Jun 28 19:56:31 fedora systemd[1]: Failed to start fprintd.service - Fingerprint Authentication Daemon.
░░ Subject: A start job for unit fprintd.service has failed
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ A start job for unit fprintd.service has finished with a failure.
░░ 
░░ The job identifier is 4419 and the job result is failed.


As for the file, I don’t remember for sure where I got it, but i found it on a folder fprintd, which also contained content similar to the libfprint folder

Are you sure fprintd is installed? Remember that fprintd and libfprint are two different packages

Both are installed

How was it installed? Using sudo dnf install printd?

Yes, was installed it like that

1 Like

check the path where it’s installed: rpm -ql fprintd | grep lib

rpm -ql fprintd | grep lib returns nothing. rpm -ql fprintd returns package fprintd is not installed. Weird. Is the package fprintd-clients or fprintd?

Running sudo dnf install fprintd-1.94.2-6.fc38.x86_64 returns

Last metadata expiration check: 0:02:18 ago on Wednesday 28 June 2023 11:14:07 PM.
Error: 
 Problem: problem with installed package fprintd-clients-1:1.94.2-2.fc38.x86_64
  - installed package fprintd-clients-1:1.94.2-2.fc38.x86_64 obsoletes fprintd < 1:1.94.2-2.fc38 provided by fprintd-1.94.2-6.fc38.x86_64 from fedora
  - package fprintd-clients-1:1.94.2-2.fc38.x86_64 from copr:copr.fedorainfracloud.org:tigro:python-validity obsoletes fprintd < 1:1.94.2-2.fc38 provided by fprintd-1.94.2-6.fc38.x86_64 from fedora
  - conflicting requests
(try to add '--skip-broken' to skip uninstallable packages)

Uninstalled fprintd-clients and installed fprintd instead. It works now :+1:

A new problem has arisen: Fprintd-enroll not working