DEVATTACH(8) — UNIX Programmer’s Manual
名称
devattach − 実行中の unix カーネルにデバイスドライバを組み込む
形式
/usr/sony/etc/devattach [ −av ] [ xx [ b bdev_major ] [ c cdev_major ] file ]
解説
devattach は、現在実行中のカーネルに、デバイスドライバのオブジェクトファイル file をロードして、新たなデバイスドライバ機能を組み込む (インクリメンタルロード)コマンドです。 この時、各パラメータによってデバイスドライバ名が xx、 ブロックデバイスメジャー番号が bdev_major、 キャラクタデバイスメジャー番号が cdev_major のデバイスとなります。 devattach コマンドを使えば、 通常使わないデバイスドライバをカーネルに組み込む必要がないために、 カーネルのサイズが小さくなって、メインメモリを有効に活用する ことができます。 また、カーネルをその都度生成せずに、新規のデバイスドライバをシステムに組 み込むむことができます。 例として、md デバイスドライバをカーネルに組み込む場合を示しまします。
/usr/sony/etc/devattach md b 2 c 10 このコマンドを実行すると、ブロックデバイス番号2に対して、 /sys/OBJ/md.o のブロックデバイス処理ルーチンが結び付けられ(devtab(5)参照)、 キャラクタデバイス番号 10 に対して、/sys/OBJ/md.o の キャラクタデバイス処理ルーチンが結び付けられます。 次に mknod コマンドで、ブロックデバイスとキャラクタデバイス各々の スペシャルファイルを作ります。 (NEWS-OS に標準実装されているスペシャルファイルを作る場合、 /dev/MAKEDEV スクリプトを使うと簡単です)
/etc/mknod /dev/md0a b 2 0
/etc/mknod /dev/rmd0a c 10 0
または
cd /dev
sh MAKEDEV md 以上の操作で、md デバイスドライバが使えるようになります。 (ただし、初期設定等が必要です) なお、オブジェクトファイルには、各処理ルーチンを設定した構造体が次のような グローバル変数として宣言されていることが必要です。
#include <sys/conf.h> struct bdevsw xxbdevsw ;
struct cdevsw xxcdevsw ; xxはデバイスドライバ名です。 md デバイスドライバの場合、それぞれの構造体の名前が xxbdevsw は mdbdevsw、xxcdevswはmdcdevsw となります。
−a /etc/devtab に記述されているすべてのデバイスドライバのインクリメンタルロードを試みます。
−v verbose、 インクリメンタルロード時に次のような情報を表示します。
デバイスドライバ名、オブジェクトファイル名、キャラクタデバイス名、 ブロックデバイス名、ロードアドレス、サイズ
関連ファイル
/etc/devtab
−a オプションを指定した時にインクリメンタルロードされる デバイスドライバのテーブル
/vmunix
unixのカーネルファイル
関連事項
devtab(5), mknod(8)
Building Kernels with Config
バグ
/vmunix 以外のカーネルファイルからシステムを立ち上げた場合、 devattach は失敗します。
NEWS-OSRelease 3.3