8.5. デバイスノードを作る

Note: FreeBSD 5.0 以降を動かしているなら、 この節を飛ばして構いません。そのバージョンでは devfs(5) を用いて、ユーザに意識させずにデバイスノードを割り当てています。

カーネル内のほとんどすべてのデバイスは対応する “node” エントリが /dev ディレクトリにあります。これらのノードは普 通のファイルのように見えますが、実際にはプログラムがデバイスに アクセスするのに用いるカーネル内への特別なエントリです。 シェルスクリプトである /dev/MAKEDEVはオペレーティング システムを最初にインストールする時に実行され、サポートされてい る大部分のデバイスのノードを作ります。しかし、 すべての ノードが作られるわけではありませんので 新しいデバイスのサポートを加える時は対応するエントリがこのディ レクトリにあるかどうか確認してもしなければ、作ってください。 以下に例を示します。

IDE CD-ROMのサポートをカーネルに加えるとします。次の行 を加えます。

device acd0

これにしたがって、/devディレクトリに acd0 で始まるエントリをさがしてください。 1文字が後ろにつくかもしれません。 後ろについた文字が c であるか、先頭に r のつくエントリは “raw” デバイスを示します。 それらのファイルがないことが明らかになったとします。そこで /dev ディレクトリに移動して次のようにタイプします。

# sh MAKEDEV acd0

スクリプトの実行が終ったら /devacd0cracd0c エントリがあることを確認してください。これによ り正しく実行されたことがわかります。

サウンドカードの場合、以下のコマンドで対応する エントリが作成されます:

# sh MAKEDEV snd0

Note: サウンドカードのようなデバイスのノードを作る場合で、もし他 の人がマシンにアクセスするようであれば、そのデバイスを /etc/fbtab ファイルに追加して外部からのアクセスから 保護するのが望ましいでしょう。このファイルの詳細については fbtab(5) を参照してください。

GENERIC に含まれていないデバイスはエントリがありませんから、以上 の簡単な手順をおこなうことになります。

Note: すべての SCSI コントローラは同じ /dev の エントリを使用しますのでノードを作る必要はありません。 またネッ トワークカードと SLIP/PPP 疑似デバイスは /dev にはエント リがありませんのでこれらについても作る必要がありません。