我的 NVidia GTX 960 卡在 Ubuntu 上使用 Unity 产生了 openGL 问题

arm*_*llo 5 nvidia xorg unity graphics opengl

我已经在启动板上发布了一个关于此的错误,但希望这里的某个人可以对我可以尝试的其他事情提出一些建议。

背景: 我有一个带有 NVidia GTX 550 Ti 适配器的工作 Ubuntu 14.10 系统。昨天我用 [ASUS Strix] NVidia GTX 960 替换了该适配器。我使用 X-org-edgers PPA 驱动程序,版本 346,因为没有 Ubuntu-Universe 驱动程序明确支持我的卡。

行为: 正常启动到 Ubuntu 时,我应该看到启动面板和顶部栏,但我没有看到。我确实看到了我的桌面图标并且可以与系统进行交互。声音有效。如果我切换到终端 (ctrl+alt+f2),我可以登录,导出 display=:0,然后从那里启动一个 gnome-terminal,然后打开 Firefox 和其他。没有窗户装饰,也没有他们的窗户合成。

似乎所有 Unity 服务(包括屏幕截图、音量控制等)也未加载。

一些数据 在执行 dconf 重置和“setsid unity”后,我从终端中的 compiz 获得的转储是:

aaron@naegleria:~$ dconf reset -f /org/compiz
aaron@naegleria:~$ setsid unity
[1] 3166
stop: Unknown job: unity-panel-service
compiz (core) - Info: Loading plugin: core
compiz (core) - Info: Starting plugin: core
start: Unknown job: unity-panel-service
compiz (core) - Info: Loading plugin: ccp
compiz (core) - Info: Starting plugin: ccp
compizconfig - Info: Backend : gsettings
compizconfig - Info: Integration : true
compizconfig - Info: Profile : unity
compiz (core) - Info: Loading plugin: composite
compiz (core) - Info: Starting plugin: composite
compiz (core) - Info: Loading plugin: move
compiz (core) - Info: Starting plugin: move
compiz (core) - Info: Loading plugin: place
compiz (core) - Info: Starting plugin: place
compiz (core) - Info: Loading plugin: compiztoolbox
compiz (core) - Info: Starting plugin: compiztoolbox
compiz (core) - Error: Plugin 'opengl' not loaded.

compiz (core) - Info: Loading plugin: resize
compiz (core) - Info: Starting plugin: resize
compiz (core) - Info: Loading plugin: snap
compiz (core) - Info: Starting plugin: snap
compiz (core) - Info: Loading plugin: mousepoll
compiz (core) - Info: Starting plugin: mousepoll
compiz (core) - Info: Loading plugin: imgpng
compiz (core) - Info: Starting plugin: imgpng
compiz (core) - Info: Loading plugin: session
compiz (core) - Info: Starting plugin: session
compiz (core) - Info: Loading plugin: vpswitch
compiz (core) - Info: Starting plugin: vpswitch
compiz (core) - Info: Loading plugin: regex
compiz (core) - Info: Starting plugin: regex
compiz (core) - Info: Loading plugin: workarounds
compiz (core) - Info: Starting plugin: workarounds
compiz (core) - Error: Plugin 'opengl' not loaded.

compiz (core) - Info: Stopping plugin: workarounds
compiz (core) - Info: Unloading plugin: workarounds
compiz (core) - Info: Stopping plugin: regex
compiz (core) - Info: Unloading plugin: regex
compiz (core) - Info: Stopping plugin: vpswitch
compiz (core) - Info: Unloading plugin: vpswitch
compiz (core) - Info: Stopping plugin: session
compiz (core) - Info: Unloading plugin: session
compiz (core) - Info: Stopping plugin: imgpng
compiz (core) - Info: Unloading plugin: imgpng
compiz (core) - Info: Stopping plugin: mousepoll
compiz (core) - Info: Unloading plugin: mousepoll
compiz (core) - Info: Stopping plugin: snap
compiz (core) - Info: Unloading plugin: snap
compiz (core) - Info: Stopping plugin: resize
compiz (core) - Info: Unloading plugin: resize
compiz (core) - Info: Stopping plugin: compiztoolbox
compiz (core) - Info: Unloading plugin: compiztoolbox
compiz (core) - Info: Stopping plugin: place
compiz (core) - Info: Unloading plugin: place
compiz (core) - Info: Stopping plugin: move
compiz (core) - Info: Unloading plugin: move
compiz (core) - Info: Stopping plugin: composite
compiz (core) - Info: Unloading plugin: composite
compiz (core) - Info: Stopping plugin: ccp
compiz (core) - Info: Unloading plugin: ccp
compiz (core) - Info: Stopping plugin: core
compiz (core) - Info: Unloading plugin: core
Run Code Online (Sandbox Code Playgroud)

