本文主要是介绍HelloWorld 模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
helloworld.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);
Makefile 代码
1 obj-m := helloworld.o 2 3 CURRENT_DIR :=$(shell pwd) 4 5 KERNEL_DIR := /usr/src/linux-headers-$(shell uname -r) 6 7 all: 8 $(MAKE) -C $(KERNEL_DIR) M=$(CURRENT_DIR) modules 9 10 clean: 11 rm -rf *.o *.ko *.mod.c *.symvers *.order
执行make
1 ryan@Ryan-pc:/data1/Ryan/demo/helloworld$ make 2 make -C /usr/src/linux-headers-3.13.0-32-generic M=/data1/Ryan/demo/helloworld modules 3 make[1]: Entering directory `/usr/src/linux-headers-3.13.0-32-generic' 4 Building modules, stage 2. 5 MODPOST 1 modules 6 make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-32-generic'
加载模块
1 ryan@Ryan-pc:/data1/Ryan/demo/helloworld$ sudo insmod helloworld.ko 2 ryan@Ryan-pc:/data1/Ryan/demo/helloworld$
dmesg查看
1 ryan@Ryan-pc:/data1/Ryan/demo/helloworld$ dmesg
1 [178401.813566] sr 0:0:0:0: [sr0] Device not ready 2 [178401.813570] sr 0:0:0:0: [sr0] 3 [178401.813571] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE 4 [178401.813572] sr 0:0:0:0: [sr0] 5 [178401.813573] Sense Key : Not Ready [current] 6 [178401.813575] sr 0:0:0:0: [sr0] 7 [178401.813577] Add. Sense: Medium not present - tray closed 8 [178401.813579] sr 0:0:0:0: [sr0] CDB: 9 [178401.813580] Read(10): 28 00 00 00 02 2f 00 00 01 00 10 [178401.813584] end_request: I/O error, dev sr0, sector 2236 11 [179614.794066] helloworld: module verification failed: signature and/or required key missing - tainting kernel 12 [179614.794552] Hello world 13 [180458.268623] goodbye,cruel world 14 [180514.941519] Hello world 15 [180549.136795] goodbye,cruel world 16 [181244.193514] Hello world
卸载模块
1 ryan@Ryan-pc:/data1/Ryan/demo/helloworld$ sudo rmmod helloworld 2 ryan@Ryan-pc:/data1/Ryan/demo/helloworld$
这篇关于HelloWorld 模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!