{{category Raspberry Pi,nolink}}Raspberry Pi を用いた KVM over IP。 !!!Pi-KVM Raspberry Pi を用いた KVM over IP で、4 および Zero (2) W 用に Arch Linux ARM をベースにしたイメージが公開されている。 画面は、USBに接続したHDMIキャプチャディバイスか、カメラ用のCSIで取得され、操作は、USB Type-C の OTG で行われる。 電源供給も Type-C で行われるため、接続したPCから必要な電力が供給できない場合、スプリッタなどを用意/DIYする必要がある。 また、CD-ROM または Flash Drive をエミュレーション、ATX 制御(電源・リセット スイッチ、パワー・HDDアクセス ランプ)、VNCサーバ などの機能も用意されている。 CSIを利用した場合、H.264 エンコーディングと P2P接続とUDPで WebRTC によるビデオ転送が利用できる。 これにより、トラフィックの削減、ネットワークの負荷軽減が可能になる。 (2021.06.10 以降のビルドではデフォルトで使用可能になっている) *Pi-KVM **https://pikvm.org/ **https://docs.pikvm.org/ **https://github.com/pikvm/pikvm !!!セットアップ !!イメージファイルのダウンロード サイト https://pikvm.org/download/ から、適切なプラットフォームのイメージを取得する。 Pi 4 は、CSI bridge を利用するか、USB dongle を利用するかで分かれている(Pi Zero (2) W は、CSI bridge のみ)。 !!イメージファイルの書き込み 取得したイメージファイルの圧縮を展開し、SDカードに書き込む。 SDカードは、16GB クラス10 以上を推奨。 書き込みは balenaEtcher や Raspberry Pi Imager などを利用する。 !!Wi-Fi の設定 SDカードのFAT32領域に pikvm.txt と言うファイルに WiFi の設定の記述を追加する。 初回起動の場合、「FIRSTBOOT=1」の行がすでにあるので消さない。 FIRSTBOOT=1 WIFI_ESSID="mynet" WIFI_PASSWD="p@s$$w0rd" そうすると、 /etc/systemd/network/wlan0.network (NICの設定)と /etc/wpa_supplicant/wpa_supplicant-wlan0.conf (ESSIDの設定)が作成される。 !!IP-KVM へアクセス(Web UI) ブラウザから Pi-KVM を入れたRaspberry Pi にアクセスする(初期設定では https://pikvm/ )。 ログイン画面となるので ID/PW を入力する(初期設定では admin/admin )。 !!IP-KVM へアクセス(SSH) SSH クライアントで、Pi-KVM を入れたRaspberry Pi にアクセスする(初期ユーザは root/root )。 !!パスワード変更 SSH で接続するか、Web UI のターミナルで操作する(Web UI の場合、'''su -''' コマンドで root になってから行う)。 # rw # passwd root # kvmd-htpasswd set admin # ro ※PiKVM は読み取り専用でマウントされているので、rw で読み書き可能にスイッチ、ro で読み取り専用に戻る必要がある。 !!アップデート これは、該当機能が必要な場合のみに推奨される。 それ以外の場合は、物理的にディバイスの近くにいて、回復手段として SDカード を作り直せる場合のみに実行する。 PiKVM OS は Arch Linux ARM がベースになっており、pacman コマンドで更新ができる。 # rw # pacman -Syu # reboot pacman は、ロールバックできるように古いバージョンが保存されている。 更新し、すべての機能の確認が終わったら、SDカードの容量を圧迫しないように、クリアする。 # rw; rm -rf /var/cache/pacman/pkg; ro !!!設定変更 PiKVM の構成ファイルは /etc/kvmd ディレクトリにほとんどある。 編集が推奨されないファイルについては、読み取り専用となっている。 /etc/kvmd/main.yaml は、プラットフォーム構成を定義するため編集しない。 設定を上書きするには、 /etc/kvmd/override.yaml を使用する。 また、/etc/kvmd/meta.yaml で、ホストに関する情報を設定できる。 すべてのパラメーターの完全なリストは、'''kvmd -m''' コマンドで確認・表示できる。 !!ホスト名を変える # rw # hostnamectl set-hostname yournewhostname.domain # ro # reboot. !Web UI に表示されるホスト名を変える 設定ファイル /etc/kvmd/meta.yaml を修正する。 server: host: localhost.localdomain !!PiKVM の認証を無効にする 設定ファイル /etc/kvmd/override.yaml を修正する。 kvmd: auth: enabled: false * https://docs.pikvm.org/faq/#first-steps ** How do I completely disable authorization in PiKVM? !!Web UI の ATX機能を無効にする 設定ファイル /etc/kvmd/override.yaml を修正する。 kvmd: atx: type: disabled * https://docs.pikvm.org/faq/#first-steps ** I don't need ATX functions. How do I disable this in the Web UI? !!Mass Storage Drive を無効にする 設定ファイル /etc/kvmd/override.yaml を修正する。 kvmd: msd: type: disabled * https://docs.pikvm.org/msd/#disable-msd !!Wake-on-LAN (one host) 設定ファイル /etc/kvmd/override.yaml を修正する。 kvmd: wol: mac: ff:ff:ff:ff:ff:ff # ip: 192.0.2.4 # 255.255.255.255 By default # port: 9 # By default * https://docs.pikvm.org/wol/#simplified-method-one-host !!HDMI Audio (PiKVM v3 HAT only) HDMIでオーディオもキャプチャする。 PiKVM V3 ディバイスのみのサポートされ、WebRTC モードでブラウザに送信される。 + PiKVM v3 HAT の '''Audio capture''' ジャンパーを外している場合は戻す。 + コンフィグ '''/boot/config.txt''' から、'''dtoverlay=tc358743-audio''' の行も削除している場合は戻す。 + '''pacman''' コマンドで、システム・パッケージをアップデートしておく。 + janusの設定 '''/etc/kvmd/janus/janus.plugin.ustreamer.jcfg''' にオーディオの設定があることを確認する(ドキュメントだと追加しろ、だけど 2022/11/16 のイメージ (kvmd Ver.3.183、streamer Ver.5.34) だとすでに入っていた)。 + '''kvmd-edidconf --set-audio=yes''' のコマンドを実行して、HDMI EDID でオーディオを有効にする。 [root@pikvm ~]# cat /etc/kvmd/janus/janus.plugin.ustreamer.jcfg video: { sink = "kvmd::ustreamer::h264" } audio: { device = "hw:0,0" tc358743 = "/dev/kvmd-video" } [root@pikvm ~]# [root@pikvm ~]# kvmd-edidconf Manufacturer ID: LNX Product ID: 0x???? (?????) Serial number: 0x???????? (??????????) Monitor name: PiKVM Basic audio: no [root@pikvm ~]# kvmd-edidconf --set-audio=yes Manufacturer ID: LNX Product ID: 0x???? (?????) Serial number: 0x???????? (??????????) Monitor name: PiKVM Basic audio: yes [root@pikvm ~]# * https://docs.pikvm.org/audio/