在安装最新的 X11 更新(使用更新管理器)后,似乎 OpenGL 支持已从我的计算机中消失。我有一块 NVIDIA GeForce 9600M 显卡,并安装了专有的 NVIDIA 驱动程序(270.41.06)。通过先前的研究(特别是Ubuntu 论坛上的这篇文章) 我开始相信,最近对 X11 的更新和我重新安装的 NVIDIA 显卡驱动程序的某种组合破坏了我计算机上 OpenGL 库的链接。
glxinfo 的输出:
$ glxinfo
name of display: :0.0
Error: couldn't find RGB GLX visual or fbconfig
我的系统上安装的 OpenGL 库列表(我认为):
$ find /usr -name libGL.*
/usr/lib/nvidia-173/libGL.so
/usr/lib/nvidia-173/libGL.so.173.14.30
/usr/lib/nvidia-173/libGL.so.1
/usr/lib/libGL.so
/usr/lib/nvidia-current/libGL.so.270.41.06
/usr/lib/nvidia-current/libGL.so
/usr/lib/nvidia-current/libGL.so.1
/usr/lib/mesa/libGL.so.1.2
/usr/lib/mesa/libGL.so
/usr/lib/mesa/libGL.so.1
/usr/lib/libGL.so.1
当我以 root 身份运行时,我得到了相同的输出。我认为答案可能在我发布的链接中 - 不幸的是我无法解析正在讨论的内容。我会将我对 Linux 的了解归类为“足以非常危险”。
任何想法如何解决这一问题?
更新:根据要求,提供更多信息
$ldd /usr/bin/glxinfo
linux-gate.so.1 => (0xb7830000)
libGL.so.1 => /usr/lib/libGL.so.1 (0xb77c4000)
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb76a9000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7547000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb7538000)
libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xb7534000)
libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xb752e000)
libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xb7528000)
libdrm.so.2 => /lib/i386-linux-gnu/libdrm.so.2 (0xb751d000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb7504000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7500000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb7415000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb73ef000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb73d2000)
/lib/ld-linux.so.2 (0xb7831000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb73b9000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb73b0000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb73ac000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb73a6000)
$lsmod | grep nvidia
Module Size Used by
cryptd 19801 0
aes_i586 16956 2
aes_generic 38023 1 aes_i586
binfmt_misc 13213 1
parport_pc 32111 0
ppdev 12849 0
vesafb 13449 1
snd_hda_codec_hdmi 27535 1
snd_hda_codec_realtek 255882 1
nvidia 9766978 32
snd_hda_intel 24140 4
snd_hda_codec 90901 3 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel
snd_hwdep 13274 1 snd_hda_codec
snd_pcm 80042 4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_seq_midi 13132 0
arc4 12473 2
snd_rawmidi 25269 1 snd_seq_midi
snd_seq_midi_event 14475 1 snd_seq_midi
snd_seq 51291 2 snd_seq_midi,snd_seq_midi_event
snd_timer 28659 2 snd_pcm,snd_seq
snd_seq_device 14110 3 snd_seq_midi,snd_rawmidi,snd_seq
iwlagn 284778 0
iwlcore 148965 1 iwlagn
mac80211 257001 2 iwlagn,iwlcore
cfg80211 156212 3 iwlagn,iwlcore,mac80211
snd 55295 17 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
psmouse 59039 0
uvcvideo 66851 0
videodev 75143 1 uvcvideo
soundcore 12600 1 snd
snd_page_alloc 14073 2 snd_hda_intel,snd_pcm
video 18951 0
serio_raw 12990 0
joydev 17322 0
lp 13349 0
parport 36746 3 parport_pc,ppdev,lp
usbhid 41704 0
hid 77084 1 usbhid
usb_storage 43946 0
uas 17676 0
ahci 21591 3
atl1e 32576 0
libahci 25548 1 ahci
如果我可以提供任何其他信息,请告知我。
答案1
不幸的是,Ubuntu 和 Windows 很像,所以我建议你卸载然后重新安装 nvidia 驱动程序。你可以用两种方法做到这一点。
1) 卸载 Nvidia 驱动程序,然后让 Ubuntu 重新安装它们。我通常从终端执行此操作
sudo su
dpkg --get-selections | grep -i nvidia
apt-get --purge remove nvidia-pkg
注意:nvidia-pkg 应该用 get-selections 的输出替换。
然后我会重新启动,Ubuntu 会提示你安装 NVidia 的限制驱动程序。我喜欢 nvidia-current(目前有 5 个版本可供选择)。
2) 您可以尝试使用 Nvidia.com 上的安装程序,这可能能让一切顺利进行,但它会覆盖 Ubuntu 管理的内容。一般来说,如果可以的话,我会尽量避免安装包管理器之外的任何东西,但 Nvidia 驱动程序是我通常会打破这条规则的一件事。
希望它能对你有所帮助。