Linux-驱动编译流程

来源:互联网 发布:网络集线器怎么用 编辑:程序博客网 时间:2024/06/06 19:32

以下面的字符设备源码为例:(当然用户也可以使用helloworld的源码):





把文件放在:


\home\ellison\linuxdev\demo_chrdev


1. 编写Makefile文件,放在同样的目录:



在该Makefile中,指定了使用内核的版本:

KERNELDIR:=/lib/modules/$(shell uname -r)/build

建议这么写,避免编译出来的.ko模块与系统自带的内核版本不匹配而报错;


PWD:=$(shell pwd): 表示编译后回到当前目录;


$(MAKE) -C $(KERNELDIR) M=$(PWD) modules 这一句就是我们真正的编译指令;

2. 编译:

在终端中,寻址到文件所在的目录,输入 make ,程序就会自动编译了;



编译后会生成对应的.ko文件;

3. 安装模块



4. 查看模块是否安装成功:



4. 查看安装过程中打印出来的信息:dmesg|tail



5. 把模块加入到设备系统的/dev目录下(即生成一个新的设备节点):设备名- demo_chrdev



接下来在/dev目录下可以看到这个设备节点: demo_chrdev



6. 编写程序测试这个模块:



编译:



运行:



可以看到程序正确运行了。

这里演示的是一个简单的字符设备驱动程序,大家可以按照这个流程试试别的。




0 0
原创粉丝点击