My Dell XPS 9500 has a built in Goodix fingerprint reader, there are drivers for this in Windows but originally the Linux driver didn’t exist.
A driver for Ubuntu has now arrived but there is no Fedora support. The driver is a libfrpint-2-tod driver. Someone has ported the finger print driver into the Arch User Repo as libfprint-2-tod1-xps9300-bin and it reported to work. My work below is derived from both these sources.
The following is my (poor) attempt within Fedora Linux 33 (reported to work on Fedora 32 too):
# Install default systemfprintd and libfrint yum install fprintd fprintd-pam # Build libfprint and libfprint-tod git clone https://gitlab.freedesktop.org/3v1n0/libfprint.git yum install -y gcc gcc-c++ glib glib-devel glibc glibc-devel glib2 glib2-devel libusb libusb-devel nss-devel pixman pixman-devel libX11 libX11-devel libXv libXv-devel gtk-doc libgusb libgusb-devel gobject-introspection gobject-introspection-devel ninja-build cd libfprint git checkout tags/v1.90.3+tod1 meson builddir && cd builddir meson compile meson install # Overwrite the system libfprint with our version cp libfprint/libfprint-2.so.2.0.0 /usr/lib64/ cp libfprint/tod/libfprint-2-tod.so /usr/lib64/ cp libfprint/tod/libfprint-2-tod.so.1 /usr/lib64/ # Get the Goodix libfprint driver/udev rules wget http://dell.archive.canonical.com/updates/pool/public/libf/libfprint-2-tod1-goodix/libfprint-2-tod1-goodix_0.0.4-0ubuntu1somerville1.tar.gz tar -xvf libfprint-2-tod1-goodix_0.0.4-0ubuntu1somerville1.tar.gz # Move the libfprint driver to where we think it should go mkdir -p /usr/lib/libfprint-2/tod-1/ mkdir -p /usr/local/lib64/libfprint-2/tod-1/ cp libfprint-2-tod1-goodix/usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-tod-goodix-53xc-0.0.4.so /usr/lib/libfprint-2/tod-1/ ln -s /usr/lib/libfprint-2/tod-1/libfprint-tod-goodix-53xc-0.0.4.so /usr/local/lib64/libfprint-2/tod-1/libfprint-tod-goodix-53xc-0.0.4.so sudo chmod 755 /usr/lib/libfprint-2/tod-1/libfprint-tod-goodix-53xc-0.0.4.so cp libfprint-2-tod1-goodix/lib/udev/rules.d/60-libfprint-2-tod1-goodix.rules /lib/udev/rules.d/ mkdir -p /var/lib/fprint/goodix # Add some things into the module alias file cat libfprint-2-tod1-goodix/debian/modaliases >> /lib/modules/$(
This should now work with the examples and fprintd-enroll
Enable fingerprint service for use
authselect enable-feature with-fingerprint
authselect apply-changessystemctl enable fprintd systemctl start fprintd
Some people have mentioned that the git repo doesnt always work, if you have any issues, try this branch/command:
git checkout tags/tod
Update for Fedora 36 (Jul 2022)
The installation script is the same apart from you need to install libgudev-devel and checkout v1.94.3+tod1
# Build libfprint and libfprint-tod git clone https://gitlab.freedesktop.org/3v1n0/libfprint.git yum install -y gcc gcc-c++ glib glib-devel glibc glibc-devel glib2 glib2-devel libusb libusb-devel nss-devel pixman pixman-devel libX11 libX11-devel libXv libXv-devel gtk-doc libgusb libgusb-devel gobject-introspection gobject-introspection-devel ninja-build libgudev-devel cd libfprint git checkout tags/v1.94.3+tod1 meson builddir && cd builddir meson compile meson install
Update for Fedora 37 (Feb 2023)
I was recently contacted by Ayamu with an update to this guide that works on Fedora 37, please see https://gitlab.com/-/snippets/2500389 for more details (if the link is dead, please get in touch as I have a copy).