SDB:配置显卡

跳转到:导航搜索

版本:12.2+ 由于本指南假定使用 systemd 和 GRUB 2,因此对于 12.2 以下的旧版本,本指南可能无法工作。


症状

安装 openSUSE 时,X 系统的自动配置可能未能正确配置图形,通常会导致重新启动时出现黑屏,或者图形登录管理器和 X 会话中使用错误的分辨率。

本指南适用于所有受支持的 openSUSE 版本,直至包括 openSUSE Tumbleweed。


原因

通常,原因是您的图形未正确配置。 误配置的原因可能因您的 openSUSE 版本而异。 对于使用单个显示器的现代硬件,配置会在每次会话启动时自动进行 - 不需要永久的显示配置文件。


解决方案

本节提供了一些关于如何解决您的图形问题的指导。 建议首先确定您的 openSUSE 版本,并在继续解决问题之前了解一些实际的图形理论。

内核升级后

如果在 SLED 12 或 openSUSE Leap 中内核升级后,您的显示默认设置为基本显示(或无图形显示),则您的显示驱动程序可能未干净地更新。 此问题已在错误报告中报告,其中 NVIDIA 内核模块未激活,并且在多种类型的 NVIDIA 驱动程序中存在 KMP 异常,因此可能是一个普遍问题。 您可能能够重新启动到上一个内核而不会出现问题(通常在升级后,会通过启动菜单选项提供上一个内核)。 解决方法是强制重新安装所有显示驱动程序(例如 NVIDIA - 如果您需要识别您的显示器,请参阅下文)通过 YaST。(例如,请参阅 openSUSE bug 925437

确定 openSUSE 版本

确定您正在使用的 openSUSE 版本非常重要。 这很简单。 可以通过单击桌面上的“我的电脑”图标并查看“系统”旁边的“OS 信息”部分来完成,或者简单地打开一个 终端 并键入

cat /etc/os-release

您需要知道哪个 openSUSE 版本才能选择最佳的解决方案来解决您的问题。

确定您的显卡版本

确定您的 PC 上安装了哪些图形硬件以及您的 PC 上正在使用哪些图形驱动程序也很重要。 尝试访问终端/Konsole,方法是在您有 GUI 时打开 bash shell(终端/Konsole),或者如果您只有全屏黑屏,请尝试按 Ctrl + Alt + F2,这可能会将您带到一个全屏文本模式,其中包含登录提示(在这种情况下,以普通用户身份登录)。 然后,在两种情况下(bash shell 或全屏),键入以下内容作为普通用户

sudo lspci -nnk | grep -A3 VGA

请注意,在 GNU/Linux 中键入的内容“区分大小写”。 该命令应告诉您 PC 上安装了哪些图形硬件。 例如,在安装了 NVIDIA 专有图形驱动程序的 PC 上,您可以获得

 02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GT200 [GeForce GTX 260] [10de:05e2] (rev a1)
         Subsystem: ASUSTeK Computer Inc. Device [1043:82cf]
         Kernel driver in use: nvidia

使用集成模式设置驱动程序的 Intel 显卡,您可能会看到

 00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller [8086:0402] (rev 06)
         Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:7850]
         Kernel driver in use: i915
         Kernel modules: i915

鉴于您可能遇到了图形问题,您的 PC 可能只显示前两行,而没有内核驱动程序。 如果您有混合图形设备,您甚至可能会看到两个显卡的证据。

确定后

  • 您的 openSUSE 版本,
  • 您的图形硬件,以及
  • 您正在使用的图形驱动程序[无论它是否有效],

请继续阅读本指南中的下一步。

有经验的 Linux 用户应注意,在 11.1 之后的任何 openSUSE 版本中,/etc/X11/xorg.conf 和 /etc/X11/xorg.conf.d/50-[device,monitor,screen].conf 文件都不需要。

故障排除尝试事项

首先尝试的事项(cmdline 选项)

  • 首先尝试的事项是从 GRUB 2 使用启动代码 "nomodeset".
在 openSUSE 13.2 或更新版本中,如果您有 GeForce 61XX 显卡芯片,请首先尝试:nouveau.config=NvMSI=0。
F3:选择无 KMS(Leap 42.2 及更早版本)

如果您已经安装了 openSUSE,请按照 此处 的步骤使用 "nomodeset".

如果您在常规 BIOS 安装的 PC 上安装 openSUSE,请选择 F3 下的“无 KMS”菜单,这与 "nomodeset".