唯一已知的 nouveau 包(因为我知道这会导致冲突)是:

aaron@naegleria:~$ dpkg -l | grep nouveau
ii libdrm-nouveau2:amd64 2.4.56-1 amd64 Userspace interface to nouveau-specific kernel DRM services -- runtime
Run Code Online (Sandbox Code Playgroud)

对于 NVidia 软件包:

aaron@naegleria:~$ dpkg -l | grep nvidia
ii nvidia-346 346.35-0ubuntu1~xedgers14.10.1 amd64 NVIDIA binary driver - version 346.35
ii nvidia-346-uvm 346.35-0ubuntu1~xedgers14.10.1 amd64 NVIDIA Unified Memory kernel module
ii nvidia-opencl-icd-346 346.35-0ubuntu1~xedgers14.10.1 amd64 NVIDIA OpenCL ICD
ii nvidia-prime 0.6.7 amd64 Tools to enable NVIDIA's Prime
ii nvidia-settings 346.35-0ubuntu1~xedgers14.10.1 amd64 Tool for configuring the NVIDIA graphics driver
aaron@naegleria:~$
Run Code Online (Sandbox Code Playgroud)

但是,lspci 不能像过去一样正确识别卡:

aaron@naegleria:~$ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation Device 1401 (rev a1)
aaron@naegleria:~$
Run Code Online (Sandbox Code Playgroud)

