当前位置: 技术问答>linux和unix
驱动编译环境的内核版本到底是不是必须和使用环境的内核版本一致?
来源: 互联网 发布时间:2016-08-26
本文导语: 我给其他厂家提供一个驱动程序,目前都是问使用的厂家使用什么linux版本,内核名称是什么,然后我搭建这个环境,编译好驱动,发给人家。否则的话我测试时似乎insmod模块时都会出错,非法。 似乎看到的资料也...
我给其他厂家提供一个驱动程序,目前都是问使用的厂家使用什么linux版本,内核名称是什么,然后我搭建这个环境,编译好驱动,发给人家。否则的话我测试时似乎insmod模块时都会出错,非法。
似乎看到的资料也要求编译的内核版本树跟使用的一致。
但是我为什么一些闭源的显卡驱动为什么能够在各种内核下用呢?
怎样才能做到一次编译,支持多数内核呢?
似乎看到的资料也要求编译的内核版本树跟使用的一致。
但是我为什么一些闭源的显卡驱动为什么能够在各种内核下用呢?
怎样才能做到一次编译,支持多数内核呢?
|
我写的驱动更神奇,不仅内核版本要一致,内核的配置也要一致,否则insmod成功,但运行起来会错误。
我现在的办法是编译内核后,将整个源码包备份,如linux-xxx.old, 然后将Makefile 的-I 改为 -I/....old
我现在的办法是编译内核后,将整个源码包备份,如linux-xxx.old, 然后将Makefile 的-I 改为 -I/....old
|
帮顶!我开始觉得没什么关系,现在也糊涂了!大家讨论下!
|
我编译驱动时,也是内核和配置都需要一样,有些配置虽然驱动用不到,但是如果不对应,驱动都加载不上。。。
关注此问题...
关注此问题...
|
好像是,前段时间即使版本不一致,驱动死活都加载不上。
应该是内核中有相应的检查版本机制吧,如果能在某个地方禁用了,是不是就可以避免?
我觉得这也是linux下的驱动提供源码的缘故,自己编译,也就可以避免这个问题了。
楼主可以考虑提供给对方源码,然后写个简单的编译方法,让客户自己编译。每次都自己搭环境,那不是累死了。
应该是内核中有相应的检查版本机制吧,如果能在某个地方禁用了,是不是就可以避免?
我觉得这也是linux下的驱动提供源码的缘故,自己编译,也就可以避免这个问题了。
楼主可以考虑提供给对方源码,然后写个简单的编译方法,让客户自己编译。每次都自己搭环境,那不是累死了。
|
驱动编译环境的内核版本到底是不是必须和使用环境的内核版本一致
==========================================================
不需要, 你修改一下Makefile 中的 KDIR 就行了, 不要让 Makefile 自己去寻找路径。
==========================================================
不需要, 你修改一下Makefile 中的 KDIR 就行了, 不要让 Makefile 自己去寻找路径。
|
为了能让你编译的内核模块正常工作,尽理保持一对致。
|
个人认为即使编译通过了,加载使用也有问题
|
如果你提供的是库文件,那就要根据对方使用的内核版本和配置,进行编译,
驱动是基于内核上的一个应用,跟内核密切相关,
驱动是基于内核上的一个应用,跟内核密切相关,
|
提供一个最笨最快捷的方法:
你将所有涉及到的版本全都编译调试好,然后制作一个工具,将这些版本的驱动压缩在一起,在安装时,自动检测当前系统版本号,然后解压进行选择性安装。
你将所有涉及到的版本全都编译调试好,然后制作一个工具,将这些版本的驱动压缩在一起,在安装时,自动检测当前系统版本号,然后解压进行选择性安装。
|
恩,学习,之前也有这个疑问。。。