Categories: 工作・開発

USB1本でKVM-over-IPを実現するオープンソースソフト「ZeroKVM」、ラズパイZero 2にインストールするだけ

ヘッドレスのLinuxマシンをリモート管理したいとき、まず思い浮かぶのはSSHだ。しかしBIOSの設定変更やOSの再インストールが必要になると、SSHでは手が届かない。KVM-over-IPはその解決策だが、専用機器は高価で、安価なキャプチャーカードを使う方法でもHDMI分岐とUSBハブが必要になる。

doominator42氏が公開した「ZeroKVM」はこの問題に別のアプローチで挑む。HDMI入力もキャプチャーカードも使わず、USB1本だけでビデオ・キーボード・マウスを一括転送する。仕組みはDisplayLinkドライバーの活用だ。ホストPCから見るとZeroKVMを動かすSBCは「DisplayLinkモニター」として認識され、ホスト側の画面出力をUSBで受け取る。WindowsとLinuxはDisplayLinkドライバーが標準搭載またはWindows Updateで自動インストールされるため、ホスト側に追加ソフトは不要だ。macOSとAndroidはDisplayLink公式アプリのインストールが必要だが、専用ドライバーの開発は不要だ。

コントロール側はWebブラウザーで操作する。キーボードはHIDブートキーボード、マウスは絶対座標・相対座標・デジタイザーの3モードに対応しており、テキストをそのままキーストロークとして送信する機能も実装済みだ。

対応ハードウェアはUSBデバイス/OTGコントローラーを持つARM64のSBCで、100MBのRAMが必要だ。Raspberry Pi Zero 2はその要件を満たす安価な候補として挙げられているが、DisplayLinkプロトコルのピクセルデコード処理はCPU負荷が高く、Zero 2では高負荷時に頭打ちになるとREADMEは注記している。

現時点の制約は明確に示されている。実装はUSB 2.0のDisplayLinkのみで、最大解像度は1920×1080。動画や大面積で変化し続けるコンテンツはフレームドロップが生じる。またDisplayLinkドライバーが動作する環境でしか使えないため、BIOS設定やOSインストール中の操作には対応していない。

ビルドはDockerまたは.NET 10 CLIで行い、glibc系(Raspberry Pi OS、Ubuntu等)とmusl-libc系(OpenWRT、Alpine Linux)の両方をサポートする。ライセンスはGPLv3。HTTPSオプション、Basic認証、RNDIS/CDC-ECMなどのイーサネットガジェット、MTPによるファイル転送は今後の実装として挙げられている。

関連情報

GitHub(doominator42/ZeroKVM)

FabScene編集部

FabScene編集部