尝试修复: 根据 Stack Overflow 和其他地方的搜索,我尝试过:

  • 安装 CCSM,启用“unity”(及其依赖项)(可能相关:“Unredirect Driver Blacklist”有:(nouveau|Intel)。*Mesa 8.0

  • 将 nouveau 添加到黑名单文件(目前未启用)

  • dconf 重置/setsid hack(见上文)

  • 在安装任何新驱动程序之前清除所有 nvidia-* 驱动程序。

  • 直接从 NVidia 安装驱动程序(驱动程序 nvidia-346 的“.run”文件)。我通过启动,切换到终端,关闭 lightdm 服务,然后运行 ​​NVidia 驱动程序来完成此操作。它安装正确(尽管它确实抱怨预安装脚本不起作用;其余过程有效)。我能够加载 NVidia-Settings 并查看与显卡相关的详细信息。

  • 重装lightdm、unity、ubuntu-desktop

  • [当前尝试] 为 NVidia-346 安装 Xorg-edgers 驱动程序。这也会加载相关的 Xorg 包、nvidia-settings 等。 NVidia-settings 加载驱动程序,就像上面的 NVidia-binaries 一样。详情如下。

  • 从 U 盘重新安装 ubuntu 14.10(保持 /home/ 不变)

我是最新的所有系统更新。

这是 NVidia 设置转储:

Operating System: Linux-x86_64
NVidia Driver Versoin: 346.35
Run Code Online (Sandbox Code Playgroud)

X 服务器信息:

Display Name: naegleria:0 
Server Version Number: 11.0 Server 
Vendor String: The X.Org Foundation Server 
Vendor Version: 1.16.0 (11600000)
NV-CONTROL Version: 1.29 
Screens: 1 [NOTE: I have two displays, but they are both functional and spanned correctly]
Run Code Online (Sandbox Code Playgroud)

OpenGL 设置:

[X] Sync to VBlank 
[X] Allow Flipping Quality [roughly 1/3 in]
Miscellaneaous: 
[X] Use Conformant Texture Clamping
Run Code Online (Sandbox Code Playgroud)

然后我的nvidia-Settings.rc文件:

#
# /home/aaron/.nvidia-settings-rc
#
# Configuration file for nvidia-settings - the NVIDIA X Server Settings utility
# Generated on Thu Feb 5 20:12:08 2015
#

# ConfigProperties:

RcFileLocale = C
ToolTips = Yes
DisplayStatusBar = Yes
SliderTextEntries = Yes
IncludeDisplayNameInConfigFile = No
ShowQuitDialog = Yes
UpdateRulesOnProfileNameChange = Yes
Timer = Memory_Used_(GPU_0),Yes,3000
Timer = PowerMizer_Monitor_(GPU_0),Yes,1000
Timer = Thermal_Monitor_(GPU_0),Yes,1000
Timer = Graphics_Card_(GPU_0),Yes,1000

# Attributes:

0/SyncToVBlank=1
0/LogAniso=0
0/FSAA=0
0/TextureSharpen=0
0/TextureClamping=1
0/FXAA=0
0/AllowFlipping=1
0/FSAAAppControlled=1
0/LogAnisoAppControlled=1
0/OpenGLImageSettings=1
0/FSAAAppEnhanced=0
0/XVideoSyncToDisplayID=DVI-I-0
[DPY:DVI-I-0]/Dithering=0
[DPY:DVI-I-0]/DitheringMode=0
[DPY:DVI-I-0]/DitheringDepth=0
[DPY:DVI-I-0]/SynchronousPaletteUpdates=0
[DPY:DVI-I-1]/RedBrightness=0.000000
[DPY:DVI-I-1]/GreenBrightness=0.000000
[DPY:DVI-I-1]/BlueBrightness=0.000000
[DPY:DVI-I-1]/RedContrast=0.000000
[DPY:DVI-I-1]/GreenContrast=0.000000
[DPY:DVI-I-1]/BlueContrast=0.000000
[DPY:DVI-I-1]/RedGamma=1.000000
[DPY:DVI-I-1]/GreenGamma=1.000000
[DPY:DVI-I-1]/BlueGamma=1.000000
[DPY:DVI-I-1]/Dithering=0
[DPY:DVI-I-1]/DitheringMode=0
[DPY:DVI-I-1]/DitheringDepth=0
[DPY:DVI-I-1]/DigitalVibrance=0
[DPY:DVI-I-1]/ColorSpace=0
[DPY:DVI-I-1]/ColorRange=0
[DPY:DVI-I-1]/SynchronousPaletteUpdates=0
[DPY:DP-0]/Dithering=0
[DPY:DP-0]/DitheringMode=0
[DPY:DP-0]/DitheringDepth=0
[DPY:DP-0]/SynchronousPaletteUpdates=0
[DPY:DP-1]/Dithering=0
[DPY:DP-1]/DitheringMode=0
[DPY:DP-1]/DitheringDepth=0
[DPY:DP-1]/SynchronousPaletteUpdates=0
[DPY:DP-2]/Dithering=0
[DPY:DP-2]/DitheringMode=0
[DPY:DP-2]/DitheringDepth=0
[DPY:DP-2]/SynchronousPaletteUpdates=0
[DPY:DP-3]/Dithering=0
[DPY:DP-3]/DitheringMode=0
[DPY:DP-3]/DitheringDepth=0
[DPY:DP-3]/SynchronousPaletteUpdates=0
[DPY:HDMI-0]/Dithering=0
[DPY:HDMI-0]/DitheringMode=0
[DPY:HDMI-0]/DitheringDepth=0
[DPY:HDMI-0]/SynchronousPaletteUpdates=0
[DPY:DP-4]/Dithering=0
[DPY:DP-4]/DitheringMode=0
[DPY:DP-4]/DitheringDepth=0
[DPY:DP-4]/SynchronousPaletteUpdates=0
[DPY:DP-5]/RedBrightness=0.000000
[DPY:DP-5]/GreenBrightness=0.000000
[DPY:DP-5]/BlueBrightness=0.000000
[DPY:DP-5]/RedContrast=0.000000
[DPY:DP-5]/GreenContrast=0.000000
[DPY:DP-5]/BlueContrast=0.000000
[DPY:DP-5]/RedGamma=1.000000
[DPY:DP-5]/GreenGamma=1.000000
[DPY:DP-5]/BlueGamma=1.000000
[DPY:DP-5]/Dithering=0
[DPY:DP-5]/DitheringMode=0
[DPY:DP-5]/DitheringDepth=0
[DPY:DP-5]/DigitalVibrance=0
[DPY:DP-5]/ColorSpace=0
[DPY:DP-5]/ColorRange=0
[DPY:DP-5]/SynchronousPaletteUpdates=0
[DPY:Unknown-0]/Dithering=0
[DPY:Unknown-0]/DitheringMode=0
[DPY:Unknown-0]/DitheringDepth=0
[DPY:Unknown-0]/SynchronousPaletteUpdates=0
Run Code Online (Sandbox Code Playgroud)

小智 1

不用担心 lspci 部分。这只是因为您的 /usr/share/misc/pci.ids* 文件不是最新的。只需以 root 身份运行“update-pciids”即可。

在运行 update-pciids 之前:

$ lspci | grep GeForce
$
Run Code Online (Sandbox Code Playgroud)

运行 update-pciids:

$ sudo update-pciids
Downloaded daily snapshot dated 2015-04-14 03:15:01
$ sudo lspci | grep GeForce
01:00.0 VGA compatible controller: NVIDIA Corporation GM206 [GeForce GTX 960] (rev a1)
Run Code Online (Sandbox Code Playgroud)

我使用 NVIDIA 的原始 346.59 驱动程序(截至今天最新稳定)在 14.04 中没有问题。