最近、ノートパソコンで指紋認証に成功しました。Goodix Linuxの開発DiscordコミュニティとgithubユーザーInfinytumとMichael Teuscherのdriver/538d
フォークhttps://github.com/infinytum/libfprint/tree/driver/538d。
ただし、指紋のログインfprintd-enroll
とsudo
アクセスを有効にした後にsudo pam-auth-update
問題が検出されました。
外部モニタで作業するたびに、カバーが閉じているときにパスワードを入力する前に指紋の確認がタイムアウトするまで待つ必要があるため、sudo
数秒の遅延が発生します。
username@host:~/ron/libfprint$ sudo ls
Place your finger on the fingerprint reader
Place your finger on the reader again
Place your finger on the reader again
Place your finger on the reader again
Verification timed out
[sudo] password for username:
sudo
パスワードを入力する前に指紋がタイムアウトするのを待つ必要がないように、ノートブックカバーが閉じているときに指紋の確認を無効にするにはどうすればよいですか。
ベストアンサー1
ラップトップのカバーを閉じるときに指紋認証を無効にし、再度開いたときに再度有効にするために、カバーを閉じるときにサービスを停止してブロックし、カバーを閉じるときにキャンセルするカスタムスクリプトにacpid
イベントバインディングを使用します。サービスカバーを開いて起動します。button/lid.*
fprintd
fprintd
コンテンツテストでHDMIケーブルが接続されていることも確認しました/sys/class/drm/card0-HDMI-A-1/status
。
次の手順に従ってください。
/etc/acpi/laptop-lid.sh
次の内容でファイルを作成します。#!/bin/bash lock=$HOME/fprint-disabled if grep -Fq closed /proc/acpi/button/lid/LID0/state && grep -Fxq connected /sys/class/drm/card0-HDMI-A-1/status then touch "$lock" systemctl stop fprintd systemctl mask fprintd elif [ -f "$lock" ] then systemctl unmask fprintd systemctl start fprintd rm "$lock" fi
ファイルを実行可能にする
chmod +x /etc/acpi/laptop-lid.sh
/etc/acpi/events/laptop-lid
次の内容でファイルを作成します。event=button/lid.* action=/etc/acpi/laptop-lid.sh
acpid
次のコマンドを使用してサービスを再起動します。sudo service acpid restart
指紋は、ふたが開いているときにのみ使用されます。
fprintd
ラップトップがシャットダウンした状態で接続を切断して再接続したときにサービスの正しい状態を復元するには、systemd
initファイルで上記のスクリプトを呼び出すだけです。これを行う手順は次のとおりです。
/etc/systemd/system/laptop-lid.service
次の内容でファイルを作成します。[Unit] Description=Laptop Lid After=suspend.target [Service] ExecStart=/etc/acpi/laptop-lid.sh [Install] WantedBy=multi-user.target WantedBy=suspend.target
システム構成ファイルの再ロード
sudo systemctl daemon-reload
サービス開始
sudo systemctl start laptop-lid.service
起動時に自動的に起動するようにサービスを有効にします。
sudo systemctl enable laptop-lid.service
これで、コンピュータの電源が切れているときに接続/接続を解除しても、ステータスが正しくなければなりません。
答えからコードを生成するために使用された参照: