Raspberry Pi 400をPCのキーボードにする
(このページは工事中です)
参照ページ
条件
Raspberry Pi 400
Windows 11マシン←母艦PC
KVM切替器 PlatHome PShareシリーズ(カスケーディングあり)
下調べ
参照ページ1だとPi 400のUSB-Cポートに接続することになっているが、このUSB-Cは本来電源供給用とされており、Pi 400をUSBHIDキーボードにした場合に電源をどうするのかがわからないため下調べをした。
Pi 400の/boot/config.txt内には次の記述もある:
code:/boot/config.txt
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1
これについてはcm4というセクション名があるので400には適用されないものととりあえず判断し、後で調べる。 母艦PCのキーボードとして動作させる
Raspberry Pi 400にRaspbianの最新64ビット版(bookwarm、デスクトップあり)をインストールして正常に起動することを確認。
ファイル末尾に追記:
code:/boot/config.txt
dtoverlay=dwc2
参照ページ2のリリースページには「64bit TBC!」とか書いてあるが、とりあえずはrelease 0.0.1をダウンロードしPi 400で展開(参照ページ1にはビルドが必要だとあるが、とりあえず配布のバイナリでやってみる)。 sudo reboot。まだPCには繋がないで以下を確認。
sudo modprobe libcompositeは何もメッセージを返さない。lsmodで見るとlibcompositeは組み込まれている。
chmod +x pi400kbは要らなかった(すでにchmod済み)。
sudo ./pi400kb
-bash: ./pi400kb: cannot execute: required file not found
何じゃこれは。
参照ページ3あたりがヒントをくれそう。
./pi400kbは32ビットバイナリなので、参照ページ4を応用してみる。
sudo dpkg --print-foreign-architectures: 追加アーキテクチャの確認。
armhf
sudo apt update
sudo apt install libstdc++6:armhf libgcc1:armhf zlib1g:armhf libncurses5:armhf
./pi400kb
./pi400kb: error while loading shared libraries: libconfig.so.9: cannot open shared object file: No such file or directory
sudo apt install libconfig9:armhf
./pi400kb
modprobe: ERROR: could not insert 'libcomposite': Operation not permitted
Failed to open keyboard device
Failed to open mouse device
No devices to forward, bailing out!
sudo modprobe libcomposite
./pi400kb
Failed to open keyboard device
Failed to open mouse device
No devices to forward, bailing out!
sudo shutdown -h now。一旦電源断して、USB-Cポートに母艦PCのUSBポートを接続する。
起動後、./pi400kb
modprobe: ERROR: could not insert 'libcomposite': Operation not permitted
Failed to open keyboard device
Failed to open mouse device
No devices to forward, bailing out!
sudo modprobe libcomposite
./pi400kb
Failed to open keyboard device
Failed to open mouse device
No devices to forward, bailing out!
sudo ./pi400kb
Found keyboard at: /dev/hidraw3
Found mouse at: /dev/hidraw0
Grabbing Keyboard and/or Mouse
Grabbing: /dev/input/by-id/usb-_Raspberry_Pi_Internal_Keyboard-event-kbd
Grabbing: /dev/input/by-id/usb-PixArt_USB_Optical_Mouse-event-mouse
sh: 1: /home/pi/pi400kb/hook.sh: not found
Running...
K:0 0 4 0 0 0 0 0
K:0 0 0 0 0 0 0 0
K:0 0 15 0 0 0 0 0
K:0 0 0 0 0 0 0 0
K:0 0 4 0 0 0 0 0
K:0 0 0 0 0 0 0 0
K:0 0 2a 0 0 0 0 0
K:0 0 0 0 0 0 0 0
Pi 400のキーボードとマウスが母艦のキーボードとマウスとして機能している(!!!)
KVM経由で動作させる
KVMであるPShare AUのUSBポートに直接接続してみる→Pi 400のpower LEDは点滅するが、Raspbianは起動しない。
セルフパワーUSBハブを間に挟んでKVMに接続してみる→Raspbianは起動するが、KVMのキーボードとしては機能しない模様。
さて次はどうするか。
X68000のキーボードとして動作させる
X68000のキーボードポートに繋いだこれにセルフパワーUSBハブを接続し、そこにPi 400を接続するとキーボードとして動作した。 (2024-01-30)