Linux Kernel 2.4 Documentation:
/usr/src/linux/Documentation/serial-console.txt
serial-console.txt
Linux シリアルコンソール
[プレインテキスト版]
- 原著作者: Miquel van Smoorenburg <miquels@cistron.nl>
- 翻訳者: 川崎 貴彦 <takahiko@hakubi.co.jp>
- バージョン: 2.4.0
- 翻訳日時: 2002/02/07
Linux シリアルコンソール
シリアルポートをコンソールとして使用するためには、その機能をサポート
するようにカーネルをコンパイルしなければなりません ――デフォルトでは、
この機能はカーネルに組み込まれません。PC スタイルのシリアルポートの
場合は、"Standard/generic (dumb) serial support" に続く設定オプションを
有効にします。シリアルサポートは、モジュールとしてではなく、常駐イメージ
としてカーネルに組み込む必要があります。
コンソール出力として複数のデバイスを指定することも可能です。コンソール
出力に使用するデバイスは、新しく用意されたカーネルコマンドラインオプ
ションを用いて選択することができます。
このオプションの形式は次のとおりです。
console=device,options
device: tty0: フォアグランド仮想コンソール
ttyX: そのほかの仮想コンソール
ttySx: シリアルポート
lp0: 一番目のパラレルポート
options: ドライバによって異なります。シリアルポートの
場合は、そのポートのボーレート、パリティ、
ビット数を BBBBPN という形式で指定します。
BBBB はスピード、P はパリティ (n/o/e), N は
ビット数です。デフォルト値は 9600n8 です。
ボーレートの最大値は 115200 です。
カーネルコマンドラインには、複数の console= オプションを与えることが
できます。指定された全てのコンソールに対して出力がおこなわれます。
/dev/console をオープンした場合は、最後に指定されたデバイスが使用され
ます。たとえば、
console=ttyS1,9600 console=tty0
というオプションを与えた場合、/dev/console をオープンすると、現在の
フォアグランド仮想コンソールを取得できます。また、カーネルのメッセージは、
VGA コンソールと二番目のシリアルポート (ttyS1, すなわち COM2) の両方に
9600 ボーで出力されます。
各デバイスタイプ (シリアル、ビデオ) につき、一つのコンソールしか指定
できないので、注意してください。
コンソールデバイスが指定されていない場合は、システムコンソールとして
使用することが可能なデバイスのうち、最初に見つかったものを使用します。
この場合、システムは最初に VGA カードを調べ、その次にシリアルポートを
調べます。ですので、システムに VGA カードが無いときは、一番目のシリアル
ポートが自動的にコンソールになります。
/dev/console を使用するためには、新しいデバイスを作成する必要があります。
現在のところ、公式の /dev/console はキャラクタデバイスで、メジャー番号が
5, マイナー番号が 1 です。
/dev/ttyS1 (COM2) をコンソールとして使う例を挙げます。必要に応じて、
サンプル中の値を変更してください。
1. /dev/console (実際のコンソール) と、/dev/tty0 (マスター仮想コン
ソール) を作成します。
cd /dev
rm -f console tty0
mknod -m 622 console c 5 1
mknod -m 622 tty0 c 4 0
2. LILO は、シリアルデバイスからも入力を受けつけることができます。
これは非常に便利な機能です。シリアルポートを使用するように
LILO を設定するには、lilo.conf のグローバルセクションで次の
ように指定します。
serial = 1,9600n8 (ttyS1, 9600 ボー、パリティ無し、8 ビット)
新しく構築し直したカーネル用のフラグを修正します。これも、
lilo.conf のカーネルセクションで指定します。
append = "console=ttyS1,9600"
4. システムのブート後にログインできるよう、シリアルポート上で getty を
走らせます。この設定をおこなうには、下記のような行を /etc/inittab に
追加します (正確な構文は使用する getty により異なります) 。
S1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
5. init と /etc/ioctl.save
Sysvinit は、stty 設定を /etc/ioctl.save に保存しています。シリアル
コンソールを初めて使用する場合は、その前にこのファイルを削除して
ください。なぜかというと、そうしないと、おそらく init はボーレートを
38400 に設定してしまうからです (38400 というのは仮想コンソールの
ボーレートです) 。
6. /dev/console と X
仮想コンソールに対して何かしらの処理を行いたいプログラムは、通常
/dev/console をオープンします。新規作成された /dev/console デバ
イスが仮想コンソールではない場合、エラー終了してしまうプログラムも
あります。そのようなプログラムは、VT インターフェースにアクセス
しようとしていて、かつ /dev/tty0 ではなく /dev/console を使用して
いるプログラムです。次のプログラムは、そのようなプログラムの例です。
Xfree86, svgalib, gpm, SVGATextMode
これらのプログラムの新しいバージョンでは、問題点は修正されるでしょう。
console= オプションを指定せずに (または console=/dev/tty0 を
与えて) ブートした場合、/dev/console は /dev/tty0 と同一に
なります。この場合は、全てがうまく動作します。
7. 謝辞
m68k, ppc, alpha にも対応するように 2.1.4x から 2.1.6x のパッチを
移植してくれたことを、Geert Uytterhoeven <geert@linux-m68k.org> に
感謝します。
Miquel van Smoorenburg <miquels@cistron.nl>, 2000 年 6 月 11 日
翻訳団体: JF プロジェクト <http://www.linux.or.jp/JF/>
翻訳者: 川崎 貴彦 <takahiko@hakubi.co.jp>
校正者: 野本 浩一 <hng@ps.ksky.ne.jp>
校正者: 幸田 章宏 <coda@post.kek.jp>
Linux カーネル 2.4 付属文書一覧へ戻る