现在的位置: 首页 > 综合 > 正文

Linux-驱动编译流程

2017年05月19日 ⁄ 综合 ⁄ 共 531字 ⁄ 字号 评论关闭

以下面的字符设备源码为例:(当然用户也可以使用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. 编写程序测试这个模块:



编译:



运行:



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

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

【上篇】
【下篇】

抱歉!评论已关闭.