+ -
当前位置:首页 → 问答吧 → 通用linux驱动模块

通用linux驱动模块

时间:2011-12-06

来源:互联网

Hi,all

我现在正在处理这么一个问题。我想写一个I2C驱动模块,可以适用大部分的linux设备(包括android设备),不知这个想法是否可以实现。目前我编译的驱动模块只能用在我相同编译环境的ARM板上,没有在其他设备上试验成功,都报exec format error错误。我现在想知道两件事儿:
1. 我的这个想法是否能够实现,我主要使用的是i2c_transfer()进行I2C通信,这个应该平台相关性不是很大吧;
2. 我换了两个内核编译出来的文件格式是ELF的INTEL格式,如何、在哪可以设置成ARM格式。(但是我编译的一个驱动模块的格式跟目标设备是一致的,但是仍然报exec format error)

另外:我在另一个驱动中,需要读取用户空间的文件,而我的驱动是在启动的时候就加载的,我现在的做法是轮询那个文件多次,保证用户空间构建完毕的情况下搜索该文件。请教一下用户空间构建完之后会不会发出什么信号之类的东西,能够在驱动中扑捉,或者有没有其他的方式可以一次性的知道文件存不存在。

哥哥们!求解啊!

作者: scaiyaya   发布时间: 2011-12-06

内核模块依赖于它的编译环境,你要在不同的平台运行就要在不同平台的编译环境编译它一下!
信号这东西,你可以给你的驱动写一个ioctl调用让用户台完成指定任务后调用一下ioctl,它会通知到你的内核模块的。

作者: wzzww   发布时间: 2011-12-06

热门下载

更多