EN JA
DCONSCHAT(8)
DCONSCHAT(8) FreeBSD System Manager's Manual DCONSCHAT(8)

名称

dconschatdcons(4) へのユーザインタフェース

書式

dconschat [ -brvwRT1][ -e escape-char][ -h hz][ -C console_port][ -G gdb_port][ -M core][ -N system]

dconschat [ -brvwR1][ -h hz][ -C console_port][ -G gdb_port][ -a address][ -u bus_num] -t target_eui64

解説

dconschat ユーティリティは、ユーザがローカルまたはリモートシステムで dcons(4) (ダムコンソールデバイス) にアクセスする方法を提供するように設計されています。 dconschat ユーティリティは kvm(3) または firewire(4) を使用して、 dcons(4) と対話します、また TTY または TCP/IP の上のユーザと対話します。 firewire(4) を使用して、リモートの dcons(4) にアクセスするために、 -t オプションを使ってターゲット EUI64 アドレスを指定しなければなりません。物理的な DMA は、FireWire を通してアクセスされるターゲットマシンで有効にされるべきです。

dconschat ユーティリティと dcons(4) ドライバは、コンソールポートのために 1 つと別のリモート gdb(1) ポートのための 2 つのポートを使用して通信します。ユーザは、TTY、 telnet(1)gdb(1) を使用して、 dconschat にアクセスすることを想定されています。 -C-G オプションそれぞれを使用してコンソールと gdb(1) ポートのためのリッスン (聞く) ポートを指定することができます。ポート番号 0 は、現在の TTY (stdin/stdout) は TCP/IP の代わりに使用されるという特別の意味を持っています、負のポート番号はポートを無効にします。 pty(4) デバイスから類推して、 dcons(4) は、スレーブデバイスの役割をします。また、 dconschat は、 telnetd(8) でマスタデバイスの役割をします。

タイプされた文字は、通常 dcons(4) に直接転送されます。行の最初の文字として現れるエスケープ文字 (デフォルトは‘ ~’です) は、エスケープシグナルです。次の文字が、認識されます:

~.
接続を中止して、終了します。
~^G
dconschat が実行されている端末で kgdb を呼び出します。
~^R
リセットアドレスが設定 ROM に登録されているなら、FireWire を超えてターゲットをリセットします。
~^Z
dconschat プロセスを中断 (suspend) します。

次のオプションがサポートされています。

-b
gdb(1) ポートで Ctrl-C を ALT_BREAK (CR + ‘ ~’ + Ctrl-B) へ変換します。
-r
接続中に古いバッファを再生します。
-v
冗舌なデバッグ出力を行ないます。複数の -v は冗舌度を増します。
-w
localhost ではなくワイルドカードアドレスでリッスン (聞く) します。
-R
読み込み専用です。 dcons(4) バッファに何も書き込みません。
-T
不必要なバイトシーケンスを削除するために TELNET プロトコルのためのアドホックな回避方法を利用可能にします。 telnet(1) を使用して、利用者が dconschat にアクセスする場合、それが設定されるべきです。
-1
1 回限りです。利用可能なバッファを読み込み、それから終了します。これは -r オプションを意味します。
-e escape-char
エスケープ文字を指定します。デフォルトは、'~' です。
-h hz
ポーリングレート (割合) を指定します。デフォルト値は 100 です。
-C console_port
コンソールポートを指定します。デフォルト値は 0 (stdin/stdout) です。
-G gdb_port
gdb(1) ポートを指定します。デフォルト値は -1 (無効) です。
-M core
コアファイルを指定します。
-N system
/boot/kernel/kernel のようなシステムファイルを指定します。
-t target_eui64
64 ビットに拡張したターゲットのユニークな識別子を指定して、リモートの dcons(4) にアクセスするために FireWire (ファイヤワイヤ) を使用します。
-a address
dcons(4) バッファの物理的 I/O アドレス指定します。詳細に関しては、 dcons(4) を参照してください。このオプションが指定されない場合、 dconschat はターゲット上の構成 ROM からアドレスを得る試みをします。ターゲット上でこのオプションを省略するために dcons_crom(4) を利用可能にすることが想定されています。
-u bus_num
FireWire (ファイヤワイヤ) バス番号を指定します。デフォルトは 0 です。

関連ファイル

/dev/fwmem0.0
/dev/mem
/dev/kmem

使用例

リモートの dcons(4) のために FireWire (ファイヤワイヤ) で dconschat を使用するために、ターゲットの EUI64 を指定しなければなりません。オプションなしで fwcontrol(8) を実行することにより EUI64 を得ることができます。最初の EUI64 は fwcontrol(8) を実行するホストであり、バス中の他のものは次の通りです。

# fwcontrol 
2 devices (info_len=2) 
node           EUI64          status 
   1  77-66-55-44-33-22-11-00      0 
   0  00-11-22-33-44-55-66-77      1

もし利用者が ethernet アドレスとしてハードウェアを変更しなければ、EUI64 は変わりません。

これで、 dconschat を実行することができます。

# dconschat -br -G 12345 -t 00-11-22-33-44-55-66-77

getty(8)dcons(4) で実行している場合、ターゲットとログインプロンプトのコンソール出力を得ます。 DDBALT_BREAK_TO_DEBUGGER がターゲットのカーネルで利用可能になる場合、 ALT_BREAK (CR + ‘ ~’ + Ctrl-B) で DDB のためにブレークできます。セッションを終了するために、コンソールポートで CR + ‘ ~’ + ‘ .’をタイプします。

gdb(1) ポートの使用は、 /dev/cu* の代わりに TCP/IP を使用する以外はシリアルラインの向こう側のリモート gdb(1) とほとんど同じです。詳しくは The FreeBSD Developers Handbook (FreeBSD 開発者ハンドブック) の On-line Kernel Debugging Using Remote GDB (リモート GDB を使用するオンラインカーネルデバッギング) セクションと gdb(4) を参照してください。

% gdb -k kernel.debug 
(kgdb) target remote :12345

いったん gdb(1) がアタッチされ、 dconschat-b オプションを指定したならば、 gdb(1) で Ctrl-C をタイプしてデバッガにブレーク (中断) を起こさせます。

次のコマンドは、クラッシュダンプからコンソールログを得ます。

# dconschat -1 -M vmcore.0 -N kernel.0

telnet(1) を使用して、コンソールへのアクセスを望む場合は、次を試みてください。

# dconschat -rTC 5555 & 
# telnet localhost 5555

いくつかのマシンのコンソール出力をロギング (記録) し続けたいと思うかもしれません。 Ports コレクションの conserver-com は利用者を助けます。 conserver.cf に次の行を挿入します。

console local { 
 master localhost; 
 type exec; 
 exec /usr/sbin/dconschat -rh 25; 
} 
console remote { 
 master localhost; 
 type exec; 
 exec /usr/sbin/dconschat -rh 25 -t 00-11-22-33-44-55-66-77; 
}

作者

Hidetoshi Shimokawa <simokawa@FreeBSD.org>

バグ

このユーティリティは、現在開発中です。
February 11, 2003 FreeBSD