hello.clinux
#include<linux/module.h> #include<linux/init.h> #include<linux/kernel.h> int init_module(){ printk("<1>hello world!\n"); return 0; } void cleanup_module(){ printk("<1>godbye"); } MODULE_LICENSE("GPL");
Makefileshell
linux_kernel=$(shell uname -r) linux_kernel_path=/usr/src/linux-headers-$(linux_kernel) curr_path=$(shell pwd) obj-m += hello.o all: make -C $(linux_kernel_path) M=$(curr_path) modules clean: make -C $(linux_kernel_path) M=$(curr_path) clean
root下執行make後ui
make -C /usr/src/linux-headers-3.13.0-67-generic M=/home/hugh/myfs/ws modules make[1]: Entering directory `/usr/src/linux-headers-3.13.0-67-generic' Building modules, stage 2. MODPOST 1 modules make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-67-generic'
插入模塊spa
insmod hello.ko
卸載模塊日誌
rmmod hello
dmesg查看日誌code
…… [113392.319719] hello: module verification failed: signature and/or required key missing - tainting kernel [113392.321763] hello world! [113561.149510] <1>hello world! [113487.425871] godbye [113571.386171] <1>godbye
yep,it's done!blog