OpenGL报错与重装显卡驱动

错误现象

运行PRIMAL2的代码时,出现错误提示pyglet.gl.ContextException: Could not create GL context

检查OpenGL版本

输入命令$ glxinfo | grep “OpenGL version”
提示为找不到命令
使用命令$ glxinfo | grep "OpenGL version"查看OPENGL版本
提示找不到命令 “glxinfo”
使用$ sudo apt install mesa-utils命令安装,安装成功。
再次输入命令$ glxinfo | grep “OpenGL version”

错误提示如下

X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  152 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  110
  Current serial number in output stream:  111

怀疑是显卡驱动有问题

使用命令行$ nvidia-smi检查显卡驱动
报错如下

Failed to initialize NVML: Driver/library version mismatch
NVML library version: 535.161

确认显卡驱动有问题,重装驱动

卸载旧驱动$ sudo apt-get purge nvidia-*
运行命令$ sudo apt-get install nvidia-driver
错误提示

E: 无法定位软件包 nvidia-driver

添加Graphic Driver PPA

$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt-get update

查看合适的驱动版本

$ ubuntu-drivers devices
显示如下

== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00002684sv00007377sd00002000bc03sc00i00
vendor   : NVIDIA Corporation
driver   : nvidia-driver-525 - distro non-free
driver   : nvidia-driver-535 - distro non-free recommended
driver   : nvidia-driver-550 - third-party non-free
driver   : nvidia-driver-525-server - distro non-free
driver   : nvidia-driver-525-open - distro non-free
driver   : nvidia-driver-545 - distro non-free
driver   : nvidia-driver-545-open - distro non-free
driver   : nvidia-driver-535-open - distro non-free
driver   : nvidia-driver-550-open - third-party non-free
driver   : nvidia-driver-535-server-open - distro non-free
driver   : nvidia-driver-535-server - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

使用命令$ sudo apt install nvidia-driver-535安装,安装成功。

使用命令行$ nvidia-smi检查,仍然报错

报错如下

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

参考链接https://blog.csdn.net/xiaojinger_123/article/details/121161446

猜测是内核不匹配

使用命令$ dpkg --get-selections |grep linux-image,查看已经安装的内核如下

linux-image-5.19.0-32-generic			deinstall
linux-image-5.19.0-35-generic			deinstall
linux-image-5.19.0-43-generic			deinstall
linux-image-5.19.0-45-generic			deinstall
linux-image-5.19.0-46-generic			deinstall
linux-image-6.2.0-32-generic			deinstall
linux-image-6.2.0-33-generic			deinstall
linux-image-6.2.0-34-generic			deinstall
linux-image-6.2.0-37-generic			deinstall
linux-image-6.2.0-39-generic			deinstall
linux-image-6.5.0-14-generic			install
linux-image-6.5.0-21-generic			install
linux-image-generic-hwe-22.04			install

使用命令$ uname -a,查看正在使用的内核如下

Linux 13 6.5.0-21-generic #21~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb  9 13:32:52 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

可见正在使用的内核6.5.0-21-generic 没有被安装。

安装该版本$ bash
sudo apt install linux-image-6.5.0-21-generic
重启系统

使用命令行$ nvidia-smi检查,显卡驱动正常。

输入命令$ glxinfo | grep "OpenGL version"检查OpenGL版本,显示如下。

OpenGL version string: 4.6.0 NVIDIA 535.161.07

运行代码时,不再报OpenGL的错误。

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值