2.2. シリアルポートを選択する

2.2.1. シリアルポートの名前

Linux のシリアルポート名は、 UNIX の流儀に従っています。 ですから、 最初のシリアルポートは /dev/ttyS0 というファイル名で、 二番目のシリアルポートは /dev/ttyS1 等というようになります。

しかし IBM PC のやり方は違います。 この場合は、 最初のシリアルポートの名前は COM1: となり、 二番目のシリアルポートは COM2: 等々、というような具合です。 IBM PC/AT コンピュータとその後継機には、 一台あたりシリアルポートが 4 つまで搭載できます。

さらに大抵のブートローダーには、また別の命名規則があります。 最初のシリアルポートは 0、 二番目は 1、等々となります。

自分の Linux ディストリビューションで、 devfs というデバイスマネージャを使用している場合は、 シリアルポートには、さらにまた別の名前があります。 最初のシリアルポートは /dev/tts/0、 二番目のシリアルポートは /dev/tts/1 等々、というようになります。

結局、IBM PC のシャーシにあるシリアルポートは COM1: になっていますが、 それが Linux では /dev/ttyS0 となり、 devfs が使えるように設定している Linux では、それが /dev/tts/0 となります。 さらに多くのブートローダーでは、 ポート 0 になっています。

この HOWTO に載せている例では、 この最初のシリアルポート(訳注:/dev/ttyS0)を使っています。 というのは、ほとんどの読者が使いたいと思っているのが、 そのシリアルポートだからです。

2.2.2. コンソールのシリアルポート用割り込みが共有できない

シリアルポートをコンソール用に使うと、 そのシリアルポートは他のデバイスと割り込みを共有できなくなります。 IBM PC のデバイスは、 普通 Table 2-2 で示すように設置されています。 ですからもしコンソール用にシリアルポート /dev/ttyS0 を使う場合は、 PC にシリアルポート /dev/ttyS2 を設置しないようにして、割り込み 4 を共有しないようにして下さい。 /dev/ttyS2 が物理的に取り外せない場合は、 Figure 2-1 で示しているように、 setserial コマンドを使ってそのポートを無効にして下さい。

ソースコードを読んでいる限りでは、 割り込み共有の制約はたんに Intel Architecture-32 だけではなく、 すべてのコンピュータアーキテクチャにあてはまるように思えます。