SDB:配置显卡

跳转至: 导航, 搜索

配置 openSUSE X 窗口显示 编辑


症状

在安装 openSUSE 的时候,X 的自动配置可能无法正确地配置显卡。通常这会导致一重启就黑屏,或者是显示器的分辨率错误。

这个向导适用于当前所有支持中的 openSUSE 版本,包括 openSUSE-12.1。


原因

常见的原因是你的图形被正确配置。根据你的 openSUSE 的版本不同,错误配置的原因也可能变化。


解决方案

这一节提供了一些如何解决你的图形问题的指导。在解决问题之前,最好先确定一下自己的 openSUSE 版本并读一些实用的图形理论知识。

确定 openSUSE 版本

知道自己在用什么 openSUSE 版本是很重要的。这很容易知道,你可以点击桌面上的“我的电脑”图标,然后在“系统”里的“操作系统信息”区域找到,或者直接打开一个终端,然后输入:

cat /etc/os-release

你需要知道你用的 openSUSE 版本以选择解决问题的最优方案。

openSUSE 中实用的显卡理论

了解用户电脑上装了什么显卡和什么显卡驱动也很重要。这里有一个指导,这篇文章也将很快被纳入 openSUSE 显卡实用理论维基。如果你没有登录 openSUSE 论坛,你可能要再点一次链接

在你继续这个页面下的配置工作之前,你最好读一下关于你的显卡制造商的那一节(比如 ATI、nVidia、Intel 或 VIA)。

一旦你已经确定了

  • 你的 openSUSE 版本,
  • 你的显卡硬件,以及
  • 你目前正在使用的显卡驱动[不管它工作正常与否],

请继续阅读。

资深的 Linux 用户应该会注意到,在 openSUSE-11.2 到 11.4 中,很多情况下 /etc/X11/xorg.conf 文件是不需要用到的。

没有 SaX2

版本:11.3, 11.4, 12.1 从 openSUSE-11.3 开始,旧的显卡配置向导 “sax2” 就不再包括在 openSUSE 里了,所以这一节提供了当出现图形配置问题的时候,如何恢复 openSUSE-11.3 / 11.4 / 12.1 的显示的多种建议。openSUSE-11.2 或更早期的用户请到下面的 带有 SaX2章节。


第一招 (nomodeset)

  • 第一招是在 grub 里用 nomodeset 这个代码来启动。在 openSUSE-12.1 发行说明里有相关的指导。比如在 grub 的选项行里输入:
nomodeset

新用户们,为了让你们理解得更充分,请注意,你应该在开机之后看到 openSUSE 菜单的时候就输入这些启动代码。

以 nomodeset 启动代码开机

在输入这些之后,按回车键继续启动。如果运气好,你就可以进入到一个可以工作的桌面了。openSUSE-12.1 发行说明里提供了更多的细节,特别是如何让这个参数永久固定。如果这招管用,你可以止步于此了。

第二招 (failsafe/safe-settings boot)

  • 第二招(如果上面的方法不管用)是在 grub 中尝试以下启动方式:(1) grub F5 “内核默认”菜单项下面的 safesettings 模式;(2) failsafe 模式。运气好的话,这招可以让你进入一个可以工作的桌面。

如果这招管用的话,你“也许”应该止步于此了。但是如果用户已经装有系统了,不管成功与否,你总是想继续读下去看看如何更好地优化你的系统吧?

第三招(使用安装配置文件)

  • 第三招 是从第三运行级别(一种只有文字的模式)启动然后试试把图形安装配置文件 xorg.conf.install 作为一个临时的方法。如果你想这样做的话,在 openSUSE 的菜单出现的时候,按一下 3,你就可以在选项行看到 3 这个字符了。
Boot-to-run-level-3

然后再按回车键,你的电脑就会启动到一个全屏字符的模式并出现一个登录提示。你现在就是在第三运行级别里。以一个普通用户登录然后输入:

