KVMチュートリアル 03 — 高度な機能
対象: 中級〜エキスパート — パワーユーザー向け機能と設定
1. 環境設定システム
ビデオ
- 解像度とフレームレート — 優先キャプチャ設定
- メディアバックエンド — FFmpeg、GStreamer(Linux)、または Qt Multimedia(Windows)
- ハードウェアアクセラレーション — VAAPI(Intel/AMD)、V4L2-M2M(Raspberry Pi)
- アスペクト比とスケーリング — カスタム比率、Stretch/Fit/Fill
オーディオ
- 有効 — ターゲットからのオーディオキャプチャを切り替え
- 入力/出力デバイス — ソースと再生デバイスを選択
ターゲット制御
- マウスモード — Absolute、Relative (HID)、Relative (Events)
- マウスイベントスロットル — 30〜1000 イベント/秒
- キーボードレイアウト — ターゲット OS と地域レイアウト
- キーリピート間隔 — キー長押し時のリピート速度
- カーソル自動非表示 — ビデオ領域上でホストカーソルを非表示
ログ
- ログレベル — Debug、Info、Warning、Error
- ファイルへのログ出力 —
~/Documents/openterface.log(macOS)または設定パス(Qt) - シリアルログ — 別途のシリアル通信ログ
2. EDID 管理
EDID とは?
EDID(Extended Display Identification Data)は、KVM デバイスがターゲットに送信して表示能力 — 対応解像度、リフレッシュレート、ベンダー情報 — を伝えるデータです。KVM は「仮想モニター」として動作するため、EDID がターゲットが出力する解像度を決定します。
EDID 表示名の編集
KVM デバイスがターゲットに報告する表示名を変更できます。この名前はターゲット OS の表示設定に表示されます。
注意: 現在は表示名の編集のみサポートされています。解像度の編集とカスタム解像度エントリはまだ利用できません。
アクセス: Settings > EDID Display Name Editor(macOS)または Device > Update Display Settings(Qt)
使用例
- ターゲット OS 設定で ディスプレイを識別
- マルチモニター構成で KVM ディスプレイを区別する カスタム命名
3. マクロシステム(macOS)
マクロは、ツールバーのマクロパネルからトリガーできる、保存済みのキーボード操作シーケンスです。
キーシーケンス形式
修飾キータグ: <CTRL>、<SHIFT>、<ALT>、<CMD>(ターゲット OS に応じて Cmd/Win/Super にマップ)
特殊キー: <ESC>、<BACK>、<ENTER>、<TAB>、<SPACE>、<LEFT>、<RIGHT>、<UP>、<DOWN>、<HOME>、<END>、<DEL>、<PGUP>、<PGDN>、<F1>–<F12>
遅延: <DELAY05s>、<DELAY1S>、<DELAY2S>、<DELAY5S>、<DELAY10S>
例
AI 支援生成
マクロエディターの Magic ボタンは、自然言語からマクロを生成します。やりたいことを説明すると、AI がキーシーケンスを生成します。
検証
テスト後、マクロを verified(検証済み)としてマークします。検証済みマクロのみが AI エージェントの自律実行に利用できます。
4. スクリプトツール(Qt)
AutoHotKey に着想を得たスクリプト言語で、ターゲット上のキーボードとマウス操作を自動化します。
開き方
メニュー: Device > Script Tool
コマンド
| Command | Description | Example |
|---|---|---|
Sleep |
実行を一時停止 | Sleep 1000 |
Send |
キーストロークを送信 | Send Hello World |
Click |
マウスクリック | Click 100 200 |
SetCapsLockState |
CapsLock を切り替え | SetCapsLockState On |
FullScreenCapture |
スクリーンショット | FullScreenCapture "/tmp/shot.png" |
修飾キープレフィックス
^ = Ctrl、+ = Shift、! = Alt、# = Win
5. ファームウェア更新
更新のタイミング
- 新しいハードウェア機能
- バグ修正
- 互換性の改善
更新手順
- Firmware Update Tool を開く(macOS では Settings > Firmware Update Tool、Qt では Device > Update Firmware)
- ツールがネットワークから最新バージョンを確認
- 書き込み操作中に進捗を追跡
- 更新中はデバイスを切断しないでください
リカバリ
- デバイスの電源を維持
- Firmware Update Tool を閉じて再度開き、再試行
- デバイスが応答しない場合は Serial Reset Tool を使用
6. Serial Reset Tool
アクセス: Settings > Serial Reset Tool(macOS)または Device > Factory Reset HID Chip(Qt)
次の場合に使用:
- ファームウェア更新失敗後にデバイスが不明な状態
- HID チップが応答しない
- デバイスを転売する前の準備
7. 診断(Qt)
メニュー: Device > Device Diagnostics
ハードウェアテストを順次実行:
- シリアル接続テスト
- ターゲット USB ステータス
- 工場出荷時リセットテスト
- 高/低ボーレートテスト
- ストレステスト(高速コマンド、成功率を測定)
- プラグアンドプレイテスト(USB 切断/再接続検出)
実行後、Support Email Dialog から結果をエクスポートします。
8. AI チャットシステム(macOS)
ターゲット画面を分析し、操作を提案してキーボード/マウス操作を実行できる組み込み AI アシスタント。
チャットモード
| Mode | Description |
|---|---|
| Interactive | 質問してガイダンスを得る |
| Agentic | AI が自律的に計画し、多段階タスクを実行 |
| Guide | 一度に1つの指示を段階的に |
| Planner | 複雑なリクエストを構造化されたプランに分解 |
設定
Settings > AI Chat: API エンドポイント、キー(Keychain に保存)、モデル、ターゲットシステム(macOS/Windows/Linux など)
9. リモート制御(VNC/RDP — macOS)
Control > Connection Protocol から Hardware KVM、VNC、RDP モードを切り替え。
| Scenario | Mode |
|---|---|
| BIOS/UEFI、ネットワークなし、起動中、クラッシュしたターゲット | Hardware KVM |
| 高帯域幅のデスクトップ利用、Windows サーバー | VNC または RDP |
10. TCP サーバー(Qt)
ポート 12345 でリモート制御するための組み込み TCP サーバー。
コマンド
CHECK_STATUS、GET_LAST_IMAGE、GET_TARGET_SCREEN、SCRIPT_COMMAND
Python 例
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(("localhost", 12345))
sock.send(b"CHECK_STATUS\n")
print(sock.recv(4096).decode())
sock.close()
> **セキュリティ:** 認証、暗号化、レート制限はありません。信頼できるネットワークでのみ有効にしてください。
---
## iPadOS 専用機能
### Bluetooth 接続管理
iPadOS アプリは **Bluetooth Low Energy (BLE)** 経由で KVM-Go ドングルに接続し、キーボード/マウス HID 入力を行います:
- **自動接続:** デフォルトで有効。起動時、アプリは5秒間スキャンし、最も信号が強い `kvm*` デバイスに自動接続します。
- **再接続:** 接続が切れた場合、アプリは2秒間隔で最大3回再接続を試みます。
- **信号監視:** RSSI は2秒ごとに更新。BLE ボタンは信号強度(例: `-45 dBm`)と色インジケーターを表示: 緑(-50〜0 dBm)、オレンジ(-70〜-50 dBm)、赤(-70 dBm 未満)。
- **デバイススキャン:** 名前が `kvm` で始まるデバイス(大文字小文字を区別しない)のみリストに表示されます。
- **手動制御:** BLE 画面を開いてスキャン、接続、切断、または自動接続を無効化できます。
### 情報オーバーレイ
**Info** ボタンをタップすると、右上にリアルタイム入力ステータスオーバーレイが表示されます:
┌─ 入力ステータス ────────┐ │ マウス │ │ モード: Absolute │ │ 位置: 512.0, 384.0 │ │ ドラッグモード: Active │ │ スクロール: Inactive │ │ キーボード │ │ モード: Normal │ │ Caps Lock: OFF │ │ 修飾キー: Ctrl, Shift │ └─────────────────────────┘
オーバーレイはタッチ透過 — ビデオプレビューとの操作を妨げません。
### 画面向き補正
**Rotate** ボタンをタップして向き補正モードを切り替え: Normal、90° CW、180°、90° CCW。KVM-Go ドングルが非標準の向きで取り付けられている場合にビデオプレビューを補正します。回転はライブプレビューと保存済みキャプチャの両方に適用されます。
### アイドルタイマー無効化
アプリは使用中、アイドルタイマーを無効化して iPad 画面を **常時点灯** させ、ターゲット PC を監視中に iPad が自動ロックするのを防ぎます。
### ログシステム
アプリにはカテゴリベースのフィルタリングを備えた組み込み `Logger` があります:
| Category | Covers |
|---|---|
| `bluetooth` | BLE スキャン、接続、データ送信 |
| `mouse` | マウス入力、ジェスチャ検出、モード変更 |
| `keyboard` | キーイベント、修飾キー状態、複合キー |
| `camera` | ビデオ録画、スクリーンショット、写真キャプチャ |
| `ui` | タッチ処理、ジェスチャ認識、プレビューレイヤー |
| `general` | アプリライフサイクル、一般情報 |
コンソールノイズを減らすため、アプリソースでログを調整できます。
---
## 次のステップ
- **[トラブルシューティング →](04-troubleshooting.md)** — よくある問題と解決策
---
## Android 専用機能
### 設定パネル
Android アプリの設定パネル(メニューボタン ☰)にはすべての設定オプションが含まれます:
| Setting | Description |
|---|---|
| **Device** | 接続済み USB デバイスとステータスを表示。タップして選択または再スキャン。 |
| **Disconnect Device** | すべての USB 接続を安全に解放。抜く前に使用。 |
| **Baudrate** | シリアル通信速度: **115200**(デフォルト)または **9600**(低速、問題時用)。 |
| **Controls** | カメラの明るさ、コントラスト、色相スライダー。 |
| **Video Format** | 解像度とフレームレートセレクター。 |
| **Rotate/Flip** | 90° CW/CCW 回転、水平/垂直反転。 |
| **Screen Capture / Record Video** | スクリーンショットとビデオ録画。 |
| **Relative / Absolute / Drag** | マウス制御モードを切り替え。 |
| **About Device** | Android バージョンとアプリバージョン情報を表示。 |
### 設定の永続化
Android アプリはセッション間で設定を記憶します:
| Setting | Persisted? |
|---|---|
| マウス制御モード | はい |
| ビデオ形式(解像度、FPS) | はい |
| カメラパラメータ(明るさ、コントラスト、色相) | はい |
| キーボードレイアウト(US、JP、DE) | はい |
| ボーレート | はい |
| デバイス接続履歴 | はい |
アプリを再度開くと、前回の設定が復元されます。すべてリセットするには: Android 設定 → アプリ → Openterface → ストレージ → **データを消去**。
### 安全な切断
Android で KVM デバイスを抜く前に:
1. 設定パネルを開く
2. **Disconnect Device** をタップ(赤色表示)
3. アプリが USB 接続を解放するまで待つ
4. ケーブルを抜く
これによりデータ破損を防ぎ、ターゲットコンピュータがキーボード/マウスを正しく解放します。
### Android パフォーマンスのヒント
- **解像度を下げる** — 640×480 は 1920×1080 よりはるかに軽量
- **フレームレートを下げる** — 30fps は 60fps より帯域幅が少ない
- **他のアプリを閉じる** — スマートフォンのメモリを解放
- **高品質な USB OTG アダプターを使用** — 安価なアダプターは接続のボトルネックになることがある
- 開発チームはカメラパイプライン自体のレイテンシ低減に取り組んでいます