Post

Fix Elan Fingerprint Reader

Fix Elan Fingerprint Reader

🛠️ Fixing ELAN Fingerprint Reader (04f3:0c00) on Linux (Ubuntu/Fedora)

If you’re using a laptop like the HP 250 G9 with an ELAN fingerprint reader (04f3:0c00) and it’s not showing up or working on Linux, you’re not alone.

Out of the box, most ELAN fingerprint sensors are not supported by the default libfprint driver. But thanks to the awesome work by the community, there’s a working solution using a custom branch!

This guide shows how to clone, build, and install support for ELAN fingerprint readers using the elanmoc2 branch of libfprint.


🔍 Check Your Device

First, confirm your fingerprint device is indeed from ELAN:

1
lsusb | grep -i elan

Example output:

1
Bus 003 Device 002: ID 04f3:0c00 Elan Microelectronics Corp. ELAN:ARM-M4

Take note of the ID (in this case, 04f3:0c00).


📦 Prerequisites

Install build tools and dependencies.

On Ubuntu/Debian:

1
2
3
sudo apt install \
  libglib2.0-dev libgusb-dev libgirepository1.0-dev libpixman-1-dev \
  libnss3-dev libgudev-1.0-dev gtk-doc-tools meson ninja-build

On Fedora:

1
2
3
sudo dnf install \
  glib2-devel libgusb-devel gobject-introspection-devel \
  pixman-devel nss-devel libgudev-devel gtk-doc

🧪 Clone and Build the Driver

1
2
3
git clone https://gitlab.freedesktop.org/depau/libfprint.git
cd libfprint
git switch elanmoc2

Then build and install:

1
2
3
4
meson setup builddir
cd builddir
ninja
sudo ninja install

🔧 Fedora-Specific Step

If you’re on Fedora, add this to ensure libraries in /usr/local/lib64 are found:

1
2
echo -e "/usr/local/lib\n/usr/local/lib64" | sudo tee /etc/ld.so.conf.d/local.conf
sudo ldconfig

🔁 Restart the Fingerprint Service

1
sudo systemctl restart fprintd.service

✋ Enroll Your Fingerprint

1
fprintd-enroll

Follow the prompt to scan your finger. If it succeeds — you’re done!


💡 Troubleshooting

❌ Getting “Duplicate” error?

If you get a “duplicate” message when trying to enroll:

  1. Delete fingerprints manually:
    1
    2
    
    rm -rf ~/.fprint
    sudo rm -rf /var/lib/fprint
    
  2. Restart the service:
    1
    
    sudo systemctl restart fprintd.service
    
  3. Enroll again:
    1
    
    fprintd-enroll
    

🎉 Success!

You now have your ELAN fingerprint reader working on Linux! You can use it for:

  • Logging in
  • Unlocking the screen
  • Authenticating sudo commands
  • And more

Credit: This fix uses the work from depau/libfprint and the elanmoc2 branch.


This post is licensed under CC BY 4.0 by the author.