ローカルとシリアル
リモート SSH に加えて、アプリはまったく同じターミナルで 2 種類の ローカル セッションを実行します。ローカルシェル(デスクトップ)と シリアル/UART ポート(デスクトップと Android)です。どちらも他の SSH セッションと同じタブで、名前変更、独立したウィンドウへの切り離し、いつものようにテーマ設定ができます。
ローカルターミナル
ネイティブ PTY(pty4j)を基盤とする本物のローカルシェルです。サイドバーのローカルグループまたは + ランチャーから ローカルターミナル を選びます。
- 完全な PTY:ジョブ制御、色、
vim/htop、ウィンドウサイズ(SIGWINCH)がすべてシステムのターミナルと同じように動作します。 - ホームディレクトリでログインシェルを使って起動します。
- リモートセッションの隣の作業スペースとして最適です。SSH の往復がありません。
シリアル / UART
RS-232 / USB シリアル経由でデバイス(ルーターのコンソール、マイコン、Pi のヘッダー)と通信します。デスクトップでは jSerialComm を基盤としています。Android では USB-OTG 経由でアダプター(FTDI、CP210x、CH34x、PL2303、CDC-ACM の各チップ — root 不要)を接続し、接続時に表示される USB 許可のプロンプトを承認してください。
接続
- サイドバーのローカルグループ(または +)→ シリアルポート。
- ドロップダウンから ポート を選びます。隣の更新ボタンで接続されたポートを再スキャンします。
- ボーレート、データビット、パリティ、ストップビット、フロー制御 を設定するか、保存した プロファイル を読み込みます。
- 接続。セッションがターミナルタブとして開きます。
ターミナルの幅
シリアル回線はサイズのネゴシエーションを運びません(Telnet の NAWS も、SSH の window-change もありません)。そのため相手側は起動時のサイズのまま動き続けます — ほぼすべての getty、ブートローダー、デバイス CLI で 80 桁です。それでもターミナルは既定で ウィンドウの全幅 を使います。デバイスのカーソル移動がずれた位置に着地し始めたら — 入力した文字がプロンプトの 1 行上に現れるのが典型的な症状です — 接続フォームに 2 つの対処法があります。
- ターミナルの幅 → 従来 (80 桁) は、相手側が前提とする 80 桁にグリッドを固定します。
- ターミナルのサイズを送信 (stty) は、接続後とサイズ変更のたびに相手側で
stty rows <r> cols <c>を入力し、完全な Unix シェルがウィンドウに追従できるようにします。既定ではオフです — 相手がブートローダーや PLC の場合、ただのゴミデータを受け取るだけになるからです。
どちらの設定もプロファイルの一部として保存されます。
プロファイル
よく使うデバイス設定は名前付き プロファイル(例:Cisco console 9600 8N1)として保存し、再利用できます。シリアル設定には秘密情報が含まれないため、セキュアストアではなく通常の設定ファイルに保存されます。
再接続 は 同じ ポートを開き直します。そのため、ケーブルを差し直したりデバイスを再起動したりした後でも、ボーレートやパリティを入力し直さずにワンクリックでコンソールが戻ります。読み取りは(minicom のように)固定ブロックではなく到着順にストリーミングされます。
ブートログは画面クリア後も残ります。 シリアルコンソールはスクロールバックを保護します。clear、ログインプロンプトの前に画面を消す getty、ターミナルのリセットは、画面を消去する代わりに履歴へ保存します — U-Boot → カーネル → ログインの一連の流れ全体がスクロールで読み返せます。非常に長いブートには 設定 → スクロール履歴のサイズ を増やしてください。
ローカル PTY はデスクトップ専用です。シリアル はデスクトップと Android(USB-OTG 経由)で動作します。iOS にはどちらもありません — プラットフォームが提供できない項目はそこには表示されません。