请注意,nomodesetGRUB 2 的内核 cmdline 阻止 AMDGPU、Intel、Modesetting、Nouveau 和 Radeon FOSS DDX 驱动程序起作用。 内核模式设置 (KMS) 的不可用性将阻止 Xorg 完全启动,或者导致它以受损的低分辨率 (fallback) VESA 或 FBDEV 模式下运行,该模式仅适用于简单的故障排除或几乎不需要图形应用程序的服务器。 此选项主要用于确保访问 vttys[1-6] 上的登录提示,并允许编辑配置文件。 请参阅 SDB:Nomodeset:_Work_Around_Graphic_Upgrade_&_Installation_Obstacles 以获取更多nomodeset详细信息。


第二件事尝试(failsafe/safe-settings 启动)

  • 第二件事尝试(如果上述方法不起作用)是从 GRUB 使用更安全设置启动。
F5 - 安全设置选择

如果安装失败,请尝试使用 安全设置 选项(按 F5 加载 GRUB“内核默认”菜单)。

如果您已经安装了 openSUSE,请在 GRUB 2 启动菜单中选择 openSUSE Leap 的高级选项(或您使用的任何 openSUSE 版本)。

如果这有效,您可能希望在此处停止。 但是对于具有已安装系统的用户,无论成功与否,您都可能希望继续阅读,看看是否可以更好地优化您的系统。


第三件事尝试(使用安装配置文件)

  • 第三件事尝试是启动到 multi-user.target(全屏文本模式),并尝试使用安装图形配置文件的 xorg.conf.install 作为临时措施。

按照此博客文章中的指导启动到 runlevel 3:https://forums.opensuse.org/blogs/jdmcdaniel3/how-start-opensuse-12-2-grub-2-into-run-level-3-112/

您的 PC 应该启动到带有登录提示的全屏文本模式。 您现在处于 multi-user.target 中。 以普通用户身份登录,然后键入

sudo cp /etc/X11/xorg.conf.install /etc/X11/xorg.conf

并在提示时输入 root/管理员用户密码。

新用户请注意,Linux 区分大小写,因此在键入大写和小写字符时要准确,因为它们被视为不同的字符。 X11 与 x11 不同。

通常,安装配置文件将使用 FBDEV 图形驱动程序。 在某些情况下,xorg.conf.install 文件将不存在,并且当然,如果这样,则此步骤将不起作用。 完成上述操作后,要测试它是否有效,您可以重新启动系统,方法是键入

systemctl reboot

希望这将允许启动到带有 FBDEV 驱动程序的图形 X 窗口。 如果这有效,您“可能”希望在此处停止。 但是,该驱动程序质量非常低,您可能希望继续下一步,即使您有该功能。

第四件事尝试(编辑 /etc/X11/xorg.conf.d/ 目录)

  • 第四件事尝试是编辑 X 窗口图形的配置文件,以尝试强制启动到特定的图形驱动程序。 如果您尚未阅读上述 实用理论指南,请立即阅读,否则此步骤将难以理解。

再次,启动到 multi-user.target(在上面的第 3 步中添加 3 到启动 cmdline),检查是否存在 /etc/X11/xorg.conf 文件,如果存在,则需要移动该文件,以免干扰您要设置的配置。 因此,如果存在这样的 xorg.conf 文件,则将该文件的名称更改为:

sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.myoldbackup
新用户 - 再次注意 Linux 区分大小写,因此在键入大写和小写字符时要准确,因为它们被视为不同的字符。 X11 与 x11 不同。

然后编辑 /etc/X11/xorg.conf.d/50-device.conf 文件,添加您选择的图形驱动程序的条目。 您需要从具有 root 权限的文本编辑器执行此操作。

例如,如果您使用 Vim(开箱即用),请键入

sudo vim /etc/X11/xorg.conf.d/50-device.conf

在提示时输入 root 密码。

要编辑文件,请按 I 进入插入模式。 进入插入模式后,使用箭头键移动光标并正常键入。

完成必要的编辑后,要退出 Vim,请按 Esc,然后键入“:wq”(不带引号),然后按 Enter。 请非常小心,因为您正在使用 root 权限使用此编辑器。

提示: 在执行上述操作之前,请查看 openSUSE 视频硬件兼容性列表 (HCL),以获取有关在 openSUSE Leap 上可用的图形驱动程序的指导。

