SDBnomodeset: 图形升级与安装障碍解决方法

跳转到:导航搜索


  • 您尝试安装 Tumbleweed 或 Leap,但当您按下 Enter 键从 openSUSE 安装屏幕继续时,或者稍后,屏幕变黑,显示器显示“无信号,进入省电模式”或类似信息,或者直接变黑。
  • 您尝试了几个最新的快照,但结果总是相同。
  • 您的显卡是 Intel、AMD 或 NVidia 的组合吗?“Optimus”这个词是否贴在标签上或在手册中?
  • 您是否刚更换或添加了显卡,然后在进行 Grub 菜单选择后出现黑屏或超出范围的消息?

如果以上情况的任何组合都成立,则成功安装可能需要额外的步骤来完成,并且在从新安装启动后需要额外的步骤。

首先要做的是确保您的启动介质没有问题。尝试在另一台电脑或笔记本电脑上使用它,以确保它确实可以启动。超出本文范围的是关于此的详细信息。

完成此操作后,可能需要尝试特殊的启动选项nomodesetnomodeset是您在此处阅读内容的主要原因。nomodeset旨在主要作为一种故障排除工具,一种使显示器能够工作的补丁,但以受损模式运行,速度慢但足以进行测试、数据收集和必要的配置调整。

以下是如何使用nomodeset:

进行测试。当第一个 openSUSE 安装菜单出现时,将高亮移动到 "安装" 并按下 "e" 键。然后将光标移动到以 "linu" 开头并以 "splash=silent" 和/或 "quiet" 结尾的行末尾(可能已换行),不要输入任何引号,添加一个空格和 "nomodeset",然后按F10Ctrl-X查看是否避免了黑屏和无信号。如果看到屏幕底部移动的绿色条,那很好。按ESC键以查看启动过程进行时更多信息。

安装完成后并首次启动后,检查/etc/default/grub。可能nomodeset包含在GRUB_CMDLINE_LINUX_DEFAULT=行中。它会严重降低您使用的桌面或窗口管理器的性能,因为它旨在成为一个故障排除参数。它的应用通过禁用 内核模式设置 (KMS) 来阻止 AMD、Intel 和 NVidia 显卡的适当 FOSS DDXDIX 显示驱动程序的使用。

另一方面,nomodeset是某些非 FOSS(即专有)显示驱动程序(历史上是 NVidia 的驱动程序)所需的参数。如果您已经确定要安装非 FOSS 显示驱动程序,请将以下内容视为信息,因为您需要遵循为您的特定显卡驱动程序提供的说明。如果您有 Optimus 或其他双显卡硬件,则必须遵循双显卡硬件的替代安装说明。

名为 "modesetting" 的通用 FOSS 默认 DIX 显示驱动程序由 xorg-x11-server 包提供。它实际上是首选的显示驱动程序,用于取代主要品牌硬件特定的 DDX 驱动程序的绝大部分,这些驱动程序是

  • "amdgpu",由 xf86-video-amdgpu 包提供,适用于非古老的 AMD,
  • "radeon",由 xf86-video-ati 包提供,适用于古老的 AMD/ATI,
  • "intel",主要由 xf86-video-intel 包提供,适用于古老的 Intel,以及
  • "nouveau",由 xf86-video-nouveau 包提供,适用于 NVidia,不要与内核提供的同名 nouveau 设备驱动程序混淆。

没有专门为非古老的 Intel GFX 提供的 Intel 特定显示驱动程序。Intel 向其 Linux 驱动程序开发人员支付报酬,让他们将大部分精力投入到 FOSSmodesettingDIX 显示驱动程序中。xf86-video-intel DDX 处于维护模式,自 2015 年以来没有官方新版本。

即使modesetting是默认显示驱动程序,大多数安装都包含所有 xf86-video-* 包,从而覆盖了技术默认设置。这是因为没有足够简单的规则来确定哪个显示驱动程序最适合特定的硬件。安装程序会因任何尝试进行理想选择而导致的代码和数据库而变得臃肿。因此,下一步是评估性能。在 DDX 显示驱动程序中,amdgpu 最有可能优于模式设置 DIX,而 nouveau 最不可能。

如果性能似乎较差,或者应该出现的登录屏幕除了鼠标指针之外什么也没有,或者更糟,下一步是尝试启动时删除nomodeset选项。通过在启动加载程序菜单中按下“e”键(如安装时一样),然后删除nomodeset,然后继续进行操作。如果启动正常进行,那就太好了。登录后,打开 YaST 启动加载程序,删除nomodeset,然后保存,然后更改将保留到后续启动。

如果您没有看到任何改进,或者改进似乎没有达到预期,或者您只是想知道其他显示驱动程序的性能如何,请切换。通常,切换到modesetting驱动程序的最简单方法是删除当前使用的 xf86-video- 包,然后重新启动服务器或重新启动。如果已经modesettingDIX 正在使用,因为适用于您的硬件的 xf86-video-* 包未安装,请安装它并重新启动。仅仅安装 xf86-video-* 包并不总是足够。在/etc/X11/xorg_pci_ids/modesetting.ids可能存在与您的显卡匹配的 PCI ID。可以删除该行以关闭modesettingDIX 首选项,或者如果尚未存在,可以添加一个以启用它。也可以通过“Section "Device"”中的 Driver 行在/etc/X11/xorg.conf/etc/X11/xorg.conf.d/50-device.conf.

中切换显示驱动程序。要确定当前正在使用或最近使用的显示驱动程序,可以使用inxi -G或文件/var/log/Xorg.0.log进行检查。在inxi输出中,正在使用或最近使用的显示驱动程序是服务器版本之后但在“Display:”之后并后跟“unloaded”的第一个命名的驱动程序。在日志中,正在使用的 xf86-video- 驱动程序的名称将与“(0):”或类似内容一起重复无数次。

inxi可能尚未安装。它位于 OSS 仓库中,可以使用 zypper 或 YaST 进行安装。来自inxi -GMSaz的输出是提供有关您计算机的视频问题帮助请求的信息的良好起点。

如果您仍然没有看到任何改进,或者改进仍然没有达到预期,您可以尝试将图形启动过程更改为文本过程,该过程具有不同的程度。要测试,再次在启动加载程序菜单中按下 "e" 键,如删除nomodeset时一样,但这次进行以下更改

  • removequiet和/或
  • removesplash=silent和/或
  • 附加plymouth.enable=0

如果这些更改的任何组合都能产生令人满意的结果,请返回 YaST 启动加载程序以使删除永久生效,就像使用nomodeset一样。与其使plymouth.enable=0永久生效于启动加载程序中,不如通过使用 YaST 或 Zypper 删除 plymouth 软件来节省磁盘空间和更新带宽(如果它不是由其他原因必需的,例如磁盘加密)。

如果仍然不令人满意,请在 论坛opensuse-support 邮件列表中提出问题。支持者需要您提供信息以确定下一步该怎么做。