原来在2.6.22内核的驱动程序 在 2.6.35内核,不可用了....怎么办? ...兄弟们

为当前最终发行版之前的所有版本提供支持
回复
viktor2000
帖子: 16
注册时间: 2011-01-30 12:43
送出感谢: 0
接收感谢: 0

原来在2.6.22内核的驱动程序 在 2.6.35内核,不可用了....怎么办? ...兄弟们

#1

帖子 viktor2000 » 2011-03-13 20:38

原来在2.6.22内核的驱动程序 在 2.6.35内核,不可用了 ,提示 头文件 找不到...后来 仔细 对比了 两个 内核, 发现2.6.35 内核 的 头文件 位置 换了 个地方....但是有好多都变的 找不到 地方了.... 我 该 怎么 修改 呢... 弟兄们.... 如何 根据 根据 一个 驱动 文件 里面 找到 对应
的头文件呢,有什么 好办法没有 ..拜托了弟兄们...

下面是 提示 在 2.6.35 内核 编译 时 提示 的 错误.....
-----------------------------------------------------
make[1]: 正在进入目录 `/source/linux-2.6.35'
CC [M] /home/xude/drv_test/2410_button_irq/buttons_drv.o
/home/xude/drv_test/2410_button_irq/buttons_drv.c: In function 'simple_read':
/home/xude/drv_test/2410_button_irq/buttons_drv.c:98: error: 'TASK_INTERRUPTIBLE' undeclared (first use in this function)
// 我的分析... 98 行的 代码 只有 一句:wait_event_interruptible(wq,flag!=0); 通过 查询 发现 该 函数 在 /asm/io.h 中,但是加入之后,仍旧提示,

/home/xude/drv_test/2410_button_irq/buttons_drv.c:98: error: (Each undeclared identifier is reported only once
/home/xude/drv_test/2410_button_irq/buttons_drv.c:98: error: for each function it appears in.)
/home/xude/drv_test/2410_button_irq/buttons_drv.c:98: error: implicit declaration of function 'signal_pending'
/home/xude/drv_test/2410_button_irq/buttons_drv.c:98: error: implicit declaration of function 'schedule'
/home/xude/drv_test/2410_button_irq/buttons_drv.c: In function 'clearpending':
/home/xude/drv_test/2410_button_irq/buttons_drv.c:171: error: 'S3C2410_SRCPND' undeclared (first use in this function)
/home/xude/drv_test/2410_button_irq/buttons_drv.c:176: error: 'S3C2410_INTPND' undeclared (first use in this function)
/home/xude/drv_test/2410_button_irq/buttons_drv.c: In function 's3c2410but_keyevent':
/home/xude/drv_test/2410_button_irq/buttons_drv.c:198: error: 'TASK_INTERRUPTIBLE' undeclared (first use in this function)
/home/xude/drv_test/2410_button_irq/buttons_drv.c: At top level:
/home/xude/drv_test/2410_button_irq/buttons_drv.c:208: warning: function declaration isn't a prototype
/home/xude/drv_test/2410_button_irq/buttons_drv.c: In function 'simple_init':
/home/xude/drv_test/2410_button_irq/buttons_drv.c:260: error: 'SA_SAMPLE_RANDOM' undeclared (first use in this function)
/home/xude/drv_test/2410_button_irq/buttons_drv.c:259: warning: passing argument 2 of 'request_irq' from incompatible pointer type
make[2]: *** [/home/xude/drv_test/2410_button_irq/buttons_drv.o] 错误 1
make[1]: *** [_module_/home/xude/drv_test/2410_button_irq] 错误 2
make[1]:正在离开目录 `/source/linux-2.6.35'
make: *** [modules] 错误 2
Young_Xu
帖子: 1
注册时间: 2011-04-01 12:13
送出感谢: 0
接收感谢: 0

Re: 原来在2.6.22内核的驱动程序 在 2.6.35内核,不可用了....怎么办? ...兄弟们

#2

帖子 Young_Xu » 2011-04-01 12:16

#include <linux/sched.h>即可。

wait_event_interruptible()内部有return - TASK_INTERRUPTIBLE;

而这个宏TASK_INTERRUPTIBLE未定义
回复

回到 “老旧版本支持”