OK, I finally found the reason, it seems that we don't package the gdm-fingerprint pam config. I checked `/usr/lib/pam.d/`, there is no gdm-fingerprint file, so when gdm call pam to do fprint check, it always fails. I manually copied gdm-fingerprint file from my arch linux installation, and fingerprint sensor just works on login and unlock. According to line 20 and line 376 of https://build.opensuse.org/package/view_file/GNOME:Factory/gdm/gdm.spec?expand=1, it seems that we don't install gdm-fingerprint files at all, and in line 296 it says that we don't know what to put in gdm-fingerprint (also about line 295: my system does not remove gdm-password). So I checked https://build.opensuse.org/package/view_file/GNOME:Factory/gdm/gdm-fingerprint.pamd?expand=1, it contains nothing about pam_fprintd.so, so even we install it, it won't work. Some distros uploaded their pam files to https://gitlab.gnome.org/GNOME/gdm/-/tree/main/data (like Arch and Red Hat), they are quite different, we may need create our own to fix this bug?