$Id: 0readme.txt,v 1.1 2004/12/23 12:54:16 kaiya Exp kaiya $ SJIS システムスピーカーを鳴らすだけのデバイスドライバーと そのサンプルプログラム 【ドライバーのコンパイル法】 gcc -D__KERNEL__ -DMODULE -I/usr/src/linux/include -O -c os2004beep.c で os2004beep.o を作る. make でもできる. 【ドライバーのインストール法】 ルートになる. make init ででもできるが, /sbin/insmod os2004beep.o でドライバをOSに追加する. grep os2004 /proc/devices で,本デバイスドライバのメジャー番号を得る. 例えば, 254 os2004 など. mknod /dev/sakana c 254 0 等で対応するデバイスファイルを作る. デバイスの名前,マイナー番号は適当で良いか後述のサンプルでは, /dev/sakana だとおもってコードがかいてある. chmod 666 /dev/sanaka として,一般ユーザーからも本デバイスをアクセスできるようにする. 実装されているシステムコールは,open, close だけである. openするとブザーが鳴り出し,closeすると止まる. ドライバは単にブザーが対応付いていると思われるI/Oポートに 値を読み書きするだけである.読み書きには,ioctl のみを使う. 【ドライバーの削除法】 ルートになる. make cleanupでもOKだが, 当該のデバイスファイルを消す rm -f /dev/sakana とか. OSからデバイスドライバを削除する. /sbin/rmmod os2004beep とか. 【サンプルの使い方】 gcc sample.c で a.out ができる.実行すると, ブザーが1秒おきに2秒間,三回鳴る,うるさいかも. 【注意】 Kernel 2.4.9と2.4.10と2.4.18のAT互換機でしか試してません. 2.4.19ではコンパイルさえできない?!詳細はよくわかりません. ラップトップ(ノートパソコン)で動くかどうかは?です. デバイスドライバとは何なのかを理解するための教育用コードです. 無保証・危険です. 【2005年度受講生の注意】 kernel 2.4.18-1 の場合. どうも コンパイル時には, -I/usr/src/linux/include が必要, 通常のヘッダー置き場である /usr/include/ にも同じ名前のファイルが あるみたいだけど利用不可. 尚,テストは通常のAT互換機でしか行っておらず, SRX7を含むノートパソコンでは行ってません. (というか実機がないので行えない.)