Goodix 27c6:650c Fingerprint Sensor on Ubuntu 24.04
Had a lot of trouble getting the fingerprint sensor to work on my Lenovo Yoga 9 with Ubuntu 24.04.3 LTS. This guide shows how to get the Goodix 27c6:650c fingerprint sensor working on Ubuntu 24.04 (or derivatives) by compiling libfprint v1.94.9 and fprintd from source.
Note: This sensor is officially unsupported in Ubuntu’s repositories, so a compiled version of
libfprintwith Goodix support is required.
Prerequisites§
Install the necessary development packages:
sudo apt update
sudo apt install \
    git \
    build-essential \
    meson \
    ninja-build \
    libglib2.0-dev \
    libgusb-dev \
    libnss3-dev \
    libpam0g-dev \
    libpolkit-gobject-1-dev \
    libsystemd-dev \
    libusb-1.0-0-dev \
    libjson-glib-dev \
    libpixman-1-dev \
    pkg-config
These are required to compile libfprint and fprintd, including Goodix driver support.
Step 1: Remove conflicting system libraries§
Remove old Ubuntu libfprint packages to avoid conflicts:
sudo apt remove libfprint-2-2 libfprint-2-tod1-goodix libfprint-2-tod1:amd64
sudo ldconfig
Step 2: Build and install libfprint v1.94.9§
- Clone the libfprint repository:
 
cd ~
git clone https://gitlab.freedesktop.org/libfprint/libfprint.git
cd libfprint
git checkout v1.94.9
- Clean any old build directory:
 
rm -rf builddir
- Configure Meson with Goodix driver:
 
meson setup builddir --prefix=/usr/local -Ddrivers=goodixmoc
- Compile and install:
 
ninja -C builddir
sudo ninja -C builddir install
sudo ldconfig
- Verify installation:
 
pkg-config --modversion libfprint-2
# Should output 1.94.9
The
goodixmocdriver enables partial support for Goodix sensors like 27c6:650c.
Installing to/usr/localensures the new library does not conflict with system libraries.
Optional: Create a pkg-config file (if missing)§
If libfprint-2.pc does not exist:
sudo mkdir -p /usr/local/lib/pkgconfig
sudo tee /usr/local/lib/pkgconfig/libfprint-2.pc <<EOF
prefix=/usr/local
exec_prefix=\${prefix}
libdir=\${exec_prefix}/lib
includedir=\${prefix}/include
Name: libfprint-2
Description: Fingerprint library
Version: 1.94.9
Libs: -L\${libdir} -lfprint-2
Cflags: -I\${includedir}/libfprint-2
EOF
Verify:
pkg-config --modversion libfprint-2
# Should now correctly return 1.94.9
Step 3: Build and install fprintd§
- Clone fprintd:
 
cd ~
git clone https://gitlab.freedesktop.org/freedesktop/fprint/fprintd.git
cd fprintd
- Clean previous build:
 
rm -rf builddir
- Configure and compile:
 
meson setup builddir --prefix=/usr
ninja -C builddir
sudo ninja -C builddir install
- Reload systemd and start the daemon:
 
sudo systemctl daemon-reload
sudo systemctl restart fprintd
systemctl status fprintd
Step 4: Enroll and test fingerprints§
fprintd-enroll $USER
- Follow the prompts to enroll one or more fingerprints.
 - Test verification:
 
fprintd-verify $USER
Notes§
- System integration: Once enrolled, fingerprints can be used for login, sudo, and screen unlock (if PAM is configured).
 - Unsupported device: Even with this build, some features may not work perfectly because 27c6:650c is 'officially' unsupported.
 - Future updates: Recompiling libfprint/fprintd is required when upgrading or replacing these libraries.