「Fprint」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
117行目: 117行目:
 
[[Fwupd]] でデバイスのファームウェアを最新の状態にしてください。
 
[[Fwupd]] でデバイスのファームウェアを最新の状態にしてください。
   
  +
=== サスペンド後のログインプロンプト表示時に gdm がハングする ===
=== gdm hangs when revealing login prompt after suspend ===
 
   
This issue is described [https://gitlab.freedesktop.org/libfprint/libfprint/-/issues/426 in libfprint repository]. The developers answer is:
+
この問題は [https://gitlab.freedesktop.org/libfprint/libfprint/-/issues/426 libfprint repository]で説明されています。開発者の答えは以下の通りです:
   
  +
:現時点では、BT USBドングルが初期化されている最中に切断されてしまっているのではないかと推測しています。その結果、btusbがファイルウェアをロードしようとして全てがスタックされてしまっている(これには10秒のタイムアウトが設定されており、ちょうど10秒未満のハングが発生している原因を説明しています)。rfkillスイッチが切り替えられた時には、このようにbluetoothドングルが切断されることが想定されていますので、それ自体は正常です。ただし、デバイスが突然切断されるケースが適切に処理されず、タイムアウトするようです。
:My guess right now is that we are disconnecting the BT USB dongle while it is being initialised. Then everything gets stuck while btusb is trying to load the firmware (this has a 10s timeout, explaining the just under 10s hang that we are seeing). Disconnecting the bluetooth dongle like this is expected to happen when the rfkill switch is toggled, so that is normal. It just seems that the case where the device suddenly disconnects is not handled properly and times out.
 
   
  +
提案されている修正方法は、以下のように[[作成]]することです:
The proposed fix is to [[create]]:
 
   
 
{{hc|/etc/modprobe.d/bluetooth-blacklist.conf|blacklist btusb}}
 
{{hc|/etc/modprobe.d/bluetooth-blacklist.conf|blacklist btusb}}
   
  +
または、すぐに以下のコマンドを実行します:
Or execute straight away:
 
   
 
# rmmod btusb
 
# rmmod btusb
   
  +
その後、デバイスの初期化を試みることはなくなります。
Then it should not try to initialize the device.
 
   
 
=== Unexpected error while suspending device ===
 
=== Unexpected error while suspending device ===

2023年5月29日 (月) 11:52時点における版

関連記事

fprint のホームページ より:

fprint プロジェクトは商用の指紋認証デバイスのサポートという Linux デスクトップの隙間を埋めることを目指しています。

ノートパソコンに内蔵されている指紋リーダーを使用して PAM を使ったログインを行うというアイデアです。この記事ではバックアップ用にログインで通常のパスワードを使う方法も説明しています (単独で指紋スキャナーが推奨することは、多くの理由により推奨されません)。

要件

使っている指紋スキャナーがサポートされていることを確認してください。あなたのデバイスがサポートされているかどうかは この サポートされているデバイスのリストで確認できます。あなたのデバイスを確認するには、次を入力してください:

$ lsusb
ノート: デバイスのリストは不定期更新であり不完全です。リストにデバイスがない場合でも、AUR パッケージを使う前に以下の手順を試す価値があります。

インストール

公式リポジトリから fprintd をインストールしてください。imagemagick も必要かもしれません。

デバイスによっては、タッチベースのセンサー用に特別に作られた、(まだ?)メインの libfprint にマージされていない別の libfprint のフォーク、libfprint-tod が必要です。これは libfprint-elanmoc2-newdrvs-gitAUR として利用可能です。04f3:0c4c や 04f3:0c00 をお持ちの方は、 libfprint-elanmoc2-newdrvs の実験的なパッケージである libfprint-elanmoc2-newdrvs-gitAUR を使用して、libfprint-elanmoc2 にマージされるのを待ちましょう。これも、メインの libfprint にマージされるのを待っています。

設定

ログイン設定

ノート:
  • GDM を使っているなら、ログインメニューで指紋オプションが使えるはずです (使えない場合、ユーザーを input グループに追加してみてください)。このセクションは飛ばして下さい。
  • SDDM を使う場合、SDDM#指紋認証の利用を参照してください。

pam_fprintd.sosufficient として /etc/pam.d/system-local-login の auth セクションの一番上に追加してください:

/etc/pam.d/system-local-login
auth      sufficient pam_fprintd.so
auth      include   system-login
...

これで最初に指紋によるログインが試行され、それが失敗したりユーザーのホームディレクトリに指紋署名がない場合、パスワードによるログインになります。

同じように /etc/pam.d/{login,su,sudo,gdm,lightdm} 内の他のファイルを修正することもできます。例えば GNOME の polkit 認証なら /etc/pam.d/polkit-1 です。

pam_fprintd.sosufficient として追加すると、指紋署名が登録済みのときにパスワード認証ではなく指紋認証が促されます。パスワード認証と指紋認証を両方使えるようにするには先頭に以下の内容を追加します:

/etc/pam.d/sudo
auth		sufficient  	pam_unix.so try_first_pass likeauth nullok
auth		sufficient  	pam_fprintd.so
...

最初にパスワードを促され、入力せずに Enter キーを押すと指紋認証が行われます。

If you want to prompt for fingerprint and password input at the same time, you can use pam-fprint-grosshackAUR. This may be needed for some graphical programs which do not allow blank password input, such as Gnome's built-in polkit agent. To use this package, add the following lines to the top of any files required:

auth		sufficient  	pam_fprintd_grosshack.so
auth		sufficient  	pam_unix.so try_first_pass nullok
...

指紋署名の作成

登録するには、認証エージェントを実行する必要があります。

指の署名を追加するには、次を実行してください:

$ fprintd-enroll

または、5 本の指全ての署名を新しく作成するには:

$ fprintd-delete "$USER"
$ for finger in {left,right}-{thumb,{index,middle,ring,little}-finger}; do fprintd-enroll -f "$finger" "$USER"; done

指定された指をスキャンするように指示されます。右手の人差し指を 5回スワイプしてください。その後、/var/lib/fprint/ に署名が作成されます。

また、認証エージェントなしで登録することもできます。

# fprintd-enroll user

詳しくは、fprintd(1) を見て下さい。

登録の制限

デフォルトでは新しい指紋を登録するのにパスワードを入力する必要はありません。Polkit ルールを使うことでこの動作を変更することができます。

polkit の設定ファイルは、次の2つの場所に保存されています。

  • /etc/polkit-1/rules.d/
  • /usr/share/polkit-1/rules.d/
ノート: /etc/polkit-1/rules.d/ の設定ファイルはパッケージ更新時に上書きされます。最初に設定ファイルを /etc/polkit-1/rules.d/ から /usr/share/polkit-1/rules.d/ にコピーしてください。

以下の例ではスーパーユーザーだけが指紋を登録できるようになります:

/etc/polkit-1/rules.d/50-net.reactivated.fprint.device.enroll.rules
polkit.addRule(function (action, subject) {
  if (action.id == "net.reactivated.fprint.device.enroll") {
    return subject.user == "root" ? polkit.Result.YES : polkit.result.NO
  }
})

トラブルシューティング

利用可能なデバイスがない

サポートされているデバイス が見つからない、または既に開いている(使用中)と言われる場合は、fprintd のログを journal で確認してください:

次のようなログエントリが見つかるかもしれません:

fprintd[2936592]: Corrupted message received
fprintd[2936592]: Ignoring device due to initialization error: unsupported firmware version

Fwupd でデバイスのファームウェアを最新の状態にしてください。

サスペンド後のログインプロンプト表示時に gdm がハングする

この問題は libfprint repositoryで説明されています。開発者の答えは以下の通りです:

現時点では、BT USBドングルが初期化されている最中に切断されてしまっているのではないかと推測しています。その結果、btusbがファイルウェアをロードしようとして全てがスタックされてしまっている(これには10秒のタイムアウトが設定されており、ちょうど10秒未満のハングが発生している原因を説明しています)。rfkillスイッチが切り替えられた時には、このようにbluetoothドングルが切断されることが想定されていますので、それ自体は正常です。ただし、デバイスが突然切断されるケースが適切に処理されず、タイムアウトするようです。

提案されている修正方法は、以下のように作成することです:

/etc/modprobe.d/bluetooth-blacklist.conf
blacklist btusb

または、すぐに以下のコマンドを実行します:

# rmmod btusb

その後、デバイスの初期化を試みることはなくなります。

Unexpected error while suspending device

This issue is described in libfprint repository:

You need to set your laptop to not suspend to RAM but to do s2idle. You might need to switch the BIOS into "Windows mode".
翻訳ステータス: このページは en:Fprint の翻訳バージョンです。最後の翻訳日は 2022-09-30 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。