Kernel2.4のLKMコンパイルメモ

昨日で言ったLKMの基本からメモ。

//hello.c
//ここのdefineを行わない場合は、
//コンパイル時に-DMODULEのように指定する必要がある。
#define MODULE
#define LINUX
#define __KERNEL__

#include <linux/module.h>
#include <linux/kernel.h>

MODULE_LICENSE("GPL");


int init_module(void)
{
   printk(KERN_INFO, "Hello world start\n");
   return 0;
}


void cleanup_module(void)
{
  printk(KERN_INFO, "Hello world end\n");
}
$ gcc -c hello.c


init_module()はinsmodを行ったときに呼ばれる関数。
cleanup_module()は逆にrmmodを行ったときに呼ばれる関数。


家でもKernel2.4を試したいんだけれど環境が今のLinuxは2.6なので試せない。
簡単に2.4の環境を用意できないかな?
vmwareで2.4の開発環境つきのイメージをどっかからダウンロード出来ないかな?


2.6もそのうち勉強したい。
リアル環境でLKMの開発(というかテスト)は恐い。
2.6だったらUbuntuvmwareがあるので、それで行うかな?