最简单的内核模块
hello.c
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "Hello, Techshine !/n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, Techshine ! /n");
}
module_init(hello_init);
module_exit(hello_exit);
Makefile
MVTOOL_PREFIX = /usr/local/arm/3.4.1/bin/arm-linux-
KERNEL_DIR = /home/sys/linux-2.6.20
MAKE_ENV = ARCH=arm CROSS_COMPILE=$(MVTOOL_PREFIX)
#TARGET = hello.ko
obj-m += hello.o
all:
make -C $(KERNEL_DIR) M=`pwd` $(MAKE_ENV) modules
# cp hello.ko /home/pr/hello
clean:
-rm -rf *.o *mod* *.ko .cmem* .tmp*
insmod hello.ko
rmmod hello.ko