例如,您可以将该文件更改为

 Section "Device"
   Identifier "Default Device"
    
   #Driver "radeon"
   Driver "amdgpu"
  
   ## 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 amdgpu 行,以尝试强制加载适用于最新 AMD 卡的开源 "amdgpu" 图形驱动程序。重要的是阅读上述参考的 实用理论指南,以了解可能可用的图形驱动程序。

Icon-warning.png
警告: 发现 "nouveau" 或 "modesetting" 驱动程序对其不起作用的 NVIDIA 显卡用户,应注意 [已过时]openSUSE 12.1 发行说明 (已过时),并根据需要将 "nouveau" 驱动程序列入 /etc/modprobe.d/50-blacklist.conf 文件的黑名单。可以使用 root 权限通过键入以下命令来完成:

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

如果 X 窗口不可用,可能还需要运行 "yast"(您可以使用 root 权限在文本模式下运行 yast)并导航到 yast > 系统 > /etc/sysconfig 编辑器 > 系统 > 内核 > NO_KMS_IN_INITRD 并将其更改为 "yes"。 更改并提交后,保存需要一两分钟时间。(见下文图片示例)。

对于尝试将 "nouveau" 驱动程序列入黑名单的用户,以下是如何指定NO_KMS_IN_INITRD从文本 yast 的示例,如下所示(请注意,必须按照上述描述将 nouveau 列入黑名单)。 因此,要编辑 /etc/sysconfig,请从文本登录处启动 yast,键入

sudo yast

使用空格键、Tab 键、Enter 键和箭头键在文本模式下导航 yast,然后按照示例屏幕操作。

输入 /etc/sysconfig 编辑器
在 sysconfig 编辑器中找到系统
将 NO_KMS_IN_INITRD 设置为 YES

如果需要更复杂的编辑(希望不需要),那么在 /etc/X11/xorg.conf.d/ 目录中进行编辑的另一个示例(但这次是配置监视器而不是指定图形驱动程序)是 openSUSE 论坛示例,用于自定义 50-monitor.conf 文件请注意,您可能需要双击该链接才能连接到正确的页面

然后,在进行任何此类编辑/更改后,再次以普通用户身份像以前一样重新启动,使用

systemctl reboot

希望您的 PC 启动到 X 窗口图形桌面,如果这有效,您 可能 希望在此停止。

第五种尝试方法 (Xorg -configure 创建遗留 xorg.conf 文件)

Icon-warning.png
警告: 以下操作几乎不再有效,除非进行广泛的自定义。 它更有可能生成一个分段错误,而不是一个可用的文件,即使它确实创建了一个文件,它也会包含比与显示相关的部分更多的无用非显示相关部分,从而混淆了潜在有用的部分。 具有潜在用处的那些部分需要进行自定义才能比 Xorg 的自动魔法默认情况下做得更好。
  • 第五种尝试方法 是尝试创建图形的自己的 "经典/遗留" xorg.conf 自定义配置文件。 这更精确地称为 /etc/X11/xorg.conf 文件。 事实上,此步骤在一定程度上做了旧的 sax2 配置向导(在 11.3 中删除)为 openSUSE 所做的事情(但功能较弱)。 有些用户甚至可能从以前的 Linux 安装中复制了他们旧的 xorg.conf 文件,他们可能会尝试一下(尽管它可能无法在 openSUSE Leap 上工作)。 再次,如果您尚未阅读上述参考的 实用理论指南,请立即阅读,否则此步骤将难以理解。

对于此步骤,启动到 multi-user.target(在 boot cmdline 中添加 3),如上述第三步所述。 但是,这次通过键入以下命令创建 xorg.conf 文件的草稿:

sudo Xorg -configure

如果它没有分段错误,它将创建文件 /root/xorg.conf.new。

新用户请注意,Linux 区分大小写,因此在键入大写和小写字符时要准确,因为它们被视为不同的字符。 命令中的 Xorg 与后续 xorg.conf.new 文件名中的 xorg 不同。

现在您需要将该文件移动到正确的位置,以便在启动时由 X 使用,并且您需要重命名该文件。 您可以通过键入以下命令来执行此操作:

sudo mv /root/xorg.conf.new /etc/X11/xorg.conf

