您的位置:首页 > 其它

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

2015-05-18 15:01 645 查看
开发ubuntu 14.04 本机使用的驱动程序。

安装开发工具:

* apt-get install build-essential

建2个文件:

最简单的驱动代码 Hello.c

/*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

#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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: