デスクトップPCのキーボード・マウスをBluetoothのにしたら辛いことが多すぎたのでラズパイでBT→USBコンバータを作った
これまでのあらすじ
引っ越しを機にPCデスクをお洒落にしたい!
お洒落 is ケーブルレス!これ正義!!!
そんな訳でキーボードとマウスをBluetooth接続にした俺。もぐの。
その直後から数々の不幸が俺に降りかかってきたんだ!
結論
デスクトップPCにBluetoothキーボード・マウスは不適
ノートPCなら内蔵のキーボード&ポインティングデバイスがあるのでどうとでもなるんですが、代替手段のないデスクトップPCでは即GAME OVERなパターンが「KANOSO*1」なみに存在します。
長男だけどくじけたよ。ネ右一くん。
しかしながらBluetoothキーボードはドングル式に比べて種類が豊富
HHKBとかマジェスタッチとか、高級キーボードの有名どころは無線にBluetoothを採用してることが多い気がします。
なかなか捨てがたいです。
USBトラックポイントキーボードはエマージェンシー用途にマジ優秀なのでみんな持ってた方がいい
キーボードとポインティングデバイスがUSBケーブル1本でつなげて便利なのと、薄いし軽いから何かと取り回しがいいのです。必携。
辛すぎたのでRaspberry PI Zero WでBluetooth → USBコンバータを作った
要はWindowsがBluetoothを管理してるから悲しい事件が起きるので、それをラズパイにやらせてPCからはただのUSBキーボード・マウスに見れるようにすればいいって発想です。
ラズパイZero WはLinuxのUSB Gadget機能でUSBデバイスとして振舞うことができます。また、Zero WはBluetoothを内蔵してます。と言うわけでこの用途にジャストミートなんですね。
使い方
systemdのserviceファイルをインストールする。
cp -p /opt/event2usbhid/misc/*.service /etc/systemd/system/ systemctl enable mkusbhid systemctl enable event2usbhid_keyboard systemctl enable event2usbhid_mouse
Bluetoothキーボード・マウスをペアリングする。
trustで自動接続できるようにするのがポイントです。
bluetoothctl [bluetooth]# devices Device 7C:1E:52:B0:87:49 Microsoft Wedge Mobile Keyboard ・・・ [bluetooth]# pair 7C:1E:52:B0:87:49 [bluetooth]# connect 7C:1E:52:B0:87:49 [bluetooth]# trust 7C:1E:52:B0:87:49
udevルールの設定
/opt/event2usbhid/misc/99-bluetooth.rulesのATTRS{name}に先ほどペアリングしたキーボード・マウスの名前を登録した上でインストールします。
cat /opt/event2usbhid/misc/99-bluetooth.rules KERNEL=="event*", ATTRS{name}=="Microsoft Wedge Mobile Keyboard", TAG+="systemd", SYMLINK+="input/keyboard", ENV{SYSTEMD_ALIAS}="/sys/class/input/keyboard" KERNEL=="event*", ATTRS{name}=="Microsoft Sculpt Comfort Mouse", TAG+="systemd", SYMLINK+="input/mouse", ENV{SYSTEMD_ALIAS}="/sys/class/input/mouse" cp -p /opt/event2usbhid/misc/99-bluetooth.rules /etc/udev/rules.d/
リブートする
これでもう泣かなくてもよくなります。きっと。