您的位置:首页 > 其它

【转载】Ubuntu 14.04上驱动开发环境配置,及最简单一个驱动编写。

2018-03-14 15:31 756 查看
开发ubuntu 14.04 本机使用的驱动程序。
安装开发工具:
* apt-get install build-essential

建2个文件:最简单的驱动代码 Hello.c[cpp] view plain copy/*0 
 * hello.c 
 * 
 *  Created on: May 14, 2015 
 *      Author: neo 
 */  
  
  
#include "linux/init.h"  
#include "linux/module.h"  
  
static int hello_init(void)  
{  
    printk(KERN_ALERT "Hello World linux_driver_module\n");  
    return 0;  
}  
  
static void hello_exit(void)  
{  
    printk(KERN_ALERT "Goodbey linux_driver_module\n");  
}  
  
module_init(hello_init);  
module_exit(hello_exit);  
MODULE_LICENSE("GPL");  
MODULE_AUTHOR("lpj");  

建个Makefile[html] view plain copy#sample driver module  
obj-m := hello.o  
KDIR = <span style="color:#ff0000;">/lib/modules/3.13.0-32-generic/build/</span>  
  
all:  
    $(MAKE) -C $(KDIR) M=$(PWD)  
  
.PHONY:clean  
clean:  
    rm -f *.mod.c *.mod.o *.ko *.o *.tmp_versions  

编译: make
编译成功之后会生成相应有ko文件,也就是我们想要的驱动了.

查看ko模块的信息 modinfo hello.ko插入模块 insmod hello.ko
如果出现: Invalid module format 错误,可能是 Makefile 的KDIR 是否指向了错误的版本,最好用 uname -r 命令查看版本,比较下是否相同。驱动就安装完成了。
卸载模块: rmmod hello
如果先在另一终端中运行: sudo cat /proc/kmsg 就可以看到有 hello world 打印。---------------------如果驱动不是为本机用的,则需要下载目标版本的源代码并编译。比如:
1. 查看源内的内核源码类表
* apt-cache search linux-source

2. 下载安装内核源代码:
* sudo apt-get install linux-source-xxxx
* 将源码解压到/usr/src/目录后,进入linux-source-(版本号)目录中执行下面几个命令:
* sudo make oldconfig 或 menuconfig
* sudo make prepare  
* sudo make scripts
* sudo make modules
* sudo make modules_install 会安装到/lib/modules$  中
3. makefile 指向/lib/modules/中指定的路径。就可以编译了。
参考:http://blog.csdn.net/acanoe/article/details/7404595 http://www.cnblogs.com/hoys/archive/2010/10/29/1864536.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: