Fedora 8自带的显卡驱动程序功能相对比较差,而且开发还不够完善。再加上AMD(ATI) 在Linux驱动程序方面开发的敷衍态度,Fedora自带的AMD显卡驱动程序非常糟糕,容易出现3D 加速不能启用、显示花屏、鼠标光标消失等各种各样的问题。相对而言,Livna的显卡驱动程序质量就比较好,而且是它是专门为Fedora开发的,无论是 功能还是兼容性都比较强。而且使用专用驱动程序的另外一个好处是其计时算法和Windows一样,我们就不用每次在Linux和Windows中切换时, 按显示器的“Auto”键调整显示位置了。
下面我就介绍一下如何在Fedora 中安装Livna显卡驱动程序(适用于nVIDIA 和AMD)。
首先我们要先把Livna的软件库(repository)添加到 Fedora 7 中,这样才能使用 yum 进行安装和升级。操作步骤:
1. 在 X-Window 下,鼠标右击桌面空白处,选择“终端”(Konsole),打开一个终端窗口。
2. 输入“su -”并回车,然后输入根用户(root)密码(没有回显)并回车以切换至根用户权限状态,如果您已经是用的根用户登录的,就可以跳过这一步。不过,平时使用根用户进行日常操作可不是好习惯。
3. 保证 Internet 连接。更新系统组件,更新时间比较长,而且也不是必须的,不过还是推荐做一下。输入“yum -y update”并回车。如果由于 Fedora 软件库本身的问题导致出现无法解决的软件需求关系,比如 Fedora Core 5 中有时会出现的 xine 和 xine-lib 相互依赖问题,可以通过“--exclude”参数来排除某些软件包,例如:“yum -y update --exclude=xine”。
4. 更新完成后,输入“rpm -ivhU ”并回车,以下载并安装 Livna 的自动配置程序,这样就不用手动修改 repo 文件了。
这样我们就可以开始安装驱动程序了。先不要关闭终端窗口,还用得着。
如果您用的是 nVIDIA 显卡,就进行如下操作:
1. 输入“yum -y install kmod-nvidia glx-utils”并回车。注意,如果您使用的是支持超线程技术的 CPU 或者双核 CPU,请用“kmod-nvidia-smp”代替“kmod-nvidia”,不过绝大多数情况下 yum 会自动选择合适的版本。如果您用的是很旧的 nVIDIA 显卡,那么就应该用“yum install kmod-nvidia-96xx”或“yum install kmod-nvidia-legacy”。
2. 安装完成后,重新启动计算机。如果安装成功,在图形登录窗口出现前,会有一个 nVIDIA 的 logo 闪现一两秒。
3. 重新打开一个终端,然后输入“glxinfo | grep direct”并回车。如果显示“Direct rendering: Yes”,则恭喜您,显卡驱动程序已经能够正常运行了。
nVIDIA 的驱动程序会自动通过 DDCI 检测您的显示器支持的显示模式,并选择其中最高的,这可能和您所希望的不一致。例如:我的显示器是 Acer 的 17 英寸 LCD,最高模式是 1280X1024@75Hz,但是最佳模式是 1280X1024@60Hz(精确的是 60.02Hz)。由于LCD主控芯片性能的限制,许多液晶显示器在 75Hz 下会出现字体缺少笔画等问题,所以需要将其设置为最佳分辨率。因为安装了nVIDIA的驱动程序,传统的那种被戏称为“Black Magic”的写 Modeline 方法已经没用了。
说个题外话,当初我用 Red Hat 7.3 时,由于找不到较好的显卡驱动程序,经过无数次的 Google 后终于在一个捷克共和国的网站里找到了在通用 Video Buffer 下适合我的显示器的 Modeline。这暴露了一个早期 Linux 的弊病,那时的 Linux 没有像 Windows 一样很快接纳 DDCI 标准,不能向显示器要参数,导致很长一段时间,Linux 的粉丝必须冒着烧毁显示器的风险,辛苦地调整什么消隐时间、回扫时间之类的令人头大的参数以修正显示偏差。
现在虽然修改起来还是没有 Windows 方便,不过已经很省心了,操作如下:
1. 在刚才的终端窗口输入“kate /etc/X11/xorg.conf”,如果您没安装 kate,也可以试试 gedit,当然用 VIM 和 nano 也我也不反对。
2. 在打开的编辑器窗口里,找到“Screen”区段。它应该是类似这样的东西:
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
EndSection
找到“1280x1024”,改成“”(用“_”代替“@”也可以,不过不推荐,原因在最后会提到),注意最佳模式必须参考显示器说明书。
3. 保存文件,退出编辑器,然后重新启动。
这样您的显示器就工作在您喜欢的模式下了,注意显示模式中第一个是默认的模式,在 X-Window 下可以用 Ctrl+Alt+[+] 或 Ctrl+Alt+[-] 来切换显示模式。而“Depth”代表色深,24 就是常说的 24/32 位色。
如果您用的是 AMD (ATI)显卡,有官方的和 Livna 的驱动程序两种选择:
使用官方驱动程序:
1. 先去 Softpedia 网站下载最新 AMD 显卡驱动程序,根据您的 CPU 和系统选择合适的文件。比如支持 X86-64 的就下载的是“ati-driver-installer-8.42.3-x86.x86_64.run”,最好保存到“home”文件夹。
2. 在刚才的终端窗口中,输入“yum -y install kernel-devel rpm-build gcc”并回车,安装系统核心源码、RPM 构建包和 GCC,这些东西 Fedora 7 的“典型安装”是不会安装的,而官方驱动程序是没有经过编译的源码,所以必须进行编译。如果您已经安装了,系统会自动进行升级。
3. 安装完成后,在终端中输入“cd ~”并回车,以切换至“home”文件夹。然后输入“sh ati-driver-installer-8.42.3-x86.x86_64.run --buildpkg Fedora/F7”并回车,系统开始编译安装程序。
4. 输入“rpm -ivh ATI-fglrx-8.42.3-1.f7.i386.rpm aATI-fglrx-control-center-8.42.3-1.f7.i386.rpm kernel-module-ATI-fglrx-2.6.22.9-91.fc7-8.42.3-1.f7.i386.rpm
ATI-fglrx-devel-8.42.3-1.f7.i386.rpm”并回车,安装驱动程序和控制中心,注意不同的安装包编译出来的包名字不一样,可以用“ls”命令查看。
使用 Livna 驱动程序:
1. 在刚才的终端窗口中,输入“yum -y install kmod-fglrx glx-utils”并回车。注意,如果您使用的是支持超线程技术的 CPU 或者双核 CPU,请用“kmod-fglrx-smp”代替“kmod-fglrx”,不过绝大多数情况下 yum 会自动选择合适的版本。
使用上述两种方法安装 AMD 驱动程序,都需要对驱动程序进行一下调整,方法如下:
1. 按前面的方法打开一个终端窗口并切换至根用户。
2. 输入“kate /etc/X11/xorg.conf”并回车。
3. 在打开的编辑器窗口里,找到“ServerFlags”区段。它应该是类似这样的东西:
Section "ServerFlags"
Option "AIGLX" "on"
EndSection
把“on”改为“off”。
4. 找到“Extensions”区段。它应该是类似这样的东西:
Section "Extensions"
Option "Composite" "Enable"
EndSection
把“Enable”改为“Disable”。
5. 最后,在文件末尾加入如下内容:
Section "DRI"
Mode 0666
EndSection
6. 另外,如果您用的是 Intel 芯片组的主板,您还需要在“Device”区段的“Driver "fglrx"”下面加一行“Option "UseInternalAGPGART" "no"”。
7. 保存文件,退出编辑器,然后重新启动。
8. 重新打开一个终端,然后输入“glxinfo | grep direct”并回车。如果显示“Direct rendering: Yes”,则恭喜您,显卡驱动程序已经能够正常运行了。
安装 Livna 驱动程序后,就不能再用系统自带的控制中心调整显示模式了。我没有 AMD 显卡,所以不知道 AMD 显卡驱动自带的设置程序是否支持设置显示模式(如果您使用 AMD 显卡,请跟贴)。不过对于 nVIDIA 显卡来说,暂时只能通过前面讲的修改 xorg.conf 的方法修改显示模式。另外,安装好显卡驱动后,Window Manager 的菜单里会出现相应的显卡设置程序的项目,不同的 Window Manager 和不同的显卡,其出现位置是不一样的,您可以自己找找。在那里,可以设置多头显示、色彩调节、硬件加速之类的项目。
最后要注意的是,如果您安装了新的 Linux Kernel,比如用 yum 更新系统后,则必须重新安装驱动程序,这时可以使用“update”参数代替“install”。
补遗:如果您比较幸运,Fedora 自带了您的显示器驱动(实际上就是 Modeline),则请一定要在安装显卡驱动之前,先保证您的显示器驱动设置正确。 设置方法不同的 Window Manager 是不同的,比如在 KDE 下是在“控制中心”-“外设”-“显示”。如果不这样做,则在登录界面显示前,您很可能会遇到一段显示器黑屏并有“No Supported Display Mode”(不支持的显示模式)提示的过程。之所以会这样,是因为在登录界面出现前,系统使用的是 Video Buffer,如果您没有设置正确的 Modeline,可能会使用显示器不支持的显示模式。不过由于真正的显卡驱动根本不用 Modeline,所以当驱动程序加载后,显示就一切正常了。另外,Fedora 自带的显示器驱动不是很多,所以很可能找不到您的显示器型号,那就请尝试相近的信号,因为许多时候,显示器厂商会在一段时间内使用一种的控制芯片。
如果您和我一样不幸,Fedora 根本不支持我的显示器或者不知道相近的型号。而且由于 Fedora 自带的许多显卡驱动中的 Modeline 所隐含的计时算法和 Windows 不同,有可能导致两种操作系统中的屏幕显示错位。如果您有这些问题,还是要回到计算 Modeline 的痛苦过程,如果您有兴趣想了解一下什么是 Modeline,那可以在 Google 里搜索“XFree86 Video Timings HOWTO” (有中文版),看后您保准和我当初一样会吐嘈的。而且许多时候,显示器说明书不会把所有的参数都列出来,这时编写 Modeline,除了可以冒着黑屏的风险用 xvidtune 一点一点地调试外,最好的方式就是在 Google 上搜索了。如果你找到了适合你显示器最佳模式的 Modeline,就在“Monitor”区段里写入就可以了。注意 Modeline 的命名有讲究,应该是“显示分辨率@刷新率”(没有单位),比如“1208x1024@60”。
这里特别提一下,在 Fedora 的官方论坛里,许多人都推荐在“Screen”区段里命名的 Modes(注意和 Modeline 不同)用“显示分辨率_刷新率”的格式,这样可以保证 nVIDIA 显卡驱动选择正确的刷新率,但是我发现用“显示分辨率@刷新率”更好,因为其和 Modeline 同名,这样可以保证引导过程中(使用 Modeline 的 Video Buffer)和登录后(不使用 Modeline 的真正显卡驱动)都能有正确的显示效果。
另外,nVIDIA 显卡驱动有一个讨厌的毛病,它希望你不要手动设置 Modeline 和刷新率范围,所以每次启动时都会在 xorg.conf 里添加一句“### Comment all HorizSync and VertSync values to use DDC: ”。时间长了,就会有一堆了,如果觉得碍眼,就删掉这些没用的东西。