「Fprint」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(他言語へのリンクを修正)
 
(2人の利用者による、間の9版が非表示)
1行目: 1行目:
 
{{Lowercase title}}
 
{{Lowercase title}}
 
[[Category:入力デバイス]]
 
[[Category:入力デバイス]]
[[bg:Fprint]]
 
 
[[en:Fprint]]
 
[[en:Fprint]]
[[fa:Fprint]]
 
 
[[pt:Fprint]]
 
[[pt:Fprint]]
  +
[[zh-hans:Fprint]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|Fingerprint-gui}}
 
{{Related|Fingerprint-gui}}
13行目: 12行目:
 
:''fprint プロジェクトは商用の指紋認証デバイスのサポートという Linux デスクトップの隙間を埋めることを目指しています。''
 
:''fprint プロジェクトは商用の指紋認証デバイスのサポートという Linux デスクトップの隙間を埋めることを目指しています。''
   
ノートパソコンに内蔵されている指紋リーダーを使用して [[PAM]] を使ったログインを行うというアイデアです。この記事ではバックアップ用にログインで通常のパスワードを使う方法も説明しています (単独で指紋スキャナーが推奨することは、多くの理由により推奨されません)。
+
ノートパソコンに内蔵されている指紋リーダーを使用して [[PAM]] を使ったログインを行うというアイデアです。この記事ではバックアップ用にログインで通常のパスワードを使う方法も説明しています (多くの理由により、指紋スキャナーのみの使用は推奨されません)。
   
 
== 要件 ==
 
