本文共 1335 字,大约阅读时间需要 4 分钟。
## CentOS下搭建编译驱动的环境
S1、yum install kernel 和 yum install kernel-devel
S2、修改软连接
/lib/modules/$(uname -a)/build 指向的软连接
查看默认的ll build指向的软连接,如果不正确,编译会报错,如下:
make: *** /lib/modules/2.6.32-431.29.2.el6.x86_64/build: No such file or directory. Stop.
S3、执行S1步骤之后,在/usr/src/kernels目录之下将生成对应的安装包,然后让S2中build目录指向该目录,如下
ln -s /usr/src/kernels/2.6.32-573.8.1.el6.centos.plus.x86_64 /lib/modules/2.6.32-431.29.2.el6.x86_64/build
## hello_driver.c
#include## Makefile#include #include static int __init hello_init(void){ printk(KERN_ALERT "hello driver init!\n"); return 0;}static void __exit hello_exit(void){ printk(KERN_ALERT "hello driver exit\n");}module_init(hello_init);module_exit(hello_exit);
ifneq ($(KERNELRELEASE),) obj-m :=hello_driver.oelse KERNELDIR ?=/lib/modules/$(shell uname -r)/buildPWD := $(shell pwd)modules: $(MAKE) -C $(KERNELDIR) M=$(PWD) modulesendifclean: rm -rf *.o *~ .depend .* .
## printk的权限定义(1-7输出信息到 /var/log/message,0输出信息到终端)
linux/kernel.h#define KERN_EMERG "<0>"#define KERN_ALERT "<1>"#define KERN_CRIT "<2>"#define KERN_ERR "<3>"#define KERN_WARNING "<4>"#define KERN_NOTICE "<5>"#define KERN_INFO "<6>"#define KERN_DEBUG "<7>"## 驱动ko使用
insmod hello_driver.kormmod hello_driver.kolsmod | grep hello_driver //检查
## 驱动测试
转载地址:http://pjvbi.baihongyu.com/