Fedora 20 上的 libGL 問題 - 無法載入驅動程序 swrast?
首先,在我解釋我的問題之前,我參考了之前在 Ask.Fedora 上提出的關於 libGL 錯誤的問題,可以在這裡看到。
我一直在嘗試玩“FTL - Faster Than Light”遊戲,但我遇到了圖形表現異常糟糕的問題,並且聲音不斷變成奇怪的嗡嗡聲。進一步看,我注意到我的終端在遊戲啟動期間輸出了以下消息。
libGL error: failed to load driver: swrast libGL error: Try again with LIBGL_DEBUG=verbose for more details.
在做了一些進一步的研究之後,這個問題似乎已經影響了許多 Linux 發行版上的多人,他們都有不同的解決方案。下面,我提供了盡可能多的資訊來幫助診斷我的具體問題。
這似乎也類似於Red Hat 錯誤跟踪器上的錯誤 971437
在 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-
Ask Fedora 上提供的原始答案(來源)
原評論
另外,請嘗試
i915.modeset=1
在啟動時添加到核心命令行(您應該在 grub 中編輯 Fedora 行並將其添加到啟動配置中 linux/linux16/linuxefi 行的末尾,然後按 F10),然後glxinfo
在啟動時執行。另外,我想知道您在啟動 Fedora 時會看到什麼?用白色填充的 Fedora 標誌,還是螢幕底部的 3 個簡單條?
更新
glxinfo
從添加到核心啟動命令行後的最後輸出中可以看出i915.modeset=1
,您的圖形驅動程序已載入並成功執行。以前,它根本不載入,您使用的是通用驅動程序。但是,這實際上是一個錯誤。核心應該已經自動載入了 i915 驅動程序。請使用足夠的數據報告有關此問題的錯誤:https ://bugzilla.redhat.com/enter_bug.cgi?product=Fedora如果您不這樣做,我可以自己做,但他們可能需要一些我無法提供的數據. 謝謝!
更新 2
要永久更改核心命令行,您可以:
- 如果您不想執行
grun2-mkconfig
生成新的配置文件,您應該編輯/boot/grub2/grub.cfg
並添加命令行選項(格式與您在啟動時編輯啟動項時看到的完全相同)到 Fedora 菜單項。- 即使您使用上述解決方案,您也可能有一天
grub2-mkconfig -o /boot/grub2/grub.cfg
會創建一個新的配置文件(這將完全覆蓋/boot/grub2/grub.cfg
,因此您對它的更改將失去)。因此,我建議在行尾也進行編輯/etc/default/grub
和添加(但在關閉“之前);這樣它就會變成這樣:i915.modeset=1``GRUB_CMDLINE_LINUX=
GRUB_CMDLINE_LINUX="vconsole.font=latarcyrheb-sun16 $([ -x /usr/sbin/rhcrashkernel-param ] && /usr/sbin/rhcrashkernel-param || :) rhgb quiet i915.modeset=1"