Fedora下的第一个驱动

来源:互联网 发布:深圳哪里有mac专柜 编辑:程序博客网 时间:2024/05/02 01:55

目的:写一个简单的hello驱动模块,直接在Linux下运行,学习最基本的驱动。

步骤:

1、需要先确认本机linux上存在已经编译好的kernel-devel

可以用 ls -d /lib/module/$(uname -r)/build 查看

一般来说,安装好的linux操作系统基本上都会有,如果没有可以采用yum install kernel-devel 命令来安装。(注意有可能下载的版本与你Linux自带的版本不一样)最好的解决方法是要不重装系统要不采用光盘安装rpm包。

2、hello.c

#include <linux/module.h>#include <linux/kernel.h> #include <linux/init.h>  #define DRIVER_AUTHOR "lhqsine" #define DRIVER_DESC   "A driver" static int __init hello_2_init (void) {printk (KERN_ALERT "Hello world\n");return 0;} static void __exit hello_2_exit (void) { printk (KERN_ALERT "Goodbye world\n");} module_init (hello_2_init);module_exit (hello_2_exit);MODULE_LICENSE ("GPL");MODULE_AUTHOR (DRIVER_AUTHOR);MODULE_DESCRIPTION (DRIVER_DESC);MODULE_SUPPORTED_DEVICE ("TestDevice");

3、Makefile

ifneq ($(KERNELRELEASE),)         obj-m:= hello.oelse         PWD:=$(shell pwd)        # KVER?=$(shell uname -r)         KERNELDIR:= /usr/src/kernels/2.6.35.6-45.fc14.i686 #这里是你的 uname -rdefault:$(MAKE) -C $(KERNELDIR) M=$(PWD) modulesendif clean:rm -f *.ko *.mod.c *.mod.o *.o modules.* Module.*<strong>
4、加载测试

执行make命令编译。

加载驱动:insmod hello.ko

卸载驱动:rmmod hello.ko

查看:

(1)、可以直接在控制台上加载卸载即可看到(GOME,KDE的虚拟控制台)

(2)、dmesg | tail

(3)、cat /var/log/messages |tail




0 0
原创粉丝点击