home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

技術/BSD/FreeBSDでのシリアルコンソール使い方メモ

技術/BSD/FreeBSDでのシリアルコンソール使い方メモ

技術 / BSD / FreeBSDでのシリアルコンソール使い方メモ
id: 890 所有者: msakamoto-sf    作成日: 2011-01-07 11:40:19
カテゴリ: BSD 

一次資料:

DDB関連のトピック以外はGENERICカーネルで使える。もし複数のシリアルポートを使い分けたり、通信速度を変更したい場合は上記一次資料を参考に設定ファイルの変更やカーネル再構築が必要となる。

とりあえずCOM1で9600bpsのままお手軽に出来ればオッケー、みたいなノリでメモ。

起動時のカーネルメッセージをシリアルポートに出力したい or DDBをシリアルポートで制御したい

FreeBSD 6.0-RELEASE環境で、一番お手軽で準備不要なのはboot時に"-h"オプション付ける方法。

boot -h

起動時のカーネルメッセージが物理コンソールとシリアルポートの両方に出力される。

DDBが起動するときも、物理コンソールとシリアルの両方から使えるので便利。つまり、「うっかりシリアルポートに接続しないでpanicしちゃった」時も、物理コンソール側からDDBを制御できるので安心。もちろんシリアルポートに端末を接続してれば、そちらからもDDBを制御できるのでなお便利。

FreeBSD 6.0-RELEASEでは、GENERICカーネルのhintsで

hint.sio.0.flags="0x10"

が定義済み。あとは"-h"オプション使うなり、

set console="comconsole"

を/boot/loader.confに設定する or boot時のプロンプト上から直接設定するなりすればOK。

ただし、set console="comconsole" だと物理コンソールに起動時メッセージの出力とかDDBの制御が渡らなく
なってしまうので、うっかりシリアルポートに端末を接続するのを忘れたとき「ouch!!」ってなっちゃいそう。

ちなみにGENERICカーネルで"-h"によりシリアルポートに出力できるのは起動時のカーネルメッセージまで。DDBはGENERICカーネルでは当然使えない。
DDBも使おうと思ったらDDBオプション有効にしてカーネル再構築が必要。

bootメニューの段階でシリアルポートを使いたい

"/boot"をマウントしたパーティションのルートディレクトリに、"boot.conf"という名前のファイルを作り、そこに

-h
-D
-P

のいずれかを書きこむ。"-h"だとシリアルポートにだけbootメニューやカーネルメッセージが出力される。"-D"ならシリアルポートと物理コンソールの両方からbootメニューが使えて、カーネルメッセージも出力される。"-P"だとキーボードの有無がチェックされる。

個人的には、キーボードがあろうとなかろうと、シリアルと物理、両方あれば両方使う、どちらか無ければ有るほうが使えれば良い、そういうケースが多いと思うので、"-D"が好み。

これらのオプションを二つ以上組み合わせたい場合の"boot.conf"は、

-D -P

のように分けても良いし、

-DP

のようにしても良い。

シリアルコンソールからログインしたい

/etc/ttysファイルの "ttyd"(FreeBSD 8.0以降は"ttyu")端末のエントリを "off" から "on" に書き換える。

ttyd0  "/usr/libexec/getty std.9600"   dialup  off secure
→
ttyd0  "/usr/libexec/getty std.9600"   dialup  on secure

これでシリアルポート用のgettyがブート時に起動され、ログインプロンプトがシリアルコンソールに表示されログイン可能となる。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2011-01-07 11:47:28
md5:fe9b513a622f99cd0b185767cea460b8
sha1:999e1e896e5b9dc3c53ed339c3ab115e3757fa18
コメント
コメントを投稿するにはログインして下さい。