{"id":45483,"date":"2024-02-06T16:06:28","date_gmt":"2024-02-06T16:06:28","guid":{"rendered":"https:\/\/ubuntuhandbook.org\/?p=45483"},"modified":"2026-04-05T08:44:35","modified_gmt":"2026-04-05T08:44:35","slug":"fingerprint-reader-t480s","status":"publish","type":"post","link":"https:\/\/ubuntuhandbook.org\/index.php\/2024\/02\/fingerprint-reader-t480s\/","title":{"rendered":"Enable Fingerprint Reader in Ubuntu 26.04, 24.04, 22.04 for ThinkPad T480s"},"content":{"rendered":"<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fingerprint-icon.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-45484\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fingerprint-icon-250x250.webp\" alt=\"\" width=\"250\" height=\"250\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fingerprint-icon-250x250.webp 250w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fingerprint-icon-300x300.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fingerprint-icon-700x700.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fingerprint-icon-768x768.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fingerprint-icon.webp 1200w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/><\/a><\/p>\n<p>This is a step by step guide shows <b>how to enable fingerprint reader support for Lenovo ThinkPad T480\/T480s, X1 Carbon 6th gen, X1 Yoga 3rd gen, X280, etc with <code>06cb:009a<\/code> device in Ubuntu 22.04, Ubuntu 24.04, Ubuntu 25.10, and Ubuntu 26.04.<\/b><\/p>\n<p>Ubuntu has fingerprint reader support out-of-the-box using <a href=\"https:\/\/gitlab.freedesktop.org\/libfprint\/libfprint\" target=\"_blank\" rel=\"noopener\">libfprint<\/a>, and provides option to enable fingerprint login in <i>Users<\/i> settings page. However, the library has a list of <a href=\"https:\/\/gitlab.freedesktop.org\/libfprint\/wiki\/-\/wikis\/Unsupported%20Devices\" target=\"_blank\" rel=\"noopener\">unsupported devices<\/a>, including <code>06cb:009a<\/code> that&#8217;s built-in in my used ThinkPad T480s laptop.<\/p>\n<p>Thankfully, there&#8217;s a free open-source alternative <a href=\"https:\/\/github.com\/uunicorn\/python-validity\" target=\"_blank\" rel=\"noopener\">python-validity<\/a> that works in my case. Here&#8217;s how to install and set it up in Ubuntu 22.04 and higher, while Ubuntu 20.04 is also supported.<\/p>\n<p><i>NOTE: This tutorial may also work in many other fingerprint readers, however, the project so far does NOT provide a page to list all supported devices.<\/i><\/p>\n<h3>Step 1: Tell Which Fingerprint Reader device your laptop have<\/h3>\n<p>First of all, you may press <code>Ctrl+Alt+T<\/code> on keyboard to open up a terminal window.<\/p>\n<p>Then run command to find out the device name of your fingerprint reader:<\/p>\n<p><!--more--><\/p>\n<pre>lsusb<\/pre>\n<p>In my case, it&#8217;s <code>06cb:009a<\/code>. Not only for this device, the steps below should also work for <b>138a:0090<\/b>, <b>138a:0097<\/b>, <b>138a:009d<\/b>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-50885\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/lsusb2604-700x537.webp\" alt=\"\" width=\"610\" height=\"468\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/lsusb2604-700x537.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/lsusb2604-300x230.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/lsusb2604-768x590.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/lsusb2604-1320x1014.webp 1320w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/lsusb2604.webp 1404w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<h3>Step 2: Install python3-validity driver<\/h3>\n<p>1. In a terminal window, first run command to uninstall the pre-installed libfprint driver:<\/p>\n<pre>sudo apt remove fprintd libpam-fprintd<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-50886\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/remove-fprintd2604-700x537.webp\" alt=\"\" width=\"610\" height=\"468\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/remove-fprintd2604-700x537.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/remove-fprintd2604-300x230.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/remove-fprintd2604-768x590.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/remove-fprintd2604-1320x1014.webp 1320w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/remove-fprintd2604.webp 1404w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>2. Then, add the software <a href=\"https:\/\/launchpad.net\/~uunicorn\/+archive\/ubuntu\/open-fprintd\" target=\"_blank\" rel=\"noopener\">developer&#8217;s PPA<\/a> that contains the new driver packages:<\/p>\n<pre>sudo add-apt-repository ppa:uunicorn\/open-fprintd<\/pre>\n<p><i>NOTE: The PPA so far supports Ubuntu 18.04, Ubuntu 20.04, Ubuntu 22.04, and Ubuntu 24.04.<\/i><\/p>\n<p><i><b>For Ubuntu 24.04, 25.10, and 26.04<\/b>, I&#8217;ve built the package into this <a href=\"https:\/\/launchpad.net\/~ubuntuhandbook1\/+archive\/ubuntu\/open-fprintd\" target=\"_blank\" rel=\"noopener\">unofficial PPA<\/a> (works in my case but without well testing), run this command instead to add the PPA:<\/i><\/p>\n<pre>sudo add-apt-repository ppa:ubuntuhandbook1\/open-fprintd<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-50887\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/open-fprintdppa2604-700x537.webp\" alt=\"\" width=\"610\" height=\"468\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/open-fprintdppa2604-700x537.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/open-fprintdppa2604-300x230.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/open-fprintdppa2604-768x590.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/open-fprintdppa2604-1320x1014.webp 1320w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/open-fprintdppa2604.webp 1404w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>3. Finally, install the driver packages by running command:<\/p>\n<pre>sudo apt install open-fprintd fprintd-clients python3-validity<\/pre>\n<p><i>Linux Mint user needs to run <code>sudo apt update<\/code> first to refresh package cache after adding PPA.<\/i><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-50888\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/apt-openfprintd2604-700x537.webp\" alt=\"\" width=\"610\" height=\"468\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/apt-openfprintd2604-700x537.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/apt-openfprintd2604-300x230.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/apt-openfprintd2604-768x590.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/apt-openfprintd2604-1320x1014.webp 1320w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/apt-openfprintd2604.webp 1404w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<h3>Step 3: Enable python3-validity service<\/h3>\n<p>After installing the driver package, it should automatically start the service.<\/p>\n<p>To verify, simply run command in terminal:<\/p>\n<pre>systemctl status python3-validity.service<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-50889\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fprintd-service2604-700x537.webp\" alt=\"\" width=\"610\" height=\"468\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fprintd-service2604-700x537.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fprintd-service2604-300x230.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fprintd-service2604-768x590.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fprintd-service2604-1320x1014.webp 1320w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fprintd-service2604.webp 1404w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>If it&#8217;s not in active running status, try running commands below to enable &amp; start the service:<\/p>\n<pre>systemctl enable python3-validity.service<\/pre>\n<pre>systemctl start python3-validity.service<\/pre>\n<h3>Step 4: Enroll your fingerprint<\/h3>\n<p><b>NOTE: If you have already enrolled your fingerprints from other or old Distributions, for example I added fingerprints on 24.04 then re-installed 26.04, then you may skip this step!<\/b><\/p>\n<p><b>For GNOME, open Settings and go to System -&gt; Users -&gt; Fingerprint Login to see if you already have fingerprints enrolled.<\/b><\/p>\n<p>To enroll your fingerprint, run the command below in terminal:<\/p>\n<pre>fprintd-enroll<\/pre>\n<p>It outputs &#8220;<i>Enrolling right-index-finger finger<\/i>&#8220;, and the LED light is turning on.<\/p>\n<p>Now, touch the fingerprint sensor repeatedly. As you press your finger on the fingerprint sensor and lift it, it outputs a line says either <code>Enroll result: enroll-stage-passed<\/code> or <code>Enroll result: enroll-retry-scan<\/code>. Do it repeatedly, until it outputs &#8220;enroll-completed&#8221;.<\/p>\n<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fp-enroll.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-45490\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fp-enroll-700x475.webp\" alt=\"\" width=\"610\" height=\"414\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fp-enroll-700x475.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fp-enroll-300x203.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fp-enroll-768x521.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fp-enroll.webp 786w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/a><\/p>\n<p><b>Tips: Don&#8217;t know why, but it outputted &#8216;result:enroll-failed&#8217; in my case in Ubuntu 24.04 &amp; 25.10! Though, the fingerprint that I successfully enrolled in 22.04 is also working good in 24.04 | 25.10 installed in same laptop. You may <a href=\"https:\/\/github.com\/uunicorn\/python-validity#errors-on-startup\" target=\"_blank\" rel=\"noopener\">factory-reset the fingerprint chip<\/a> to clear your fingerprint if need.<\/b><\/p>\n<p><b>UPDATE:<\/b> The default GNOME desktop now supports managing your fingerprints. Open Settings then navigate to System -&gt; User, unlock then click &#8220;Fingerprint Login&#8221; to add or delete fingerprints.<\/p>\n<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/gnome-fingerprint-setting.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-50054\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/gnome-fingerprint-setting-700x503.webp\" alt=\"\" width=\"610\" height=\"438\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/gnome-fingerprint-setting-700x503.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/gnome-fingerprint-setting-300x215.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/gnome-fingerprint-setting-768x552.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/gnome-fingerprint-setting.webp 1239w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/a><\/p>\n<h3>Step 5: Enable Fingerprint Authentication<\/h3>\n<p>If everything&#8217;s goes well, you can now run the single command below to manage PAM module:<\/p>\n<pre>sudo pam-auth-update<\/pre>\n<p>In next screen, use <code>up\/down<\/code> arrow keys to choose &#8220;Fingerprint authentication&#8221;, then press <code>space-bar<\/code> to enable\/disable it. Finally, press <code>Tab<\/code> to highlight OK and hit Enter.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-50890\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/openfprintd-config2604-700x537.webp\" alt=\"\" width=\"610\" height=\"468\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/openfprintd-config2604-700x537.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/openfprintd-config2604-300x230.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/openfprintd-config2604-768x590.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/openfprintd-config2604-1320x1014.webp 1320w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/openfprintd-config2604.webp 1404w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>After that, either <b>lock screen<\/b> then try using your fingerprint to un-lock. Or, run something or some commands that need user authentication, it will prompt you to &#8220;<i>Place your finger on the fingerprint reader<\/i>&#8220;.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-50891\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fingerprint-auth2604-700x296.webp\" alt=\"\" width=\"610\" height=\"258\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fingerprint-auth2604-700x296.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fingerprint-auth2604-300x127.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fingerprint-auth2604-768x325.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fingerprint-auth2604-1320x558.webp 1320w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2024\/02\/fingerprint-auth2604.webp 1404w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<h3>Step 6: Make it work after resuming from sleep<\/h3>\n<p>The driver includes 2 systemd services to make it work after waking up from sleep. To enable them, run command:<\/p>\n<pre>sudo systemctl enable open-fprintd-resume open-fprintd-suspend<\/pre>\n<p>They did not work in my case previously. Thanks to @YovanggaAnandhika from this <a href=\"https:\/\/github.com\/uunicorn\/python-validity\/issues\/128#issuecomment-2437045697\" target=\"_blank\" rel=\"noopener\">bug report<\/a>, I added a patch to apply the workaround to the <code>open-fprintd<\/code> package in PPA, so the fingerprint authentication works now in my case (except wake-up unclock) after waking up from sleep.<\/p>\n<p>If you installed the package from the developer&#8217;s PPA, then try manually adding the scripts by following the steps in that bug report (via the last link).<\/p>\n<h3>Uninstall<\/h3>\n<p>So, if the driver does not work for your fingerprint reader, do following steps one by one to undo the changes.<\/p>\n<ul>\n<li>First, open terminal (Ctrl+Alt+T) and run command to re-configure PAM:\n<pre>sudo pam-auth-update<\/pre>\n<p>In the screen, disable <code>fingerprint authentication<\/code> then, hit Tab and enter.<\/li>\n<li>Next, run command to uninstall the python3-validity driver:\n<pre>sudo apt remove --autoremove open-fprintd fprintd-clients python3-validity<\/pre>\n<p>Also, remove the Ubuntu PPA by running command:<\/p>\n<pre>sudo add-apt-repository --remove ppa:uunicorn\/open-fprintd<\/pre>\n<\/li>\n<\/ul>\n<p>If you want, you may install back the original fprintd driver via command:<\/p>\n<pre>sudo apt install fprintd<\/pre>\n<p>That&#8217;s all. Enjoy!<\/p>","protected":false},"excerpt":{"rendered":"<p>This is a step by step guide shows how to enable fingerprint reader support for Lenovo ThinkPad T480\/T480s, X1 Carbon 6th gen, X1 Yoga 3rd gen, X280, etc with 06cb:009a device in Ubuntu 22.04, Ubuntu 24.04, Ubuntu 25.10, and Ubuntu 26.04. Ubuntu has fingerprint reader support out-of-the-box using libfprint, and provides option to enable fingerprint [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":45484,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[2146],"class_list":["post-45483","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-howtos","tag-fingerprint-reader"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts\/45483","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/comments?post=45483"}],"version-history":[{"count":0,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts\/45483\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/media\/45484"}],"wp:attachment":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/media?parent=45483"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/categories?post=45483"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/tags?post=45483"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}