Conversation
Two problems that currently cancel out on this machine. omarchy-hw-fingerprint misses the Broadcom BCM58200 ControlVault 3 in the Dell Latitude 9440 2-in-1. Its vendor (0a5c) is not in the list, and its product descriptor is bare "58200", so nothing matches and the setup exits with "No fingerprint sensor detected" on a laptop where fprintd drives the reader fine. 0a5c cannot be added wholesale -- Broadcom also ships Bluetooth radios, hubs and ControlVault modules on machines with no reader -- so match the exact vendor:product pair instead. That alone would be worse than nothing. The setup installs libfprint-git with --ask 4, which accepts any replacement, not just the stock-libfprint one it was written for. Readers libfprint cannot drive are run by a TOD stack: a libfprint fork plus a vendor blob, libfprint-tod with libfprint-2-tod1-broadcom in this case. The fork also provides libfprint, so the install is accepted without a prompt and removes the only driver the reader has. Fixing detection first would have pointed the first-run invitation at exactly that. Skip libfprint-git when something else owns /usr/lib/libfprint-2.so.2, which asks who provides the library rather than guessing at package names that differ per vendor. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
0103686 to
4fc5d39
Compare
|
Flagging the overlap with two other open PRs on this file, since we're all editing the same package block. #11840 fixes the same class of bug at a different layer. It preserves an alternate fprintd client ( #11842 is complementary rather than overlapping — it catches the case where a reader is detected but libfprint has no driver for it. Worth noting the ordering though: if #11842 lands without this one, a TOD-driven machine would install Happy to rebase onto either of them, or to fold #11840's client check into this one if you'd rather have a single guard covering both layers. |
Two bugs that currently cancel each other out, so they need fixing together.
1. The reader is never detected
The Broadcom BCM58200 ControlVault 3 in the Dell Latitude 9440 2-in-1:
0a5cis not infingerprint_vendors, and the descriptor is bare58200, so it matches neither the vendor list nor*fingerprint*/*biometric*/*elan:arm-m4*/fpc *. Setup exits with "No fingerprint sensor detected" and the first-run invitation never fires, on a machine where fprintd drives the reader fine:Adding
0a5cwholesale would be wrong for the reason the existing comment gives about Elan and STMicro — Broadcom also ships Bluetooth radios, hubs and ControlVault modules on machines with no reader. This adds an exactvendor:productlist instead. (has_kernel_driverwould not have excluded it: the interface has no driver bound.)2. Fixing that alone would break working machines
The setup installs
libfprint-gitwith--ask 4. The comment reads that as accepting the stock-libfprintreplacement, but--ask 4accepts any replacement.Readers libfprint cannot drive run on a TOD stack instead — a libfprint fork plus a vendor blob:
libfprint-gitprovideslibfprint, so the transaction is accepted with no prompt and removeslibfprint-todandlibfprint-2-tod1-broadcom— the only driver the reader has. Fixing detection without this would have pointed the first-run invitation straight at it.The guard checks who owns
/usr/lib/libfprint-2.so.2rather than testing package names, which differ per vendor (libfprint-2-tod1-broadcom,-goodix,-cv3plus).fprintdandusbutilsare still installed; only the libfprint swap is skipped.Verification
On the Latitude 9440:
./test/clipasses (112 ok).One judgement call to flag:
0a5c:5843is the ControlVault 3 module, which also does smartcard and NFC. A Dell shipping CV3 with no reader would now match and be invited to a setup that fails at enrollment. I have no such machine to test on — happy to drop the pair if you would rather wait for a narrower signal.🤖 Generated with Claude Code