Linux驱动编程(一)

来源:互联网 发布:淘宝店铺购买可以吗 编辑:程序博客网 时间:2024/06/10 17:42

简单的Linux驱动代码:

// mem.c文件#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE("GPL");static int mem_init(void){printk(KERN_ALERT "hello, kernel\n");return 0;}static void mem_exit(void){printk(KERN_ALERT "Goodbye, kernel\n");}module_init(mem_init);module_exit(mem_exit);

makefile:

ifneq ($(KERNELRELEASE),)obj-m := mem.oelseKERNELDIR ?= /lib/modules/$(shell uname -r)/buildPWD := $(shell pwd)default:$(MAKE) -C $(KERNELDIR) M=$(PWD) modulesendifclean:    rm -rf *.ko *.mod.c *.o  *.symvers *.order

编译好后,用insmod和rmmod装载和卸载驱动模块。

如:sudo insmod mem.ko

注意,要在命令前加sudo,否则会报错:insmod: error inserting 'mem.ko': -1 Operation not permitted

要查看已装载到模块,用命令:lsmod

要看printk到输出,在终端里输入命令:dmesg