日期:2014-05-16  浏览次数:20910 次

找不到asm/hardware.h在哪个目录,怎么办?
今天又从书上找了一个键盘的驱动程序,在虚拟机上调试,又出现找不到头文件的问题,如下
asm-arm/irq.h:没有那个文件或目录
asm-arm/arch-s3c2410/irqs.h:没有那个文件或目录
asm-arm/arch-s3c2410/regs-gpio.h:没有那个文件或目录
我到内核目录树下找了也没有找到,不会是我的系统有问题吧,我该怎么办呢,以后还要写驱动程序呢,总不能老让头文件找不到而耽误时间把,大家帮帮我吧
我的内核版本是2.6的,驱动程序也是基于2.6内核的

------解决方案--------------------
这个我真的没有什么诀窍,就是苦力尝试

这些头文件是不是在对内核编译的时候要配置成支持s3c2410的时候才会有啊?
----------------
确实,因为include 下的 asm 和 arch 都是软链接,不配置好make一遍是不会指向正确的目录的
这样操作之后
#include <asm-arm/arch-s3c2410/irqs.h>
等价于
#include <asm/arch/irqs.h>

你可以把所有感觉相关的头文件都加上,尝试编译
遇到未定义的符号再 grep "符号名、字符串" -R 查找具体在哪个头文件
找不到就要分析这个相关的东西是干什么的,做出适当修改
我又没有你的环境,只能靠自己
有难度是很自然的,不然大家都来搞驱动了还怎么混阿



------解决方案--------------------
LZ的这些东西,需要你把目标平台内核编译之后才会出现这些文件
------解决方案--------------------
如果没有,到www.kernel.org上去下一个,然后解压缩。
------解决方案--------------------
注:在2.6.29的版本中可以找到你这里所要的所有头文件!
你可以去官方网站去下载~~

下载地址:www.kernel.org