<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Linux — mizore / notes</title>
    <link>https://mizore.blog/tags/linux/</link>
    <link xmlns="http://www.w3.org/2005/Atom" href="https://mizore.blog/tags/linux/feed.xml" rel="self" type="application/rss+xml"></link>
    <description>2 篇</description>
    <language>zh-CN</language>
    <lastBuildDate>Sun, 10 May 2026 00:00:00 +0000</lastBuildDate>
    <item>
      <title>解决 KDE Plasma Wayland 下 Obsidian Web Clipper 无法使用的问题</title>
      <link>https://mizore.blog/posts/kde-plasma-obsidian-web-clipper/</link>
      <description>&lt;p&gt;我在 Plasma Wayland 上用 Obsidian 时发现：Obsidian 已经打开的情况下，在 Chrome 里点 &lt;strong&gt;Obsidian Web Clipper&lt;/strong&gt; 的“添加到 Obsidian”，创建出来的页面是空的。&lt;/p&gt;&#xA;&lt;p&gt;只有先完全关闭 Obsidian，再从 Web Clipper 添加，内容才会正常出现。&lt;/p&gt;&#xA;&lt;h2 id=&#34;原因&#34;&gt;原因&lt;/h2&gt;&#xA;&lt;p&gt;这不是 Web Clipper 没抓到网页内容，而是 KDE 阻止了已经运行中的 Obsidian 正确获得焦点。&lt;/p&gt;&#xA;&lt;p&gt;Web Clipper 把网页内容传给 Obsidian 时，需要 Obsidian 被正确唤起并读取传入的数据。但在 KDE 的窗口管理规则下，Obsidian 在后台运行时可能无法获得焦点，内容没有被写入，结果就变成了空页面。&lt;/p&gt;&#xA;&lt;h2 id=&#34;分析&#34;&gt;分析&lt;/h2&gt;&#xA;&lt;p&gt;现象的关键点是：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Obsidian 关闭时添加内容正常；&lt;/li&gt;&#xA;&lt;li&gt;Obsidian 已打开时添加内容为空；&lt;/li&gt;&#xA;&lt;li&gt;说明浏览器插件本身大概率是正常的；&lt;/li&gt;&#xA;&lt;li&gt;问题出在 Obsidian 已运行时，KDE 没有让它正确响应 Web Clipper 的调用。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;所以这是 KDE 的窗口焦点和激活权限问题，不是 Obsidian 笔记库、模板或 Chrome 插件的配置错误。&lt;/p&gt;&#xA;&lt;h2 id=&#34;解决方案&#34;&gt;解决方案&lt;/h2&gt;&#xA;&lt;p&gt;在 KDE 里给 Obsidian 添加一条窗口规则：打开 &lt;code&gt;系统设置 → 窗口管理 → 窗口规则&lt;/code&gt;，按下图设置即可。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://mizore.blog/images/639f87fb1000edf73702913b297ee8295880b29d636cd55533af044ea6b0d2c5.webp&#34; alt=&#34;KDE 系统设置中 Obsidian 的窗口规则配置界面&#34; decoding=&#34;async&#34; fetchpriority=&#34;high&#34; width=&#34;1600&#34; height=&#34;1167&#34; srcset=&#34;https://mizore.blog/images/605a9074e4b97eb9a9e494b9842199c8879802dcf3e731bd960c1ecd3a66dc58.webp 720w, https://mizore.blog/images/639f87fb1000edf73702913b297ee8295880b29d636cd55533af044ea6b0d2c5.webp 1600w&#34; sizes=&#34;(max-width: 760px) calc(100vw - 64px), 704px&#34;&gt;&lt;/p&gt;&#xA;</description>
      <category>折腾</category>
      <pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate>
      <guid>https://mizore.blog/zh/%E6%8A%98%E8%85%BE/kde-plasma-obsdian-web-clipper/</guid>
    </item>
    <item>
      <title>小米 Book Pro 14 Linux 使用体验</title>
      <link>https://mizore.blog/posts/xiaomi-book-pro-14/</link>
      <description>&lt;p&gt;入手这台 Xiaomi Book Pro 14 的理由其实挺简单：我已经有一台 MacBook Pro 了，日常用着很顺手，但总有些事是 Mac 干不了、或者干起来别扭的。我需要一台 x86 的轻薄本，来补上那些“只有 x86 才好办”的活儿。&lt;/p&gt;&#xA;&lt;p&gt;作为一个不折腾不舒服的人，拿到新机器的第一件事，自然是给它装上 Arch Linux。过程中踩了几个坑，也把指纹这个我从没用过的功能认真折腾了一遍，现在整理出来，给自己留个记录，也给遇到类似问题的人一个参考。&lt;/p&gt;&#xA;&lt;p&gt;我这台的配置先放在这儿：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;SoC：Intel Ultra X7 358H&lt;/li&gt;&#xA;&lt;li&gt;内存：32GB LPDDR5x 9600MT/s（板载）&lt;/li&gt;&#xA;&lt;li&gt;GPU：Intel Arc B390&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://mizore.blog/images/b5d09a616b4aa066b319f1f0025d0b697b73dd46c282c049256b89395a24afb6.webp&#34; alt=&#34;装好 Arch Linux 的 Xiaomi Book Pro 14，终端里是 fastfetch 的系统信息&#34; decoding=&#34;async&#34; fetchpriority=&#34;high&#34; width=&#34;1600&#34; height=&#34;1200&#34; srcset=&#34;https://mizore.blog/images/7ca7c73067278d7a82fe9e0e1a8ae3a98b66a535ce28bf1b4b2af3bd29ab5c10.webp 720w, https://mizore.blog/images/b5d09a616b4aa066b319f1f0025d0b697b73dd46c282c049256b89395a24afb6.webp 1600w&#34; sizes=&#34;(max-width: 760px) calc(100vw - 64px), 704px&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;问题一屏幕花屏&#34;&gt;问题一：屏幕花屏&lt;/h2&gt;&#xA;&lt;p&gt;刚装好系统就发现屏幕会花。查了一圈，原因是 Intel 的 Panel Self Refresh 技术。&lt;/p&gt;&#xA;&lt;p&gt;解决方法也很直接，在内核参数里加上这一行就行：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;xe.enable_psr=0&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;问题二键盘不识别&#34;&gt;问题二：键盘不识别&lt;/h2&gt;&#xA;&lt;p&gt;这个问题更诡异一点：在 BIOS 和 GRUB 里面键盘明明能用，一进入系统，键盘就完全没反应了。装系统的时候卡在这一步会非常难受。&lt;/p&gt;&#xA;&lt;p&gt;解决方案同样是加内核参数：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;i8042.nopnp=1 i8042.dumbkbd=1&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;屏幕和键盘搞定之后，系统基本就可用了。接下来是我花时间最多的部分——指纹。&lt;/p&gt;&#xA;&lt;h2 id=&#34;指纹这次折腾的重头戏&#34;&gt;指纹：这次折腾的重头戏&lt;/h2&gt;&#xA;&lt;p&gt;坦白说，我之前从没用过带指纹的设备，所以这一块我摸索得比较细，也踩了不少坑，值得单独写一写。&lt;/p&gt;&#xA;&lt;h3 id=&#34;为什么-sudo-不能像-macos-那样弹出指纹-gui&#34;&gt;为什么 &lt;code&gt;sudo&lt;/code&gt; 不能像 macOS 那样弹出指纹 GUI？&lt;/h3&gt;&#xA;&lt;p&gt;这是这次折腾里最让我不爽的地方。macOS 上 &lt;code&gt;sudo&lt;/code&gt; 可以用 Touch ID，为什么 Linux 就不行？&lt;/p&gt;&#xA;&lt;p&gt;不是“没人想过”，而是架构本身就不一样。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;sudo&lt;/code&gt; 的认证链路是这样的：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;sudo → PAM → 终端会话或 askpass&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;而 KDE 那个漂亮的指纹认证弹窗，走的是另一条路：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;应用 → Polkit → KDE Polkit Agent → PAM → fprintd&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;那个 GUI 是 Polkit agent 提供的，不是 PAM 自己弹出来的，也不是 &lt;code&gt;sudo&lt;/code&gt; 自带的。PAM 模块只能参与认证流程，没法凭空把终端里的 &lt;code&gt;sudo&lt;/code&gt; 变成一个 KDE 风格的身份验证弹窗。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;sudo -A&lt;/code&gt; 配合 &lt;code&gt;SUDO_ASKPASS&lt;/code&gt; 确实能弹出图形密码框，但那依然是 sudo 自己的 askpass 路径，跟 KDE Polkit agent 不是一回事。所以它顶多让“输密码”这一步变成 GUI，指纹那套体验是带不进来的。&lt;/p&gt;&#xA;&lt;p&gt;macOS 能做到，是因为 Apple 把 &lt;code&gt;sudo&lt;/code&gt;、PAM、Touch ID、Secure Enclave、LocalAuthentication 这些组件从系统层面就集成到了一起。Linux 这边，这些组件分属不同项目，天然就不会有一致的体验。&lt;/p&gt;&#xA;&lt;h3 id=&#34;pam_fprintd-的关键限制pam-栈是串行的&#34;&gt;&lt;code&gt;pam_fprintd&lt;/code&gt; 的关键限制：PAM 栈是串行的&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;pam_fprintd&lt;/code&gt; 还有一个很根本的限制：在普通的 PAM 栈里，它和密码认证是串行执行的。&lt;/p&gt;&#xA;&lt;p&gt;我一开始理想中的体验是这样的：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;同一个 sudo 提示下，同时等我输密码和按指纹，哪个先完成就用哪个。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;但实际上做不到。登录管理器可以用更复杂的方式启多条 PAM 会话来模拟并行，但普通的 &lt;code&gt;sudo&lt;/code&gt; 并不会这么干。&lt;/p&gt;&#xA;&lt;p&gt;所以现实选择只能在下面几种体验里挑：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;方案 A：先指纹，失败后密码&lt;/li&gt;&#xA;&lt;li&gt;方案 B：先密码，空回车后指纹&lt;/li&gt;&#xA;&lt;li&gt;方案 C：只用 Polkit GUI，不在 sudo 上强求指纹&lt;/li&gt;&#xA;&lt;li&gt;方案 D：用第三方 hack 模块（不推荐，别拿 root 认证开玩笑）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;我最后选的是方案 B，但方案 A 也试过，先说说它为什么翻车了。&lt;/p&gt;&#xA;&lt;h3 id=&#34;方案-a先指纹失败后密码翻车记录&#34;&gt;方案 A：先指纹，失败后密码（翻车记录）&lt;/h3&gt;&#xA;&lt;p&gt;一开始的直觉配置是这样的，&lt;code&gt;/etc/pam.d/sudo&lt;/code&gt;：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;#%PAM-1.0&#xA;&#xA;auth        sufficient  pam_fprintd.so max-tries=3 timeout=8&#xA;auth        include     system-auth&#xA;account     include     system-auth&#xA;session     include     system-auth&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;逻辑上看起来没毛病：先试指纹，成功就直接过，失败再让你输密码。&lt;/p&gt;&#xA;&lt;p&gt;但实际用起来就出问题了。我故意让指纹识别失败，然后输入正确的密码，&lt;code&gt;sudo&lt;/code&gt; 还是过不去。日志里出现了这样的东西：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;pam_unix(sudo:auth): conversation failed&#xA;pam_unix(sudo:auth): auth could not identify password for [...]&#xA;pam_faillock(sudo:auth): Consecutive login failures ... account temporarily locked&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;同时 &lt;code&gt;fprintd&lt;/code&gt; 那边也在报：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;Device was already claimed&#xA;Verification was in progress, stopping it&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;看起来是 &lt;code&gt;sudo&lt;/code&gt;、终端 PAM conversation、&lt;code&gt;pam_fprintd&lt;/code&gt; 和后续的密码栈之间交互状态乱了。指纹失败之后，密码 fallback 并没有干净利落地接上，还顺手触发了 &lt;code&gt;faillock&lt;/code&gt; 的失败计数，导致账号被暂时锁定。&lt;/p&gt;&#xA;&lt;p&gt;这类问题最危险的地方在于，你改的是 root 提权入口。如果把 &lt;code&gt;/etc/pam.d/sudo&lt;/code&gt; 改坏了，又没有别的 root 通道，就很容易把自己锁在外面。&lt;/p&gt;&#xA;&lt;p&gt;我当时恢复的方法，是走还能用的 Polkit：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;pkexec sh -c &lt;span class=&#34;s1&#34;&gt;&amp;#39;cat &amp;gt; /etc/pam.d/sudo &amp;lt;&amp;lt;EOF&lt;/span&gt;&#xA;&lt;span class=&#34;s1&#34;&gt;#%PAM-1.0&lt;/span&gt;&#xA;&lt;span class=&#34;s1&#34;&gt;auth        include     system-auth&lt;/span&gt;&#xA;&lt;span class=&#34;s1&#34;&gt;account     include     system-auth&lt;/span&gt;&#xA;&lt;span class=&#34;s1&#34;&gt;session     include     system-auth&lt;/span&gt;&#xA;&lt;span class=&#34;s1&#34;&gt;EOF&lt;/span&gt;&#xA;&lt;span class=&#34;s1&#34;&gt;faillock --user 用户名 --reset&lt;/span&gt;&#xA;&lt;span class=&#34;s1&#34;&gt;systemctl restart fprintd&lt;/span&gt;&#xA;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;span class=&#34;lang&#34;&gt;bash&lt;/span&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;这个回滚思路建议记一下：先把 sudo 恢复到 Arch 默认的密码路径，再清理 &lt;code&gt;faillock&lt;/code&gt;，最后重启 &lt;code&gt;fprintd&lt;/code&gt; 释放可能残留的设备占用。关键时刻能救命。&lt;/p&gt;&#xA;&lt;h3 id=&#34;方案-b先密码空回车后指纹目前采用的方案&#34;&gt;方案 B：先密码，空回车后指纹（目前采用的方案）&lt;/h3&gt;&#xA;&lt;p&gt;后来换了一种思路：正常情况就是普通的 sudo 密码提示，如果直接按 Enter 提交空密码，再进入指纹验证。&lt;/p&gt;&#xA;&lt;p&gt;当前的 &lt;code&gt;/etc/pam.d/sudo&lt;/code&gt; 配置：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;#%PAM-1.0&#xA;&#xA;# 先提示输密码，按 Enter 空密码则尝试指纹&#xA;auth        sufficient  pam_unix.so try_first_pass likeauth nullok&#xA;&#xA;# 避免在非 tty 的后台 sudo 里弹指纹&#xA;auth        [success=1 default=ignore] pam_succeed_if.so service in sudo:su:su-l tty in :unknown&#xA;-auth       sufficient  pam_fprintd.so max-tries=3 timeout=8&#xA;&#xA;# Arch 默认的 fallback&#xA;auth        include     system-auth&#xA;account     include     system-auth&#xA;session     include     system-auth&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;交互效果是这样的：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;[sudo] password for user:&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;想输密码就直接输，想用指纹就空回车，这时候会变成：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;Place your right index finger on the fingerprint reader&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;这个方案比“先指纹后密码”更符合终端里的直觉，但它也有自己的小毛病。&lt;/p&gt;&#xA;&lt;h3 id=&#34;方案-b-的坑空回车可能留下失败记录&#34;&gt;方案 B 的坑：空回车可能留下失败记录&lt;/h3&gt;&#xA;&lt;p&gt;空回车这一步，本质上是先经过了 &lt;code&gt;pam_unix.so&lt;/code&gt;。从 &lt;code&gt;pam_unix&lt;/code&gt; 的视角看，空密码不是正确密码，所以它会先产生一次认证失败记录，然后 PAM 流程才走到 &lt;code&gt;pam_fprintd&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;p&gt;实际检查 &lt;code&gt;faillock&lt;/code&gt; 的时候能看到类似这样的记录：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;user:&#xA;When                Type  Source       Valid&#xA;2026-05-08 ...      TTY   /dev/pts/1   V&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;也就是说，即使后面指纹认证通过了，空回车这一步也可能被当成一次失败尝试记下来。&lt;/p&gt;&#xA;&lt;p&gt;所以用这个方案的话，有几点要注意：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;faillock&lt;/code&gt; 的失败阈值别设太低。&lt;/li&gt;&#xA;&lt;li&gt;调试 PAM 的时候一定留一个可用的 root 后门，比如当前还能用的 &lt;code&gt;pkexec&lt;/code&gt;。&lt;/li&gt;&#xA;&lt;li&gt;连续失败之后记得检查：&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;faillock --user &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$USER&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;span class=&#34;lang&#34;&gt;bash&lt;/span&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;必要的时候手动重置：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;faillock --user &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$USER&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; --reset&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;span class=&#34;lang&#34;&gt;bash&lt;/span&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;另外说一句，如果追求最稳的图形提权体验，日常还是优先用 Polkit，不用把所有事情都压在 &lt;code&gt;sudo&lt;/code&gt; 上。&lt;/p&gt;&#xA;&lt;h3 id=&#34;kwallet为什么不能用指纹直接解锁&#34;&gt;KWallet：为什么不能用指纹直接解锁&lt;/h3&gt;&#xA;&lt;p&gt;这是另一个容易误解的地方。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;kwallet-pam&lt;/code&gt; 的作用是，在你用密码登录的时候，把登录密码传给 KWallet，用同一个密码自动解锁钱包。&lt;/p&gt;&#xA;&lt;p&gt;日志里有这样一句：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;pam_kwallet5(plasmalogin-autologin:auth): Empty or missing password, doing nothing&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;这句话已经把问题说清楚了：自动登录或者指纹登录，都没有提供“用户密码”这个明文材料，KWallet 拿不到它需要的密钥。&lt;/p&gt;&#xA;&lt;p&gt;指纹认证只回答一个问题：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;这个人是不是这个用户？&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;KWallet 解密需要的是另一个问题的答案：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;用来打开钱包的密钥或密码是什么？&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;指纹设备不会把用户的登录密码吐出来，它只告诉系统认证是否成功。所以，KWallet 没有办法单靠指纹解锁。&lt;/p&gt;&#xA;&lt;p&gt;可选的解决思路有几个：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;关掉自动登录，用密码登录，并且让 KWallet 密码和登录密码保持一致。&lt;/li&gt;&#xA;&lt;li&gt;接受现实，首次进桌面后手动输一次 KWallet 密码。&lt;/li&gt;&#xA;&lt;li&gt;降低钱包安全性，比如用空密码钱包——但这绝对不建议，尤其是存重要密钥的时候。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;所以这里不是 KDE 没接好，而是“认证”和“解密”在性质上就是两回事。&lt;/p&gt;&#xA;&lt;h3 id=&#34;fprintd-设备占用问题&#34;&gt;&lt;code&gt;fprintd&lt;/code&gt; 设备占用问题&lt;/h3&gt;&#xA;&lt;p&gt;折腾过程中还遇到过这种报错：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;Device was already claimed&#xA;Verification was in progress, stopping it&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;这通常说明上一次验证没干净结束，或者好几个认证请求同时在抢同一个指纹设备。&lt;/p&gt;&#xA;&lt;p&gt;处理方法也不复杂：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;systemctl restart fprintd&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;span class=&#34;lang&#34;&gt;bash&lt;/span&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;如果普通用户权限不够，用确认可用的 Polkit 来操作：&lt;/p&gt;&#xA;&lt;figure class=&#34;code&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;pkexec systemctl restart fprintd&lt;/code&gt;&lt;/pre&gt;&lt;span class=&#34;code-tools&#34;&gt;&lt;span class=&#34;lang&#34;&gt;bash&lt;/span&gt;&lt;button class=&#34;copy&#34; type=&#34;button&#34;&gt;copy&lt;/button&gt;&lt;/span&gt;&lt;/figure&gt;&#xA;&lt;p&gt;这也是为什么我不建议把太多认证入口都配置成自动去抢指纹。指纹设备一次只能服务一个验证请求，多个 PAM 或 Polkit 请求搅在一起的时候，体验会变得非常诡异。&lt;/p&gt;&#xA;&lt;h2 id=&#34;最终状态整理&#34;&gt;最终状态整理&lt;/h2&gt;&#xA;&lt;p&gt;折腾完一圈，现在这台机器的指纹和认证相关配置是这样的：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;fprintd&lt;/strong&gt;：能正常识别 Goodix 设备，已录入右手食指&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;KDE 用户设置&lt;/strong&gt;：可以通过 kcm_users 管理指纹&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Polkit&lt;/strong&gt;：优先指纹，失败后回退密码&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;kio-admin&lt;/strong&gt;：已安装，可以用 &lt;code&gt;admin://&lt;/code&gt; 做图形化 root 文件操作&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;sudo&lt;/strong&gt;：先密码，空回车后指纹，最多尝试 3 次&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Plasma Login Manager&lt;/strong&gt;：PAM 已接入指纹，但自动登录会绕过&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;KWallet&lt;/strong&gt;：不能单靠指纹解锁&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;总结&#34;&gt;总结&lt;/h2&gt;&#xA;&lt;p&gt;这台小米 Book Pro 14 的 Linux 兼容性比我想象中好很多，几个问题都有清晰的原因和解决路径，整体用下来挺顺手。&lt;/p&gt;&#xA;&lt;p&gt;还有一个感受是，现在调系统比以前快太多了。以前遇到问题要翻一堆 ArchWiki 和 man 文档，现在可以直接问 ChatGPT“xxx 问题怎么解决”，效率完全不一样。这次连 OpenAI Codex 也用上了，整体调试过程比过去顺畅了不止一个量级。&lt;/p&gt;&#xA;</description>
      <category>折腾</category>
      <pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate>
      <guid>https://mizore.blog/zh/%E6%8A%98%E8%85%BE/xiaomi-book-pro-14/</guid>
    </item>
  </channel>
</rss>