我的笔记本安装的是 Debian sarge,上次升级内核到 linux 2.6.32-5, nVidia 的驱动就一直没有跑起来,今天下班后,仔细研究了一下。
先说一下 nouveau 和 nVidia 驱动的历史
Linux 和 Windows 相比,让用户觉得上手比较难,一个很重要的原因就是驱动不易安装。
Windows 本身内置了大量的设备驱动
因为 Windows 的普及,硬件厂商首选是开发针对 Windows 的设备驱动
再有一个就是 Windows 升级比较缓慢,Windows XP 的历史都快10年了,硬件厂商的支持难度要小
就 nVidia 显卡来说,其实 Linux 的支持也是满不错的:
Linux 内置了 nv 驱动:xserver-xorg-video-nv 。对 2D 支持尚可,3D 则是完全的不支持
nVidia 官方曾经发布过开源的驱动 nvidia-glx 但不久就宣布不再支持。现在 nVidia 提供非开源的 Linux 驱动,在官网提供下载链接:
因为 nVidia 官方的驱动和 Linux 操作系统的开放版权向背,各个 Linux 发行版都没有将 nVidia 官方的驱动集成到发行版中,造成用户安装 Linux 不能像 Windows 那样下载拆包即装的硬件驱动,只能使用功能较弱的内置驱动。
为了发挥显卡的最大功效,使用 3D 桌面或者运行 Google Earth 之类软件,我是这样安装 nVidia 驱动的:
首先在 Linux 中要安装 gcc,g++ 等软件开发环境,因为编译硬件驱动需要。
下载 nVidia 驱动。见官方驱动下载网页:
启动 Linux 到文本控制台。如果进入了 X Window,需要杀掉 X,进入控制台界面。
运行从 nVidia 下载的软件包,按照界面一步一步操作,即可编译出内核模组和 Xorg 的设备驱动
编辑 /etc/X11/xorg.conf 设置: Driver “nvidia”
如果 Linux 升级?需要重新执行上面的步骤。
是不是太繁琐了?谁让你频繁升级呢?
好消息是 Nouveau 来了,你看其中有字母 n 和 v,猜出来了么?这是 nVidia 在 Linux 下新的开源驱动名称。Nouveau 是通过针对 nVidia 显卡驱动反向工程,实现的 nVidia 开源显卡驱动,目标是提供完全的 3D 驱动支持。较 Linux 之前提供的 nv 驱动大大的前进了,甚至有一天会盖过官方的驱动。
如何使用 Nouveau 驱动
Linus Torvalds 终于决定将 nouveau 驱动加到 Linux 内核中。当我将 Linux 内核升级到 linux 2.6.32-5 的时候,就发现不同了:
Linux 启动过程,控制台分辨率自动提升到最佳,控制台的分辨率前所未有!
X Window 启动失败是当然的,因为 X 使用的 nVidia 驱动,新的 Linux 内核尚为编译匹配的 nVidia 内核模组
但是编译 nVidia 官方提供的驱动软件失败!失败信息:
Unable to load the kernel module 'nvidia.ko'. This happens most
frequently when this kernel module was build against the wrong or
improperly configured kernel sources, with a version of gcc that
differs from the one used to build the target kernel, or if a driver
such as rivafb/nvidiafb is present apd prevents the NVIDIA kernel
module from obtaining ownership of the NVIDIA graphics device(s), or
NVIDIA GPU installed in this system is not supported by the NVIDIA
LINUX graphics driver release.