BIOSやFileVaultでBluetoothキーボードを使う
Published: Sat Dec 01 2018
Category: Hardware
通常、BIOSやFileVaultのロック解除画面では、Bluetooth接続されたキーボードは使用できません。
これを回避し、HHKBでFileVaultのロック解除を行う方法を探していたところ、HID Proxyなる機 能にたどり着きました。
この記事では、BIOSやFileVaultのパスワード入力画面で、Bluetooth接続のキーボードを使用する方法を説明しています。
動作原理
Raspberry Pi Zero WはBluetooth経由でキーボードの入力を受け取ります。
そしてRaspberry Pi Zero Wは仮想キーボードとして動作し、USB経由で入力をコンピュータに送信します。
こちらの記事で紹介されているように、HID Proxyに対応したドングルのみでも可能な場合がありますが、HHKBとは相性が悪いのか、私の環境では動作しませんでした。Raspberry Pi Zero Wもトータルコストはそんなに変わらないので、個人的にはこの記事の方法をおすすめします。
必要デバイス
- Raspberry Pi Zero W
- Raspberry Piとパソコンを接続するためのUSBケーブル
Instructions
- 必要なオプションを追記します
echo "dtoverlay=dwc2" | sudo tee -a /boot/config.txt echo "dwc2" | sudo tee -a /etc/modules echo "libcomposite" | sudo tee -a /etc/modules
- Bluetooth接 続のキーボードと、Raspberry Pi Zero Wを接続します。
- Quimbyと呼ばれるソフトウェアをリポジトリからクローン、インストールします。
git clone https://gitlab.com/dcro/quimby.git cd quimby sudo apt install python3-evdev sudo cp quimby-* /usr/local/bin/ sudo cp udev/quimby.rules /etc/udev/rules.d/ sudo cp systemd/system/quimby.service /usr/lib/systemd/system/
- Raspberry Pi Zero Wを再起動します。
sudo reboot
私のキーボード(HHKB)は、入力デバイスが2つとして認識されており、"/dev/input/event0 "が共通のキー入力で、"/dev/input/event1 "がメディア制御などのための特殊なキー入力でした。 AppleのMagic Keyboard 2の場合は入力デバイスが1つの扱いだったので、HHKB特有の仕様なのかもしれません。
そこで、/usr/lib/systemd/system/quimby.service
のExecStartの引数の-iオプションに/dev/input/event1
を追加しました。
[Unit]
Description=Quimby Input Forwarder
Requires=bluetooth.service
[Service]
Type=simple
ExecStartPre=/usr/local/bin/quimby-setup quimby
ExecStart=/usr/local/bin/quimby-relay -i /dev/input/event0 -i /dev/input/event1 -k /dev/hidg0 -c /dev/hidg1
ExecStop=/usr/local/bin/quimby-cleanup quimby
References
- https://mlug-au.org/lib/exe/fetch.php?media=workshops:quimby_a_bluetooth-usb_hid_proxy.pdf
- https://gitlab.com/dcro/quimby