サーバーには遠隔管理用の回路が別に載っていて、本体が起動する前の画面からネットワーク越しに操作できる。ところが自宅のラックに並ぶミニPCにはそれがない。シリアルポートも出ておらず、基板上の端子すら使えないことが多い。起動が途中で止まったときやBIOSを直したいときは、そこまで歩いてキーボードとモニターをつなぐしかなかった。morpheuslord氏が公開した「PICOTTY」は、その穴をRaspberry Pi Picoで埋める。
構成は単純だ。対象のマシン1台につきPicoを1枚、USBポートへ挿す。PicoにはWIZnetのW5100S Ethernet HATを重ね、有線で管理用のネットワークへつなぐ。全体をまとめるハブはRaspberry Pi Zero 2 Wが1台で、ブラウザーから開く画面を出す。PicoとEthernetが一体になったW5100S-EVB-Picoを使えば、基板1枚で済む。
各ノードは対象からUSBキーボードとして認識される。だからBIOSでもGRUBでも起動途中でもOSの上でも、文字を打ち込める。それと並行して対象のシリアルコンソールを読み取り、出力をブラウザーへ流す。画面には全ノードの状態と個別のコンソール、キー操作、繰り返し使う手順をまとめたマクロ、複数ノードへの一括コマンド、イベントの履歴が並ぶ。記録はハブのSQLiteに残る。再起動はシリアルからのrebootのほか、Ctrl+Alt+DelとMagic SysRqの3通りを用意した。出力を待ちながら次の操作へ進む自動化の仕組みや、ファームウェアを無線経由で更新する機能も備える。
同氏が繰り返し断っているのは、これがKVMではないという点だ。映像は一切扱わない。読み取りは対象側にシリアルコンソールが設定されていることが前提で、設定がなければノードは文字を打てるだけの、画面の見えないキーボードになる。キーボードの配列もノード側のファームウェアが持つため、US配列以外の機器では設定を合わせないと記号が化ける。生のシリアルを外へ出す機能は認証のないTCPポートになるので、既定では無効にしてある。使う場合も管理用ネットワークの内側に留めるよう求めている。設計データにはケースの3Dデータも含まれる。