== 要件 ==
   
  +
{{Note|デバイスのリストは不定期更新であり不完全です。リストにデバイスがない場合でも、[[AUR]] パッケージを使う前に以下の手順を試す価値があります。}}
使っている指紋スキャナーがサポートされていることを確認してください。あなたのデバイスがサポートされているかどうかは [https://www.freedesktop.org/wiki/Software/fprint/libfprint/Supported_devices/ この] サポートされているデバイスのリストで確認できます。あなたのデバイスを確認するには、次を入力してください:
 
  +
  +
使っている指紋スキャナーがサポートされていることを確認してください。あなたのデバイスがサポートされているかどうかは [https://www.freedesktop.org/wiki/Software/fprint/libfprint/Supported_devices/ サポートされているデバイスのリスト]もしくは、[https://gitlab.freedesktop.org/libfprint/wiki/-/wikis/Unsupported-Devices サポートされていないデバイスのリスト]あなたのデバイスを確認するには、次を入力してください:
  +
 
$ lsusb
 
$ lsusb
   
  +
''lsusb'' ツールは、{{Pkg|usbutils}} パッケージ内で使用できます。
{{Note|デバイスのリストは不定期更新であり不完全です。リストにデバイスがない場合でも、[[AUR]] パッケージを使う前に以下の手順を試す価値があります。}}
 
   
 
== インストール ==
 
== インストール ==
26行目: 28行目:
 
[[公式リポジトリ]]から {{Pkg|fprintd}} をインストールしてください。{{Pkg|imagemagick}} も必要かもしれません。
 
[[公式リポジトリ]]から {{Pkg|fprintd}} をインストールしてください。{{Pkg|imagemagick}} も必要かもしれません。
   
  +
デバイスによっては、{{Pkg|libfprint}} の別のフォークが必要で、メインの ''libfprint'' とは (まだ?) マージされていないようです:
デバイスによっては、タッチベースのセンサー用に特別に作られた、(まだ?)メインの ''libfprint'' にマージされていない別の {{pkg|libfprint}} のフォーク、[https://gitlab.freedesktop.org/3v1n0/libfprint/-/tree/tod libfprint-tod] が必要です。これは {{AUR|libfprint-elanmoc2-newdrvs-git}} として利用可能です。04f3:0c4c や 04f3:0c00 をお持ちの方は、 libfprint-elanmoc2-newdrvs の'''''実験的な'''''パッケージである {{AUR|libfprint-elanmoc2-newdrvs-git}} を使用して、libfprint-elanmoc2 に[https://gitlab.freedesktop.org/Depau/libfprint/-/merge_requests/1 マージ]されるのを待ちましょう。これも、メインの libfprint に[https://gitlab.freedesktop.org/libfprint/libfprint/-/merge_requests/330 マージ]されるのを待っています。
 
  +
  +
* {{App|libfprint-tod|タッチベースのセンサー用。|https://gitlab.freedesktop.org/3v1n0/libfprint/-/tree/tod|{{AUR|libfprint-tod-git}}}}
  +
* {{App|libfprint-elanmoc2|ELANの {{ic|04f3:0c4c}} が待機していて、[https://gitlab.freedesktop.org/libfprint/libfprint/-/merge_requests/330 マージ]が必要。|https://gitlab.freedesktop.org/Depau/libfprint/-/tree/elanmoc2|{{AUR|libfprint-elanmoc2-git}}}}
  +
* {{App|libfprint-elanmoc2-newdrvs|'''実験的な''' {{ic|04f3:0c4c}} または {{ic|04f3:0c00}} 用、[https://gitlab.freedesktop.org/Depau/libfprint/-/merge_requests/1 マージ]待ち。|https://gitlab.freedesktop.org/geodic/libfprint/-/tree/elanmoc2|{{AUR|libfprint-elanmoc2-newdrvs-git}}}}
   
 
== 設定 ==
 
== 設定 ==
58行目: 64行目:
 
最初にパスワードを促され、入力せずに {{ic|Enter}} キーを押すと指紋認証が行われます。
 
最初にパスワードを促され、入力せずに {{ic|Enter}} キーを押すと指紋認証が行われます。
   
  +
指紋とパスワードの入力を同時に促したい場合は、{{AUR|pam-fprint-grosshack}} を使用することができます。これは、Gnome の組み込み polkit エージェントのような、空白のパスワード入力を許さないグラフィカルなプログラムで必要になることがあります。このパッケージを使用するには、必要なファイルの先頭に次の行を追加します:
If you want to prompt for fingerprint and password input at the same time, you can use {{AUR|pam-fprint-grosshack}}. 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_fprintd_grosshack.so'''
82行目: 88行目:
   
 
# fprintd-enroll ''user''
 
# fprintd-enroll ''user''
  +
  +
新しく作成されたフィンガープリントを確認するには、次のようにします:
  +
  +
$ fprintd-verify
   
 
詳しくは、{{man|1|fprintd}} を見て下さい。
 
詳しくは、{{man|1|fprintd}} を見て下さい。
117行目: 127行目:
 
[[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.
 
  +
  +
=== デバイスをサスペンド中に予期しないエラーが発生 ===
  +
  +
この問題は [https://gitlab.freedesktop.org/libfprint/libfprint/-/issues/538 libfprint repository]で説明されています:
  +
:RAM へのサスペンドではなく、s2idle を行うようにノートパソコンの設定を変更する必要があります。BIOS を "Windowsモード" に切り替える必要があるかもしれません。
  +
  +
=== 指紋認証が Polkit エージェントで有効にならない ===
  +
  +
Linux PAM に指紋ルールを追加した後、指紋認識は [[SDDM]] と [[sudo]] に対してのみ機能しますが、[[polkit]] に対しては機能しません。
  +
  +
{{ic|50-default.rules}} ファイルを {{ic|/etc/}} にコピーし、グループ名 {{ic|wheel}} をユーザーグループに変更します。
  +
  +
# cp /usr/share/polkit-1/rules.d/50-default.rules /etc/polkit-1/rules.d/
  +
  +
{{hc|/etc/polkit-1/rules.d/50-default.rules|<nowiki>
  +
polkit.addAdminRule(function(action, subject) {
  +
return ["unix-group:wheel"];
  +
});
  +
</nowiki>}}
  +
  +
=== デバッグ ===
   
  +
次の環境変数とコマンドラインフラグを使用します:
=== Unexpected error while suspending device ===
 
   
  +
# G_MESSAGES_DEBUG=all /usr/lib/fprintd -t
This issue is described [https://gitlab.freedesktop.org/libfprint/libfprint/-/issues/538 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".
 
   
{{TranslationStatus|Fprint|2022-09-30|749307}}
+
{{TranslationStatus|Fprint|2024-02-22|749307}}

2024年2月22日 (木) 04:31時点における最新版

関連記事

fprint のホームページ より:

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

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

要件

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

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

$ lsusb

lsusb ツールは、usbutils パッケージ内で使用できます。

インストール

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

デバイスによっては、libfprint の別のフォークが必要で、メインの libfprint とは (まだ?) マージされていないようです:

  • libfprint-tod — タッチベースのセンサー用。
https://gitlab.freedesktop.org/3v1n0/libfprint/-/tree/tod || libfprint-tod-gitAUR
  • libfprint-elanmoc2 — ELANの 04f3:0c4c が待機していて、マージが必要。
https://gitlab.freedesktop.org/Depau/libfprint/-/tree/elanmoc2 || libfprint-elanmoc2-gitAUR
  • libfprint-elanmoc2-newdrvs実験的な 04f3:0c4c または 04f3:0c00 用、マージ待ち。
https://gitlab.freedesktop.org/geodic/libfprint/-/tree/elanmoc2 || libfprint-elanmoc2-newdrvs-gitAUR

設定

ログイン設定

ノート:
  • 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 キーを押すと指紋認証が行われます。

指紋とパスワードの入力を同時に促したい場合は、pam-fprint-grosshackAUR を使用することができます。これは、Gnome の組み込み polkit エージェントのような、空白のパスワード入力を許さないグラフィカルなプログラムで必要になることがあります。このパッケージを使用するには、必要なファイルの先頭に次の行を追加します:

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-verify

詳しくは、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

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

デバイスをサスペンド中に予期しないエラーが発生

この問題は libfprint repositoryで説明されています:

RAM へのサスペンドではなく、s2idle を行うようにノートパソコンの設定を変更する必要があります。BIOS を "Windowsモード" に切り替える必要があるかもしれません。

指紋認証が Polkit エージェントで有効にならない

Linux PAM に指紋ルールを追加した後、指紋認識は SDDMsudo に対してのみ機能しますが、polkit に対しては機能しません。

50-default.rules ファイルを /etc/ にコピーし、グループ名 wheel をユーザーグループに変更します。

# cp /usr/share/polkit-1/rules.d/50-default.rules /etc/polkit-1/rules.d/
/etc/polkit-1/rules.d/50-default.rules
polkit.addAdminRule(function(action, subject) {
    return ["unix-group:wheel"];
});

デバッグ

次の環境変数とコマンドラインフラグを使用します:

# G_MESSAGES_DEBUG=all /usr/lib/fprintd -t
翻訳ステータス: このページは en:Fprint の翻訳バージョンです。最後の翻訳日は 2024-02-22 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。