背景
開発用のミニPCをに自宅に置いて運用している中で、時々リモートからログインできなくなる事態が発生しました。そのたびに直接PCの電源を入れ直す必要があってとても不便なので、PCを遠隔で操作する手段を探していました。
サーバーPCにあるようなIPMI機能があればKVMや電源操作ができるのですが、一般的なミニPCに搭載されていません。そこで、この記事ではRaspberry Piを使ったKVMデバイスであるPiKVMを自作していきます。
PiKVMとは
PiKVMは、Raspberry Pi(ラズパイ)を使って既存のPCに遠隔操作機能を後付けできるオープンソースプロジェクトです。
できること
- リモートKVM機能
- ブラウザ上でPC画面をリアルタイム表示
- キーボード・マウスの遠隔操作
- 電源操作機能
- 遠隔から電源のオン/オフ/再起動が可能
- 電源ボタンの信号を直接制御することでPCの状態に関わらず操作可能
制御対象のミニPC
今回制御対象とするのはミニPCのBeelink Mini S12 Proです。
- CPU: Intel Alder Lake-N N100 (12世代・4C4T・ターボ時周波数 3.40 GHz)
- メモリ: DDR4 16 GB
- ストレージ: M.2 SSD 500 GB
必要部品リスト
PiKVMには複数のバージョンが存在しますが、今回はラズパイ4に対応している自作プラットフォームであるPiKVM V2を使います。
Raspberry Pi 4 Model B 2GB
- PiKVMの動作にはメモリ2GB版で十分とのこと
- ラズパイ5は動作対象外(HWエンコーダが無くなったため)
- 購入先
周辺部品
- ラズパイ用ケース:Geekworm製 Raspberry Pi 4 ケース (アルミ金属ケース)
- CSIのフラットケーブルが外に出せるもの
- 放熱性の高いアルミ製かファン付きのものを推奨
- HDMI-CSI ブリッジモジュール:Geekworm製 ラズパイ用HDMI入力モジュール
- TC358743チップ搭載
- USB-C Y字ケーブル:MOGOOD製 USB-Cスプリッタケーブル
- 電源供給とデータ通信の分離用
- USB-C to USB-A ケーブル(PC接続用)
- ラズパイ4用USB Type-C電源アダプタ
- MicroSDカード(16 GB以上)
電源制御回路用部品
(主に秋月電子通商で購入)
技術的な検討事項
USB Type-Cポートの接続
PiKVMでは、ラズパイをUSBデバイスとして動作させることでマウスやキーボードとしてPCに認識させます。この機能(USB OTG)を使うにはラズパイ4のType-Cポートを使うのですが、同じポートをACアダプタからの電源供給にも使っています。
そこで以下の写真のような、1つのType-Cを2つのType-C(電源供給・データ通信)に分けるY字ケーブルを使います。このケーブルは、タブレットやMacbookなどに充電器とUSBデバイス(Type-Cイヤホンなど)を同時に繋ぐ用途のケーブルとして売られているものです。(買ったやつは問題なかったが他だと相性問題があるかも)
このケーブルを次の図のように使うことで、ラズパイのUSB-Cポートを電源供給とOTGで同時に利用します。
graph LR B <--> PcUsb C <--> AC[USB-C 電源アダプタ] subgraph pc[制御対象PC] PcUsb[USBポート] end subgraph RasPi[ラズパイ4] RasPiC["USB-C ポート<br/>OTG・電源兼用"] end subgraph Splitter[USB-C Y字ケーブル] direction LR A[USB-C オス] A -- データ--> B[USB-C メス] A -- 電源 --> C[USB-C メス] end RasPiC <--> A
フォトリレー
電源制御回路に利用するフォトリレーについて、今回は秋月で安く買えるTLP592A(TOSHIBA)を使います。
公式と異なるフォトリレーを使用するため、念の為電流制限用の抵抗値を計算し直します。
条件:
- TLP592A(データシートより)
- 入力順電流(標準):7.5 mA
- 入力順電圧:1.15 V
- ラズパイ4
- GPIOピンの出力電圧:3.3 V
必要な抵抗を計算:
E5系列的に近い330 Ωを採用します。
実際の電流値:
この値はデータシートを見ると動作する値に収まっています。
ミニPCでの電源制御機能の利用
PiKVMの電源制御機能は、通常デスクトップPCのマザーボードから出ている電源ボタンの信号線を分岐して取り出して使用します。ミニPCではこの信号線が出ていないため、普通はこの機能を利用できません。
しかしどうしてもこの機能が使いたかったので、ミニPC側に改造を加えることで無理やりこの機能を使えるようにしました。詳細な手順は次の記事で解説します。
最後に
今回の記事では使用部品の説明まで完了したので、次回はそれらを使ってPiKVMの組み立て手順を解説します。