su -c 'cp /etc/X11/xorg.conf.install /etc/X11/xorg.conf'

当提示要输密码的时候,请输入 root 或管理员的密码。

新用户请注意,Linux 是大小写敏感的,所以在输入大写和小写字母的时候应该特别小心,因为它们是不同的。X11 和 x11 是不同的命令。

通常情况下,这个安装配置文件会使用 fbdev 图形驱动。某些情况下,xorg.conf.install 文件不存在,这时这一步是不会有效果的。要想知道这有没有用,你可以输入以下命令重启你的系统:

su -c 'shutdown -r now'

运气好的话,你可以用 fbdev 驱动启动进入一个图形化的 X 窗口系统。如果这招管用,你“也许”想要止步于此了。但是这驱动实在太差了,所以你最好还是继续看下去……

第四招(编辑 /etc/X11/xorg.conf.d/ 目录)

  • 第四招是编辑 X 窗口驱动的配置文件,强制从某个图形驱动启动。如果你没有读过实用理论维基的话,赶紧先读下吧,否则这一步可能会很难理解。

再一次,用上面的方法启动到第三运行级别。检查一下 /etc/X11/xorg.conf 文件是否存在,如果存在的话,你需要把那个文件弄掉,以免和下面你要设置的配置相干扰。你可以把这个文件的名字改掉,比如这样:

su -c 'mv /etc/X11/xorg.conf /etc/X11/xorg.conf.myoldbackup'
新用户们,再次注意啦,Linux 是大小写敏感的,所以输入大小写的时候一定要小心,X11 和 x11 是不同的东西。

然后编辑 /etc/X11/xorg.conf.d/50-device.conf 文件,为你选择的图形驱动添加条目。你可能需要用一个文本编辑器(比如 mc 编辑器——强烈推荐,点击链接查看安装和使用方法)或者 vi 编辑器 或者 nano 编辑器 或者 joe 编辑器……编辑器有很多的,但是你必须要用 root 权限运行编辑器打开文件。

比如,如果 mc 编辑器已经装好了,就可以输入下面的命令来做出更改:

su -c 'mcedit /etc/X11/xorg.conf.d/50-device.conf'

当被提示输入密码的时候请输入 root 密码,改好之后退出 mc 编辑器。用 root 权限的编辑器或文件管理器的时候要格外小心哟。

提示:在改动之前,你可以在 openSUSE 显卡兼容性列表 (HCL) 中看看 openSUSE-11.3 里有哪些图形驱动。

比如,你可以在这里改:

Section "Device"
  Identifier "Default Device"
   
  #Driver "radeon"
  Driver "nv"
 
  ## Required magic for radeon/radeonhd drivers; output name
  ## (here: "DVI-0") can be figured out via 'xrandr -q'
  #Option "monitor-DVI-0" "Default Monitor"
   
EndSection

在上面的例子中,加了 Driver nv 这一行,强制加载 nVidia 显卡的开源驱动 nv。要想知道有哪些显卡驱动可用,最好先看看实用理论指导

注意: nVidia 显卡驱动的用户如果发现 nouveau 驱动不工作,那么应该注意一下 openSUSE-11.3 发行说明,把 nouveau 驱动在 /etc/modprobe.d/50-blacklist.conf 文件里禁用掉。可以这样做:

echo "blacklist nouveau" >> /etc/modprobe.d/50-blacklist.conf

可能还需要运行一下 yast (如果没有 X 窗口的话,你也可以在文本模式下以 root 权限运行 yast)然后找到 yast > System > /etc/sysconfig Editor > System > Kernel > NO_KMS_IN_INITRD 把它改成“是”。改好之后可能要一两分钟才生效。(请看下面图片的例子)。

想要禁用 nouveau 驱动的用户注意了,如何在文本模式的 yast 里更改 NO_KMS_IN_INITRD 值的方法在这里(注意你是要禁用掉 nouveau 驱动才这么做)。所以要编辑 /etc/sysconfig 的话从文本模式启动 yast:

