LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: 先秦

NVIDIA显卡驱动装不上

[复制链接]
发表于 2007-2-11 15:14:20 | 显示全部楼层
Post by d00m3d
glxgears 在 mesa-utils 包里


谢谢 !装上了。
回复 支持 反对

使用道具 举报

发表于 2007-2-11 15:55:13 | 显示全部楼层
Post by 先秦
按照《ebian etch 简要安装指南》里的方法安装NVIDIA显卡驱动,不顺阿
先是提示找不到 linux-header

我的也是阿
不知道哪里有对应的linux-header
我现在的内核是2.6.19,但源里只有linux-headers-2.6.18-*的
此外还有一个奇怪的问题就是我的linux-kernel-headers是2.6.18-6,在装build-essential等包的时候就自动装上这个,但我的内核是2.6.19!!!!
回复 支持 反对

使用道具 举报

发表于 2007-2-11 16:40:40 | 显示全部楼层
不用奇怪,因为它们是没必要相同的

这是一个很普遍的误区,以为所需的头文件需要对应内核版本,其实不然。可是要解释又得长篇大论了。。。

请先看这两篇讨论
http://www.linuxsir.cn/bbs/showthread.php?t=270082

http://www.linuxsir.cn/bbs/showthread.php?t=260766

以下是引自 LFS 手册第 8 章编译内核的部份
http://www.linuxfromscratch.org/ ... apter08/kernel.html
Warning

Some kernel documentation recommends creating a symlink from /usr/src/linux pointing to the kernel source directory. This is specific to kernels prior to the 2.6 series and must not be created on an LFS system as it can cause problems for packages you may wish to build once your base LFS system is complete.

Also, [color="Red"]the headers in the system's include directory should always be the ones against which Glibc was compiled, that is, the ones from the Linux-Libc-Headers package, and therefore, should never be replaced by the kernel headers.
然而 Linux-Libc-Headers project 现在已寿终正寝了,取而代之是各大发行版自行从内核头文件里提链出净化过的头文件。因此,Debian 的 linux-headers-2.6.18-* 只是说明该头文件是由 2.6.18.x 内核提链出来

编译显卡驱动时,系统并非需要当前内核的头文件,而是需要配合当时 glibc 所需的头文件

这是今天 unstable 里的情况,http://packages.debian.org/unstable/devel/linux-kernel-headers
Package: linux-kernel-headers (2.6.18-6)
Linux Kernel Headers for development

This package provides headers from the Linux kernel. [color="Red"]These headers are used by the installed headers for GNU glibc and other system libraries.
请留意红色字句

Clear?
回复 支持 反对

使用道具 举报

发表于 2007-2-11 17:02:39 | 显示全部楼层
但是怎么知道那个内核对应哪个linux-kernel-headers,或者反过来某个linux-kernel-headers对应了哪些内核?
还有就是linux-kernel-headers和linux-headers有什么区别?
回复 支持 反对

使用道具 举报

发表于 2007-2-11 17:06:47 | 显示全部楼层
说了嘛,是对应 glibc,不是对应内核
回复 支持 反对

使用道具 举报

发表于 2007-2-11 17:20:03 | 显示全部楼层
Post by beanya
还有就是linux-kernel-headers和linux-headers有什么区别?

http://ubuntuforums.org/showthread.php?t=87495这里最後一句是精句
That is correct. [color="Red"]linux-kernel-headers should match your libc6 version and linux-headers should match your linux-image version.
回复 支持 反对

使用道具 举报

发表于 2007-2-11 18:31:43 | 显示全部楼层
编译第三方内核驱动时, 必须使用[color="Red"]和内核一致的头文件:

(假设你的内核是 kernel-x.y.z-p-arch  , 对于2.6.8-3-i686来说 x=2, y=6, z=8, p=3, arch=i686)

你必须安装的debian包: kernel-header-x.y.z, kernel-header-x.y.z-arch 使用的头文件是
/usr/src/kernel-header-x.y.z-p/
/usr/src/kernel-header-x.y.z-p-arch/

这种情况只在编译驱动时发生.

=====================================================

而编译用户程序时, 如果用到内核函数,使用的是和 glibc 一致的内核头文件, 一般是 /usr/include/linux 和 /usr/include/asm 这两个. 他们的deb包是 linux-kernel-header, 和内核版本无关.

上面这种情况, 只有在你的程序需要使用和内核直接相关的函数(比如 ioctl )时才会碰到. 实际生活中, 我们日常用到的95%函数都不是上面的情况, 比如 printf(), read() ...

这些函数都是使用 gcc, glibc 自带的头文件.
回复 支持 反对

使用道具 举报

发表于 2007-2-11 19:37:25 | 显示全部楼层
现在我倒是装上了,但是并没有安装什么linux-headers,只是要先配置好gcc:
export CC=/usr/bin/gcc-4.1
然后 sh NVIDIA-Linux-x86-1**.run就可以了
不过又出现了一个更郁闷的:
在/etc/X11/xorg.conf中,如果Section "Device"部分的Driver 改为"nvidia"的话分辨率刷新率怎么调都是800×600  50HZ,而如果Driver改为 "nv"就正常了!!!!
回复 支持 反对

使用道具 举报

发表于 2007-2-11 22:16:47 | 显示全部楼层
Post by beanya
现在我倒是装上了,但是并没有安装什么linux-headers,

debian 没有任何叫 linux-header 的包. 只有 linux-kernel-header 和 kernel-header-x.y.z-p (x,y,z,p和你的内核一致)

前者是普通程序使用的, 后者是编译第三方驱动使用的.
回复 支持 反对

使用道具 举报

发表于 2007-2-11 22:26:51 | 显示全部楼层
就是linux-headers-*.*.*-*啊
安装nvidia驱动不是要它的么?
回复 支持 反对

使用道具 举报

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

本版积分规则

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