2008-04-19から1日間の記事一覧

module_init(), module_exit() をみる

モジュールのロード/アンロードで使われているらしい module_init(), module_exit() をみる。 /usr/src/linux-2.6.16/include/linux/init.h をみる /** * module_init() - driver initialization entry point * @x: function to be run at kernel boot time …

file_operations登録方法をみる

エントリポイント登録例 - fs.hの例 エントリポイント登録の様子が fs.hにあったので書いておく。 この方法は、定石のようす。 static struct file_operations __fops = { \ .owner = THIS_MODULE, \ .open = __fops ## _open, \ .release = simple_attr_clo…

物理IRQの割り当てを確認する

/proc/interruptsをみてみる。 ふむふむふむふむ。 まんなかの、CPU0の数字はなんだろう? $ cat /proc/interrupts CPU0 0: 2297185731 XT-PIC timer 1: 73621421 XT-PIC i8042 2: 0 XT-PIC cascade 5: 1 XT-PIC parport0 8: 1 XT-PIC rtc 9: 1015928 XT-PIC…

物理I/Oポートの割り当てを確認

/proc/ioportsをみてみる。 ふむふむ。 $ cat /proc/ioports 0000-001f : dma1 0020-0021 : pic1 0040-0043 : timer0 0050-0053 : timer1 0060-006f : keyboard 0070-0077 : rtc 0080-008f : dma page reg 00a0-00a1 : pic2 00c0-00df : dma2 00f0-00ff : fp…

file_operations構造体を確認する

この時点でこれを書くのは、飛び級かもしれないけど 必要であれば、あとで埋めていこう。 file_operations構造体をみる。 自分の環境だと /usr/src/linux-2.6.16/include/linux/fs.h ディレクトリは適宜、それぞれの環境に 置き換えればよいはず。 /* * NOTE…

デバイスドライバ定義リストを確認する

/proc/devicesをみると キャラクタ型デバイスとブロック型デバイスの 定義リストを確認することができる。 デバイスごとに、固有の番号が振られている。 これを使っていくことに。 あるいはドライバを自作するときに これとかぶらないようにしていくはず。 $…

helloモジュール ローデッド

lsmodでかくにん $ su # insmod hello.ko で helloモジュールをロードしたあとに lsmodで確認した結果。 Vine Linuxで。 ちゃんと helloありますね。 $ lsmod Module Size Used by hello 5504 0 nfsd 212868 13 exportfs 9600 1 nfsd lockd 61320 2 nfsd nfs…

Linuxカーネルコーディング規約

http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.6/CodingStyle.html