Fedora 20 上的 libGL 存在问题 - 无法加载驱动程序 swrast?

Fedora 20 上的 libGL 存在问题 - 无法加载驱动程序 swrast?

首先,在解释我的问题之前,我参考了之前在 Ask.Fedora 上提出的关于 libGL 错误的问题,可以从中看到这里

我一直在尝试玩“FTL”游戏,但遇到了一些问题,图形效果非常差,声音不断变成奇怪的嗡嗡声。经过进一步查看,我发现我的终端在游戏启动时输出了以下消息。

libGL error: failed to load driver: swrast
libGL error: Try again with LIBGL_DEBUG=verbose for more details.

经过进一步研究,我发现这个问题已经影响了多个 Linux 发行版上的多个用户,并且都有不同的解决方案。下面,我提供了尽可能多的信息来帮助诊断我的具体问题。

这似乎也类似于错误 971437在 Red Hat 错误跟踪器上

在 glxinfo 上获取 libGL 调试信息时:

$ LIBGL_DEBUG=verbose glxinfo | grep direct
libGL: screen 0 does not appear to be DRI2 capable
libGL: OpenDriver: trying /usr/lib64/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib64/dri/swrast_dri.so
libGL: Can't open configuration file /home/jflory/.drirc: No such file or directory.
libGL: Can't open configuration file /home/jflory/.drirc: No such file or directory.
direct rendering: Yes

我感觉我的显卡有点问题,因为我对 Linux 非常陌生,我不确定我需要什么才能正确运行游戏。下面是我在此过程中尝试安装的一些软件包。

$ cat /etc/ld.so.conf.d/nvidia-lib64.conf
cat: /etc/ld.so.conf.d/nvidia-lib64.conf: No such file or directory

$ cat /etc/ld.so.conf.d/nvidia-lib.conf
cat: /etc/ld.so.conf.d/nvidia-lib.conf: No such file or directory

$ sudo yum install mesa-libglapi
Loaded plugins: langpacks, refresh-packagekit
Package mesa-libglapi-9.2.5-1.20131220.fc20.x86_64 already installed and latest version
Nothing to do

$ sudo yum install xorg-x11-drv-nvidia-libs.i686
Loaded plugins: langpacks, refresh-packagekit
No package xorg-x11-drv-nvidia-libs.i686 available.
Error: Nothing to do

我在晚上又安装了一些东西,但似乎都没有什么效果,所以我没有思考它们是相关的。

如果需要更多信息,请告诉我,我会提供。提醒一下,我对 Linux 还很陌生,仍在学习,因此我对我能做的所有不同 UNIX 操作并不是最熟悉的。

以下是我的系统规格的简要概述:

$ uname -a
Linux localhost.localdomain 3.12.5-302.fc20.x86_64 #1 SMP Tue Dec 17 20:42:32 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

$ grep "model name" /proc/cpuinfo
model name      : Intel(R) Core(TM) i3-3120M CPU @ 2.50GHz

谢谢!

编辑#1

我运行sudo yum install mesa-dri-drivers后发现它已经安装在我的系统上了。

$ sudo yum install mesa-dri-drivers
Loaded plugins: langpacks, refresh-packagekit
Dropbox                                            |  951 B     00:00     
google-chrome                                      |  951 B     00:00     
updates/20/x86_64/metalink                         |  18 kB     00:00     
updates                                            | 4.6 kB     00:00     
updates/20/x86_64/primary_db                         | 3.0 MB   00:06     
updates/20/x86_64/updateinfo   FAILED                                          
ftp://mirror.nexicom.net/pub/fedora/linux/updates/20/x86_64/repodata/updateinfo.xml.gz: [Errno 14] curl#56 - "response reading failed"
Trying other mirror.
(1/2): updates/20/x86_64/updateinfo                  | 309 kB   00:01     
(2/2): updates/20/x86_64/pkgtags                     | 755 kB   00:23     
Package mesa-dri-drivers-9.2.5-1.20131220.fc20.x86_64 already installed and latest version
Nothing to do

编辑#2

执行后lspci -vvv -s 00:02.0,我的输出如下:

# lspci -vvv -s 00:02.0
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) (prog-if 00 [VGA controller])
    Subsystem: Toshiba America Info Systems Device fa20
    Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Interrupt: pin A routed to IRQ 16
    Region 0: Memory at c8000000 (64-bit, non-prefetchable) [size=4M]
    Region 2: Memory at c0000000 (64-bit, prefetchable) [size=128M]
    Region 4: I/O ports at 4000 [size=64]
    Expansion ROM at <unassigned> [disabled]
    Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit-
        Address: 00000000  Data: 0000
    Capabilities: [d0] Power Management version 2
        Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [a4] PCI Advanced Features
        AFCap: TP+ FLR+
        AFCtrl: FLR-
        AFStatus: TP-

答案1

原始答案取自 AskFedora

原始评论

请尝试i915.modeset=1在启动时添加到内核命令行(您应该在 GRUB 中编辑 Fedora 行并将其添加到启动配置中的 linux/linux16/linuxefi 行的末尾,然后按 F10),然后glxinfo在启动时运行。

另外,我想知道启动 Fedora 时你会看到什么?是填充了白色的 Fedora 徽标,还是屏幕底部的 3 个简单的条?

更新

glxinfo从添加到内核启动命令行后的最后一个输出中可以看出i915.modeset=1,您的图形驱动程序已加载并正常运行。之前,它根本没有加载,您使用的是通用驱动程序。

但这其实是个 bug。内核应该自动加载 i915 驱动程序。

更新 2

更新 2:要永久更改内核命令行,您可以:

  1. 如果您不想运行grub2-mkconfig生成新的配置文件,您应该编辑/boot/grub2/grub.cfg并将命令行选项(其格式与您在启动时编辑启动项时看到的格式完全相同)添加到 Fedora 菜单项中。
  2. 即使您采用上述解决方案,您可能有一天会运行grub2-mkconfig -o /boot/grub2/grub.cfg创建一个新的配置文件(它将完全覆盖,/boot/grub2/grub.cfg因此您对它的更改将丢失)。因此,我建议也在行末(但在结束之前)编辑/etc/default/grub并添加;这样它就会变成这样:i915.modeset=1GRUB_CMDLINE_LINUX="

GRUB_CMDLINE_LINUX="vconsole.font=latarcyrheb-sun16 $([ -x /usr/sbin/rhcrashkernel-param ] && /usr/sbin/rhcrashkernel-param || :) rhgb quiet i915.modeset=1"

该错误已在此处报告。

相关内容