Linux カーネルは設定を変更し、 与えられた console パラメータを用いてシリアルコンソールを使うようにします。 console パラメータは繰り返し与えることができます。 その場合出力はすべてのコンソールに送られ、 入力は一番最後にリストしてあるコンソールから取得します。 この一番最後の console は Linux が /dev/console デバイスに使うものです。
console のパラメータ構文は Figure 5-1 に示してあります。
<シリアルポート> はシリアルポートの番号です。 これは 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 パラメータをカーネルに渡すようにします。
[1] | USB ドングルに付けたシリアルコンソールは Linux のバージョン 2.5.7 以降のカーネルでのみ使用可能です。 2.5 シリーズのカーネルは開発者向けのバージョンであり、本番用 にすぐ使えるものではありません。 |