天下

记录修行的印记

Debian 6 驱动开发环境搭建

Debian 6 驱动开发环境搭建
1.安装相关工具
apt
-get install -y gcc g++ gdb make build-essential

2.查看系统版本,并安装内核头文件
root@
192.168.20.128:~/ # uname -r
2.6.32-5-686
apt
-cache search linux-headers-2.6.32-5-686
apt
-get install -y linux-headers-2.6.32-5-686

3.查看内核头文件位置
看下会安装到哪
:
apt
-cache show linux-headers-2.6.32-5-686

有这么句
:
These files are going to be installed into
/usr/src/linux-headers-2.6.32-5-686, and can be used for building modules

就是这里啦
.
/usr/src/linux-headers-2.6.32-5-686

4.好了,接下来写测试例子:hello,抄了http://bbs.chinaunix.net/thread-3570849-1-1.html
上的代码
:
文件1
:hello.c
#include <linux/init.h>
#include <linux/module.h>

MODULE_LICENSE("GPL");

static 
int hello_init(void)
{
    printk(KERN_ALERT 
"Hello, world\n");
    
return 0;
}

static void hello_exit(void)
{
    printk(KERN_ALERT 
"Goodbye, cruel world\n");
}

module_init(hello_init);
module_exit(hello_exit);

文件2
:Makefile:
obj
-m   +=hello.o
KERNELDIR   
:= /usr/src/linux-headers-2.6.32-5-686
PWD 
:=$(shell pwd)
.PHONY: test clean all
all
:
    $(MAKE) 
-C $(KERNELDIR) M=$(PWD) modules
clean
:
    rm 
-rf *.*~ core .depend .*.cmd *.ko *.mod..tmp_versionsm *.order *.symvers

test
:
    insmod 
./hello.ko
    rmmod hello
    dmesg 
-c
    
5.好了,现在测试开始,成功的话,就可以看到下面的文字了.
如果有问题的话
,向google大神请教吧.另外要看
root@
192.168.20.128:~/cpp # make 
make -/usr/src/linux-headers-2.6.32-5-686 M=/root/cpp modules
make[
1]: Entering directory `/usr/src/linux-headers-2.6.32-5-686'
  CC [M]  /root/cpp/hello.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /root/cpp/hello.mod.o
  LD [M]  /root/cpp/hello.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-5-686
'
root@
192.168.20.128:~/cpp # make test
insmod ./hello.ko
rmmod hello
dmesg 
-c
[  
673.500413] Hello, world
[  
673.504907] Goodbye, cruel world
root@
192.168.20.128:~/cpp #


6.最后.安装开发帮助文档
apt
-get install -y manpages-kernel-dev linux-manual
man 
9 printk
man 
9 module_init

参考资料
: 
http
://bbs.chinaunix.net/thread-3570849-1-1.html

posted on 2011-11-01 14:24 天下 阅读(803) 评论(0)  编辑 收藏 引用 所属分类: Linux编程kernel & Driver


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2011年11月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

导航

统计

常用链接

留言簿(4)

随笔分类(378)

随笔档案(329)

链接

最新随笔

搜索

最新评论