Chapter 5. Linux カーネルの設定変更

Table of Contents
5.1. LILO を使った Linux カーネルの設定
5.2. GRUB を使っている Linux カーネルの設定
5.3. SYSLINUX を使っている Linux カーネルの設定

Linux カーネルは設定を変更し、 与えられた console パラメータを用いてシリアルコンソールを使うようにします。 console パラメータは繰り返し与えることができます。 その場合出力はすべてのコンソールに送られ、 入力は一番最後にリストしてあるコンソールから取得します。 この一番最後の console は Linux が /dev/console デバイスに使うものです。

console のパラメータ構文は Figure 5-1 に示してあります。

Figure 5-1. EBNF 記法によるカーネルの console 構文

console=ttyS<シリアルポート>[,<モード>]
console=tty<仮想端末>
console=lp<パラレルポート>
console=ttyUSB[<USBポート>[,<モード>]

<シリアルポート> はシリアルポートの番号です。 これは Figure 4-2 で定義してありますし、 Section 2.2 で説明しています。 この HOWTO の例では、 最初のシリアルポートを使い、 <シリアルポート>0 という値を与えています。 そして今度はこれが、カーネルパラメータに console=ttyS0 という値を渡しています。

ご自分の Linux 機で devfs デバイスファイルシステムを使っている場合、 最初のシリアルポートに対するカーネルパラメータは、 やはり ttyS0 になります。 これは、 この最初のシリアルデバイスが、 /dev/ttyS0 ではなく、 /dev/ttys/0 だとしても、 そうなります。

<モード> は、 Figure 2-7 で定義してあります。 さらに、Section 2.3 で説明しています。 この HOWTO の例で使用しているのは、 速度が 9600ビット毎秒、1 スタートビット、 データは 8 ビット、パリティ無し、1 ストップビット、 および CTS/RTS によるフロー制御無しです。 ですから <モード> には 9600n8 という値を与えています。 しかし、現在のカーネルにあるフロー制御のバグが修正された時は、 この HOWTO で、再度 9600n8r を推奨します。

<USBポート> には、 シリアルコンソールに使うシリアルポートを搭載している、 USB ドングル [1] のアドレスが指定できます。 例えば、 console=ttyS0,9600n8 というシリアルポートは、 USB のシリアルドングルに移すと、 console=ttyUSB0,9600n8 と書くことになります。 USB サブシステムがスタートするのはブートする過程の むしろ最後のほうなので、 USB サブシステムのロード 前に出たコンソールメッセージは失われます。

console パラメータを何も付けないと、 カーネルは /dev/tty0 という、 最初の仮想端末を使います。 ユーザーはキーボードで Ctrl-Alt-F1 と押して、この仮想端末を使用します。

お使いのコンピュータにビデオカードがあるなら、 それもコンソールで使えるように設定したらどうでしょうか。 カーネルパラメータの console=tty0 を使えばそうなります。

ビデオカードを搭載しており、‘COM1:’ という印のポートにシリアルコンソールも付いているコンピュータについては、 この HOWTO では次のカーネルパラメータをお奨めします。

Figure 5-2. ビデオカード付 PC で推奨するカーネルパラメータ

console=tty0 console=ttyS0,9600n8

カーネルメッセージは、最初の仮想端末とシリアルポートの両方に現れます。 ですが、init システムとシステムログ採取プログラムが出すメッセージは、 最初のシリアルポートにしか現れません。 ですから、付属のモニターを見ると、若干混乱するかもしれません。 マシンがブートして、それからハングするように見えるからです。 でもうろたえないで。 init システムはスタートしています。 でもその時は、シリアルポートにはメッセージを表示していますが、 付属モニターの画面には何も表示していないのです。 getty を設定していれば、 最終的には login: プロンプトが、付属のモニター上に現れます。

ビデオカードが付いていない PC については、 この HOWTO では次のようなカーネルパラメータを お奨めします。

Figure 5-3. ビデオカード無しの PC で推奨するカーネルパラメータ

console=ttyS0,9600n8

これらのパラメータは、ブートローダーがブートするカーネルに渡します。 次に、ご自分の Linux 機で使用しているブートローダーを設定し、 console パラメータをカーネルに渡すようにします。

Notes

[1]

USB ドングルに付けたシリアルコンソールは Linux のバージョン 2.5.7 以降のカーネルでのみ使用可能です。 2.5 シリーズのカーネルは開発者向けのバージョンであり、本番用 にすぐ使えるものではありません。