LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 817|回复: 6

内核源码中没有verion.h,怎么办

[复制链接]
发表于 2009-6-14 09:45:13 | 显示全部楼层 |阅读模式
安装了2.6.30-41内核和源码,安装nvidia驱动时提示缺少version.h文件。查了一下/usr/src/linux-2.6.30-41/include/linux/ 确实没有这个文件。后来又下载了linux-2.6.30-41-vanilla内核源码也没有这个文件。

请教应怎么办?可以自己编写一个version.h吗,怎么编写?
发表于 2009-6-14 12:12:36 | 显示全部楼层
Please go through this thread.

http://www.linuxsir.cn/bbs/thread348735.html

Hope this help.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-14 13:23:18 | 显示全部楼层
Post by d00m3d;1997672
Please go through this thread.

http://www.linuxsir.cn/bbs/thread348735.html

Hope this help.


太复杂,不想折腾了。

其实verion.h中就是象这样所两行:

#define LINUX_VERSION_CODE 132631
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

可能是驱动安装需要这个参数作个如果版本号大于多少就怎么样,小于又怎么样的条件判断。很奇怪为什么源码包里面为什么没有这个文件的。


谁有内核版本大于2.6.28的verion.h,请把内容贴一下,谢。
回复 支持 反对

使用道具 举报

发表于 2009-6-14 14:00:44 | 显示全部楼层
Post by linoox;1997690
太复杂,不想折腾了。

其实verion.h中就是象这样所两行:

#define LINUX_VERSION_CODE 132631
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

可能是驱动安装需要这个参数作个如果版本号大于多少就怎么样,小于又怎么样的条件判断。很奇怪为什么源码包里面为什么没有这个文件的。


谁有内核版本大于2.6.28的verion.h,请把内容贴一下,谢。

內容大致是一樣的,方法已給你,你不想看,沒辦法,誰也幫不了你
回复 支持 反对

使用道具 举报

发表于 2009-6-16 19:52:57 | 显示全部楼层
这个文件就两行,是在编译内核是自动生成的
#define LINUX_VERSION_CODE 132631
把这个132631转成十六进制就是0x20617,代表2.6.17版本的内核
2.6.28就是0x2061C,转成十进制就是132636

#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
这行都是固定的


简单的方法就是执行一下 make prepare,会生成这个文件,而且不会实际编译内核
回复 支持 反对

使用道具 举报

发表于 2009-6-19 20:01:41 | 显示全部楼层
Post by nhadct;1998485
这个文件就两行,是在编译内核是自动生成的
#define LINUX_VERSION_CODE 132631
把这个132631转成十六进制就是0x20617,代表2.6.17版本的内核
2.6.28就是0x2061C,转成十进制就是132636

#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
这行都是固定的


简单的方法就是执行一下 make prepare,会生成这个文件,而且不会实际编译内核


正解。......
回复 支持 反对

使用道具 举报

发表于 2009-6-20 00:04:50 | 显示全部楼层
Post by nhadct;1998485
这个文件就两行,是在编译内核是自动生成的
#define LINUX_VERSION_CODE 132631
把这个132631转成十六进制就是0x20617,代表2.6.17版本的内核
2.6.28就是0x2061C,转成十进制就是132636

#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
这行都是固定的


简单的方法就是执行一下 make prepare,会生成这个文件,而且不会实际编译内核



以前我是手工创建,没用过make prepare
今天学习了.:cool:
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表