1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法

1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法 - 画像


コンピューターの低レベルな遠隔操作を可能にするソフトウェアとしてはIPMIやIntel AMTなどがありますが、そうした機能を搭載したハードウェアは高価になりがちです。ソフトウェアエンジニアのMichael Lynch氏は、Raspberry Piを用いて100ドル(約1万500円)以下でコンピューターの遠隔操作を実現する方法を開発し、その詳細やソフトウェアを公開しています。
TinyPilot: Build a KVM Over IP for Under $100 · mtlynch.io
https://mtlynch.io/tinypilot/
Lynch氏は自宅にソフトウェアテスト用のサーバーを設置していますが、時折作業を失敗してネットワークを遮断してしまったり、サーバーが起動しなくなったりするとのこと。普段はSSHでサーバーを操作しており、キーボードやマウス、モニターを接続していないため、障害が起こるたびに配線をやり直さなければならないとLynch氏は語っています。
Lynch氏は遠隔操作を可能にする方法としてiDRACやKVM over IPデバイスの購入を検討しましたが、いずれも導入に数万円の費用がかかってしまうため断念。1万円以下で購入できるRaspberry Piを使用してKVM over IPデバイスを自作することにしたとのこと。

1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法 - 画像


Lynch氏は遠隔操作に必要な「コンピューターが出力する画面のキャプチャ」を行う方法として、はじめに「LKV373」というHDMIエクステンダーの使用を検討しました。
Amazon | HDMIエクステンダー Receiver for 100m LKV373 Extender LYSB01H03VE40-CMPTRACCS | AGPTEK | 映像編集機

LKV373はリバースエンジニアリングによってHDMI信号の傍聴が可能となっており、信号をffmpegで扱えるようにするパッチも公開されています。これらのデバイスとソフトウェアを使って、Lynch氏はノートPCの画面をWindows上で表示させることに成功。

1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法 - 画像


しかし、この方法ではffmpegのフラグを調整しても遅延を800ミリ秒から短縮することができなかったとのこと。

1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法 - 画像


Lynch氏は次の方法として、HDMIをUSBに変換する以下のようなドングルの使用を検討。
Amazon.com: HDMI USB Video Audio Capture Card HD 1080P Video Record via DSLR,Camcorder,Action Cam for High Definition Acquisition, Live Broadcasting, Live Streaming (Black): Computers & Accessories

HDMIエクステンダーと比較してコンパクトであり、ケーブルを減らすことができましたが……

1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法 - 画像


遅延が7秒~10秒と、HDMIエクステンダーを使用した場合よりも遅延が大きくなってしまったとのこと。Lynch氏がUSBドングルによるキャプチャ方法の参考としたツイートでは、遅延が20ミリ秒と報告されているので、ffmpegのチューニングが必要だとLynch氏。

1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法 - 画像


次に、Lynch氏がffmpegの代わりにµStreamerというソフトウェアを使って画面のキャプチャを試してみると、USBドングルを使った場合の遅延が500ミリ秒まで大幅に改善。µStreamerはMotion JPEG形式でムービーをブラウザ上に表示するソフトウェアで、Raspberry PiによるKVM開発を行うPi-KVMプロジェクトにおいて、Maxim Devaev氏がC言語で記述した独自のエンコーダを搭載しており、Raspberry Piに最適化されているとLynch氏。

1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法 - 画像


Lynch氏がuStreamerの開発者であるDevaev氏にさらなるパフォーマンス改善の相談をすると、USBドングル自体がMotion JPEGによるストリーミングを行っていることが判明。µStreamerによる再エンコーディングを行わず、コンピューターからのストリームをそのままパススルーすると、遅延を200ミリ秒まで短縮することに成功したとのこと。

1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法 - 画像


Lynch氏は独自にブラウザ上から遠隔ホストのキーボード操作を行えるインターフェースを開発していましたが、そのインターフェースを画面出力と統合した「TinyPilot」を開発。TinyPilotを使うと、コンピューターの画面操作やキーボード入力を遠隔で行うことが可能になります。

TinyPilotによる遠隔操作を行うために必須の要素として、以下のハードウェアが要求されています。
・Raspberry Pi 4
・USB-C/USB-A変換ケーブル
・HDMI/USBキャプチャドングル
・microSDカード(Class10、8GB以上)
・HDMIケーブル
まずはRaspberry Pi OSをmicroSDにインストール。Lynch氏はインストールにRufusを使用しています。

1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法 - 画像


続いて遠隔操作したいコンピューターとRaspberry PiをSB-C/USB-A変換ケーブルで接続。このケーブルを経由してキーボードやマウスの信号をコンピューターに送信します。

1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法 - 画像


続いてドングルをRaspberry Piに接続し、ドングルからHDMIケーブルをコンピューターに接続。

1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法 - 画像


Raspberry Pi OSを起動し、下記コマンドを実行。このコマンドだけでセットアップがすべて完了するよう、Ansibleによる自動インストールが行われると説明されています。
curl -sS https://raw.githubusercontent.com/mtlynch/tinypilot/master/quick-install \ | bash -sudo reboot
ローカルネットワーク上の「http://raspberrypi/」にアクセスすると、TinyPilotの画面が表示され、コンピューターを遠隔操作することが可能になるとのこと。

1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法 - 画像


なお、TinyPilotによる遠隔操作に必要なハードウェアがすべて含まれ、ソフトウェアのセットアップまで完了しているツールセットも販売されています。
Order | TinyPilot
https://tinypilotkvm.com/order/

1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法 - 画像

ジャンルで探す