su -c yast

用空格键、Tab 键和方向键在文本模式的 yast 里移动光标,然后照着示例做。

进入 /etc/sysconfig 编辑器
在 sysconfig 编辑器里定位到 System
把 NO_KMS_IN_INITRD 改成 YES

万一需要用到更复杂的编辑(但愿不要),可以看一下 openSUSE 论坛中自定义 50-monitor.conf 文件的教程注意可能要点两次链接才能连接到正确的页面

在改完之后,回到了正常的用户身份,用这个命令重启:

su -c 'shutdown -r now'

运气好的话,你的电脑已经能启动进 X 窗口图形桌面了。如果这招管用的话,你“也许”希望止步于此了。


第五招 (用 Xorg -configure 创建一个老式的 xorg.conf 文件)

  • 第五招是创建一个你自己的“经典的/老式的” xorg.conf 自定义图形配置文件,也就是 /etc/X11/xorg.conf 文件。事实上,这一步就是老的 sax2 配置向导在 openSUSE 里干的(不过没那么能干)。有些用户可能还留有一份以前的 Linux 系统的老的 xorg.conf 文件,可以试下(但是可能在 openSUSE-11.3 里不起作用)。再说一下,如果你没读过实用理论指导的话,赶紧去读一下吧,否则这一步可能很难理解。

这次,正如上面那样,再次启动到第三运行等级。但是这一次,用这个命令来创建一个 xorg.conf 的草稿:

su -c 'Xorg -configure'

这会创建 /root/xorg.conf.new 文件。

新用户们注意啦,Linux 是大小写敏感的,所以输入大小写的时候一定要小心,因为它们是不同的。命令中的 Xorg 和文件名 xorg.conf.new 中的 xorg 是不同的。

你现在要把这个文件移到一个合适的位置,这样 X 启动的才能使用它,并且你需要重命名这个文件。你可以这么做:

su -c 'mv /root/xorg.conf.new /etc/X11/xorg.conf'

如果你幸运的话,你就可以用 su -c 'shutdown -r now' ' 命令来重启了进入 X 窗口桌面了。但是你可能还是要用文本编辑器打开 /etc/X11/xorg.conf 文件来改一下驱动(用 root 权限)比如把 nouveau 改成 nv 或者把 nv 改成 nouveau。

再一次,就算上面的第四招,nVidia 显卡用户可能要把 nouveau 驱动禁用掉并且在 sysconfig 编辑器中把 NO_KMS_IN_INITRD 改成“是”(参见上面的第四招)。

改后好,用

su -c 'shutdown -r now'

命令重启。运行好的话你就能进入 X 窗口图形桌面了。如果这招管用,你“可能”希望止步于此。

第六招(专有显卡驱动)

再一次,正如上面的第四招所述,nVidia 显卡用户可能要禁用掉 nouveau 驱动:

        echo "blacklist nouveau" >> /etc/modprobe.d/50-blacklist.conf

并且把 NO_KMS_IN_INITRD 改成“是”。(详见上面的第四招)

如果你的电脑用的是 Intel 或 VIA 或其他品牌的显卡,你可能要再去查查实用理论指导来确认 VIA 或 Intel 的显卡有什么选项。

第七招(sax3 开发版)

虽然 sax2 已经停止开发了,但是 sax3 还在开发中。它还没有开发完,还在雏形状态,但是可能挺有用的。你可以在 sax3 开发页面找到它。

openSUSE-11.3 里 sax3 的供应源是这个:

 http://download.opensuse.org/repositories/X11:/sax/openSUSE_11.3/

openSUSE-11.4 里 sax3 的供应源是这个:

 http://download.opensuse.org/repositories/X11:/sax/openSUSE_11.4/

openSUSE-12.1 里 sax3 的供应源是这个:

 http://download.opensuse.org/repositories/X11:/sax/openSUSE_12.1/

