kernel に組み込まれているほとんどのディバイスは, /dev
ディレ
クトリにある, 「ディバイス スペシャル ファイル」を介してアクセスされ
ます. sio
ディバイスの場合は, 着信用の /dev/ttyd?
およ
び, 発信用の /dev/cua0?
が利用されます. さらに, FreeBSD の
1.1.5 以降では, 初期化ディバイス (/dev/ttyi?
と
/dev/cuai0?
)およびロッキング ディバイス (/dev/ttyld?
と
/dev/cual0?
) も合わせて利用されます. 初期化ディバイスは, 通信
ポートがオープンされる度に, そのポートの初期設定を行うために使われます.
たとえば, CTS/RTS
によるフロー制御を行うモデムが接続されてい
る場合の crtscts
などのパラメータの初期化が行われます. ロッキング
ディバイスは, ポートの設定をロックし, 他のユーザやプログラムにこれらを
変更されることのないようにするために利用されます. 通信ポートの設定, 初
期化とロックおよび設定の変更に関しては, それぞれ termios(4)
,
sio(4)
と stty(1)
のマニュアルをご覧ください.
ディバイス スペシャル ファイルの管理は, ディレクトリ /dev
にあるシェル スクリプト MAKEDEV
によって行います. (FreeBSD
1.1.5 の MAKEDEV(8)
のマニュアルの COM
ポートに関する記述は,
かなりいい加減なので無視してください. ) MAKEDEV
を使って,
COM1:
(ポート 0) をダイアルアップのポートとして利用するためのディ
バイス スペシャル ファイルを作るには, /dev
に cd
して
から, MAKEDEV ttyd0
と実行してください. 同様に, MAKEDEV
ttyd1
とすることで, COM2:
(ポート 1) 用のディバイス スペシャル ファイル
を作成することができます.
MAKEDEV
は, /dev/ttyd?
のディバイス ファイルだけでなく,
/dev/cua0?
(および FreeBSD 1.1.5 以降では総ての初期化ディバイ
スとロッキング ディバイスのスペシャル ファイル) も作成します. さらに,
もしシリアル端末用のスペシャル ファイル/dev/tty0?
が存在すれ
ば, それらの削除も行います.
ディバイス スペシャル ファイルの作成後, これらのファイルのパーミション
が適切に設定されていて, これらのディバイスを利用してもよいユーザのみが
読み書きできるようになっていることを確認してください. (特に
/dev/cua*
のパーミションには注意を払ってください. ) この確認
を怠ると, 一般のユーザがあなたのモデムを使うことができるようなことにな
りかねません. デフォルトの /dev/cua*
のパーミションは, 以下の
ようになっていて, たいていの場合適切なものだと思います.
crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cua01
crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuai01
crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cual01
上の設定では, ユーザ uucp
と, グループ dialer
に属するユーザ
が発信用のディバイスを利用できます.