如果您幸运的话,您将能够重新启动(如上所述),键入 systemctl reboot,并且您可能会成功启动到 X 窗口桌面。 但是,您也可能需要更改该 /etc/X11/xorg.conf 文件中的驱动程序,为此您需要使用文本编辑器(例如,第 4 步中的 Vim)以 root 权限打开它,然后更改驱动程序。 例如,您可能需要在该文件的设备部分将 "nouveau" 更改为 "modesetting",以便使用 "modesetting" 驱动程序而不是 "nouveau" 驱动程序。

再次,如第 4 步所述,NVIDIA 显卡用户可能需要将 "nouveau" 驱动程序列入黑名单,并使用 sysconfig 编辑器将 NO_KMS_IN_INITRD 更改为 "yes"(参见第 4 步)。

然后,在进行此类编辑/更改后,再次以普通用户身份像以前一样重新启动,使用

systemctl reboot

希望您的 PC 启动到 X 窗口图形桌面,如果这有效,您 可能 希望在此停止。

第六种尝试方法 (专有图形驱动程序)

再次,如第 4 步所述,NVIDIA 显卡用户可能需要在 /etc/modprobe.d/50-blacklist.conf 文件中将 "nouveau" 驱动程序列入黑名单,例如,使用 root 权限通过键入echo "blacklist nouveau" >> /etc/modprobe.d/50-blacklist.conf并且还将 NO_KMS_IN_INITRD 更改为 "yes" 并使用 sysconfig 编辑器 (参见第 4 步)。

如果您的 PC 具有 Intel 集成显卡或 VIA 显卡或其他显卡,则需要再次查阅 实用理论指南,以确定 VIA 和 Intel 显卡有哪些选项。

第七种尝试方法 (仅限专家 - udev 编辑)

  • 第七种尝试方法 - 尝试 Udev 编辑作为最后的手段。
Icon-warning.png
警告: 此 UDEV 部分正在开发中,尚未达到应遵循的状态。 由于复杂性,目前仅提供了一些参考(直到该部分可以正确编写为止)。 此外,本节最终将为 Linux 专家编写,而不是为新手或普通用户编写
sudo udevd -V
udevadm test /class/input/eventX
udevadm info -e | grep ID_INPUT (KEYBOARD, MOUSE, KEY, TOUCHPAD, ...)

重新插拔输入设备是否会使其出现? 如果无法删除/连接它们,请尝试

udevadm trigger -v --subsystem-match=input


上述 UDEV 部分需要进行大量工作 ....

参见

此 wiki 是为与 openSUSE bug 报告 608237 相关的操作而创建的。 相关的 issue 也在 openSUSE 功能跟踪中: openFATE #308357: 11.3 中 Sax2 的替代品


参考资料

以下是一些指向其他 wiki 的引用,这些 wiki 提供了有关在 openSUSE 中配置图形的有用信息。

  • 在双头模式下配置图形 适用于 openSUSE 11.2 及更早版本,但可能适用于 openSUSE Leap (此参考 wiki 位置的链接最终将在 wiki 过渡过程中更新)
  • 使用 XRandR 配置多个屏幕 适用于 openSUSE 11.3 及更早版本,但可能适用于 openSUSE Leap (此参考 wiki 位置的链接最终将在 wiki 过渡过程中更新)
  • 配置 openSUSE 图形卡 是关于同一主题的较旧的 wiki,但技术内容较少(关于可用的不同选项/步骤)。
  • 通过命令行界面配置图形卡 是 openSUSE 11.3 及更早版本的较旧 wiki(可能部分适用于 Leap)(此参考 wiki 位置的链接最终将在 wiki 过渡过程中更新)
  • 监视器设置 是一个通用说明(几乎没有具体内容),关于应用自定义监视器设置 (此参考 wiki 位置的链接最终将在 wiki 过渡过程中更新)
  • 3D 加速 是一个简单的指南,介绍如何在 Gnome 和 KDE4 上启用 3D 加速 (此参考 wiki 位置的链接最终将在 wiki 过渡过程中更新)
  • 图形卡故障排除 是使用 openSUSE 11.1 和 11.2 编写的,尚未更新以反映自 openSUSE 11.3 以来的变化(尤其是关于 nouveau 驱动程序需要列入黑名单)。 因此,在遵循该指南时必须小心 (此参考 wiki 位置的链接最终将在 wiki 过渡过程中更新)
  • openSUSE 视频卡硬件兼容性列表 (HCL) 提供了一个链接,指向用户提供的数据,这些数据提供了他们的视频卡与 openSUSE Linux 的兼容性。