本文共 1170 字,大约阅读时间需要 3 分钟。
#include#include MODULE_LICENSE("Dual BSD/GPL");MODULE_AUTHOR("TOPEET");static int hello_init(void) { printk(KERN_EMERG "Hello World enter!\n"); return 0;}static void hello_exit(void) { printk(KERN_EMERG "Hello World exit!\n"); return 0;}module_init(hello_init);module_exit(hello_exit);
#!/bin/bashobj-m += itop4412_hello.oKDIR := /home/topeet/iTop4412_Kernel_3.0PWD ?= $(shell pwd)all: make -C $(KDIR) M=$(PWD) modulesclean: rm -rf *.o
在终端中执行以下命令:
make
insmod itop4412_hello.ko
lsmod
rmmod itop4412_hello
在编译时,确保Makefile中的PWD正确无误:
make -C /home/topeet/iTop4412_Kernel_3.0 M=/home/topeet/iTop4412_Kernel_3.0/modules
请确保Makefile中的模块名称与实际编译的C文件名一致。例如:
obj-m += itop4412_hello.o
如果出现以下错误,请检查模块名称是否正确:
make[2]: *** No rule to make target `/home/drivermodule/mini_linux_module.c', needed by `/home/drivermodule/mini_linux_module.o'. Stop.
正确的卸载命令是:
rmmod itop4412_hello
如果使用以下命令会导致错误:
rmmod itop4412_hello.ko
请勿使用带有.ko扩展的模块名称进行卸载。
转载地址:http://hiwh.baihongyu.com/