10.3. Linux カーネルのバージョン 2.2

最近の Linux 2.2 カーネルは、 ビルドバラメータ とパラメータ構文が Linux のバージョン 2.4 カーネルと同じになっています。

初期のカーネルに関しては、1997年 4月に出た Linux Journal の36号にある、Francesco Conti が書いた 記事 を参照して下さい。 [1]

この記事にはカーネルにあてるパッチがいくつか載っていました。 以下に略記したように、 シリアルポートで利用できる速度範囲を広げるために、 このパッチは拡張しました。

/usr/src/linux/drivers/char/console.c の先頭で、 #defines を二つ追加して、 シリアルコンソールを使うようにしてください。

#define CONFIG_SERIAL_ECHO
#define SERIAL_ECHO_PORT 0x3f8  /* COM1 ポートアドレス */

あるいは、ttyS1 を使う場合は、次の行を追加してください。

#define CONFIG_SERIAL_ECHO
#define SERIAL_ECHO_PORT 0x2f8  /* COM2 ポートアドレス */

カーネルは、シリアルリンクの速度を 9600bps に想定しています。 別のビットレートを使うつもりなら、次の 2 行を探してください。

serial_echo_outb(0x00, UART_DLM); /* 9600 baud */
serial_echo_outb(0x0c, UART_DLL);

そして、 0x0cTable 10-1 に載っている値の中の一つに変えて下さい。


Table 10-1. IBM-PC/AT のシリアルポートのビットレートと、 そのビットクロックの除数

ビットレート除数
115200bps0x01
57600bps0x02
38400bps0x03
19200bps0x06
9600bps0x0c
4800bps0x18
2400bps0x30
1200bps0x60

Notes

[1]

訳注:この記事のタイトルは "Serial Terminal as Console" と なっています。URL は若干違っていて、 "http://linuxjournal.com/article.php?sid=2040" になっているようです。