学习总结
学习内核自带的文档
昨天阅读了一下内核中的文档: README Documentation/HOWTO 学到了不少东西。知道了一个网站 http://kernelnewbies.org,一些FAQ , 摘录如下
Code Browsing
cscope,tags
原来内核中有生成 cscope和tags的脚本
make cscope
make tags
给make加上V=1,可以看到哪些命令被执行。
$ make cscope V=1
/bin/bash linux-2.6.32.63/scripts/tags.sh cscope
.....
+ cscope -b -f cscope.out
可以看到调用的是 scripts/tags.sh 这个脚本。
find + grep
查找结构体定义
find . -name '*.[chS]' | xargs grep -EnH "\W*struct\W+task_struct\W*{"
查找函数定义
find . -name '*.[chS]' | xargs grep -EnH "cdev_init\W*\(struct cdev"
lxr (很好的网站)
http://lxr.oss.org.cn/
编写好的驱动,怎么运行
保证开发板内核/虚拟机内核 与 你编译驱动时的内核版本一样
在开发板上运行
我有个mini2440开发板,一般是在PC上使用交叉编译工具编译好之后,放到开发的文件系统上即可。(文件系统最好用网络文件系统,这样比较方便)
建立一个虚拟机
找一个内核为 2.6.32以下(因为我要以2.6.32为研究对象)的linux发行版本。fedora12是2.6.31。可以编译安装2.6.32内核,然后编写驱动测试。 下载fedora 12:
使用axel应该比wget快点。
axel -n 6 http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/12/