我安装了 Ubuntu 18.04 64 位,其中安装了专有 NVidia 驱动程序。当我尝试启动任何 Windows 图形应用程序时,出现以下错误:
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request: GLXBadContext
Major opcode of failed request: 151 (GLX)
Minor opcode of failed request: 6 (X_GLXIsDirect)
Serial number of failed request: 257
Current serial number in output stream: 256
在 SO 社区上浏览过类似的问题后,我意识到这可能是由 wine 使用 32 位图形库引起的。
问题是 NVidia 专有 32 位驱动程序安装程序检查体系结构并安装失败(尽管我已经安装了多体系结构支持包)。
有没有办法解决这个问题,同时保留专有驱动程序?如果没有,那么设置这些库的最可靠方法是什么?
谢谢!
答案1
我确实知道这个问题,并且已经解决了。
我正在使用较新的操作系统,但命令可能类似。
如果您还没有任何 32 位软件包,则可能需要运行此命令:
dpkg --add-architecture i386
您必须手动安装 Nvidia 的所有 32 位库才能运行 32 位游戏和程序。如果您没有安装所有文件,则会收到“swrast”错误。
我使用这些命令,并且它们有效。
sudo apt install nvidia-driver-430:i386 libnvidia-gl-430:i386 xserver-xorg-video-nvidia-430:i386 libnvidia-cfg1-430:i386 libnvidia-ifr1-430:i386 libnvidia-decode-430:i386 libnvidia-encode-430:i386 nvidia-settings
sudo apt install nvidia-driver-430 libnvidia-gl-430 nvidia-utils-430 xserver-xorg-video-nvidia-430 libnvidia-cfg1-430 libnvidia-ifr1-430 libnvidia-decode-430 libnvidia-encode-430 nvidia-settings
在那之后:
- 将 430 更改为您已安装的 64 位驱动程序版本。
- 如果任何文件无法安装,或者已经安装,只需将其从列表中删除,然后尝试执行步骤
- 仔细检查 Synaptic 中的文件是否
libnvidia
包含nvidia-driver
它们的作者可以定期更改文件名称或添加新文件。我希望从 430 到 440 没有任何变化。
PS:apt
您可以使用
sudo aptitude install ....
当然,我使用 PPA
sudo add-apt-repository ppa:graphics-drivers/ppa
(需要 sudo apt-get update)。
PPS:您有一块显卡吗?
还是笔记本电脑有两块显卡?
如果您有两块,则必须使用nvidia-prime
或bumblebee
和optirun
来运行如下应用程序:
optirun wine
您可以通过运行以下命令获取视频卡的名称:
inxi -G" or "glxinfo | grep OpenGL
要测试 Nvidia 驱动程序的 32 位部分,只需运行任何 32 位 wine 程序。即使英雄无敌 3。
答案2
答案3
经过多次尝试应用针对该问题和其他类似问题的答案的解决方案后,我找到了解决我的特殊情况的解决方案。
- 从 NVidia 网站下载最新的专有 64 位 NVidia 驱动程序
- 在 root 下以 cmd 模式启动 Ubuntu:https://askubuntu.com/a/859640/924671
- 运行安装程序
- 安装程序有时会询问您是否要安装 32 位兼容库。回答 [是]
- 当系统询问您是否要覆盖现有文件(可能有几个地方)时,请确认选项
- 重启
答案4
有什么理由不升级到新的 LTS?如果 NVidia 驱动程序仍然有问题,也许可以换成 Pop OS 或看看他们的驱动程序……https://support.system76.com/articles/upgrade-ubuntu/