根据你的 openSUSE 版本把合适的供应源添加到系统里,然后安装并用 root 权限运行 sax3 吧!

第八招(仅限专家:编辑 udev)

  • 第八招是编辑 udev,做最后的挣扎。
注意: udev 区域还在撰写中,还不能完全照搬。这些只是一些参考资料。另外,这些东西基本就是为 Linux 专家写的,不适合普通用户。
/sbin/udevd -V

udevadm test /class/input/eventX

udevadm info -e | grep ID_INPUT (KEYBOARD, MOUSE, KEY, TOUCHPAD, ...)

udevadm trigger -v --subsystem-match=input



带有 Sax2

版本:11.1, 11.2 这一节是写给 openSUSE-11.2 或更早期版本的用户看的,在那些系统里,SuSE-GmbH 开发的 sax2 图形配置向导还能用。注意上面的那些“招数”里,openSUSE-11.3 适用的也可以用在更早的 openSUSE 版本里。


注意这一节不适用于 openSUSE-11.3 到 12.1 的用户。如果他们想要试一下新版的 sax 的话,可以看上面的“第七招”,里面有正在开发中的 sax3

ATI 或 nVidia 显卡

如果你有 ATI 或 nVidia 显卡驱动的话,你可以照着 这里折腾一下。

用 sax2 向导配置所有的显卡

在 openSUSE-11.2 或更后的版本里,要配置 X 窗口图形的话,可以启动到第三运行等级(上面的第三招里有提到),以普通用户登录,备份现存的 /etc/X11/xorg.conf 文件:

su -c 'cp /etc/X11/xorg.conf /etc/X11/xorg.conf.mybackup.txt'

and then run the program sax2 to configure one's graphics. 然后运行 sax2 来配置显卡。

要查看已安装了哪些显卡,可以输入以下命令:

su -c 'sax2 -p'

要查看在 openSUSE 中能用哪些显卡,这里个向导:openSUSE Video Hardware Compatibility List (HCL)

在决定好要在 openSUSE 里用哪个驱动之后(比如 vesa),就可以让 sax2 来为第一个显卡(就是上面的 chip 0)创建 xorg.conf 文件了:

su -c 'sax2 -r -m 0=vesa'

然后用普通用户启动 X 窗口来测试一下(别用 root):

startx

也可以在第三运行等级的时候重启电脑:

su -c 'shutdown -r now'

参见


引用来源

Below are some references to other wiki, which provide useful information on configuring one's graphics in openSUSE.

  • Configuring graphics in Dual Head mode for openSUSE-11.2 and earlier, although likely applicable to openSUSE-11.3 (link to this reference wiki location to be updated eventually as part of wiki transistion process)
  • Multiple Screens Using XRandR for openSUSE-11.2 and earlier, although likely applicable to openSUSE-11.3 (link to this reference wiki location to be updated eventually as part of wiki transistion process)
  • Configuring openSUSE graphic cards is an older wiki on the same subject, but with less technical content (as to different options/steps available).
  • Configuring graphic cards through the command line interface is an older wiki for openSUSE-11.2 and earlier (likely applicable in part to 11.3) (link to this reference wiki location to be updated eventually as part of wiki transistion process)
  • Monitor Settings is a general write up (with minimal specifics) on applying custom monitor settings (link to this reference wiki location to be updated eventually as part of wiki transistion process)
  • 3D Acceleration is a simple guide on how to enable 3D acceleration on Gnome and KDE4 (link to this reference wiki location to be updated eventually as part of wiki transistion process)
  • Graphic card troubleshooting was written with openSUSE-11.1 and 11.2 in mind and has not been updated to reflect changes as of openSUSE-11.3 (especially wrt the nouveau driver requiring blacklisting). Hence care must be applied when following that guide (link to this reference wiki location to be updated eventually as part of wiki transistion process)
  • openSUSE Hardware Compatibility List (HCL) for Video cards provides a link to data provided by users on the compatibility of their video cards with openSUSE Linux.