按照书上的Makefile写总是编译不过,于是参考师兄写的Makefile改了一下,终于通过了。
还试了一下网上一个版本也是可以运行的 http://hi.baidu.com/yanyulou/blog/item/6280257fe960c40a28388acd.html
常用指令:insmod rmmod lsmod
用dmesg可以查看printk信息。
//hello.c
#include<linux/init.h>
#include<linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "Hello,world\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
#include<linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "Hello,world\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
//Makefile
obj-m := hello.o
KERNELDIR =/usr/src/linux-headers-$(shell uname -r)
PWD :=$(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
rm *.mod.c *.o *.order *.symvers *.ko
KERNELDIR =/usr/src/linux-headers-$(shell uname -r)
PWD :=$(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
rm *.mod.c *.o *.order *.symvers *.ko