2014年4月10日木曜日

ArchでFingerprint-GUIを使えるようにするまでのメモ

ThinkPad X200s に搭載されている指紋認証デバイスを Arch Linux で使えるようにするまで苦戦したのでメモ。

1. 入れる
$ yaourt -S fingerprint-gui


2. 指紋認証デバイスの場所を調べる
$ lsusb


3. AuthenTecのデバイスを探す
Bus 002 Device 002: ID 08ff:2810 AuthenTec, Inc. AES2810
ここで、 08ff:2810 (デバイスごとに異なる)をメモしておく


4. 固定されたデバイス名を得るためのルールを作る
$ sudo nano /etc/udev/rules.d/96-fingerprint.rules


5. 以下を記述する
SUBSYSTEMS=="usb", DRIVERS=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2810" SYMLINK+="usbfingerprint%n" TAG+="systemd"
ここでの idVendor 、 idProduct の値は、先ほど lsusb で調べた「08ff:2810」を入れる。


6. 再起動
$ reboot


7. usbfingerprint1 ができているかを確認する。
$ ls /dev


8. 指紋認証デバイスを通常ユーザーでも操作できるようにするため、起動時にデバイスの権限を変えるためのサービスを作る。
$ sudo nano /etc/systemd/system/fingerprint.service


9. 以下を記述する。

#!/bin/sh

[Unit]
Description=Set Fingerprint permission
Wants=dev-usbfingerprint1.device
After=dev-usbfingerprint1.device

[Service]
ExecStart=/bin/bash -c 'chmod 666 /dev/usbfingerprint1'

[Install]
WantedBy=multi-user.target

rules に TAG+="systemd" を書いた上で Wants= と After= に「dev-デバイス名.device」を記述すると、デバイスが認識されるまでサービスの実行を待つようになる。


10. サービスを有効化する
$ sudo systemctl enable fingerprint.service


11. 再起動


12. 指紋を登録する
$ fingerprint-gui


13. 確認する
$ fingerprint-identifier


14. 指紋で各種認証を突破できるように設定する

/etc/pam.d/lightdm や /etc/pam.d/sudo を開き、
#%PAM-1.0 の下に以下を記述する。
auth  sufficient  pam_fingerprint-gui.so