Linux Nvidia:NVRM:0000:01:00.0处的GPU掉线错误和解决方案
Debian 64位Linux下使用NVIDIA UNIX x86_64内核模块版本(驱动程序)280.13。
在/var/log/messages文件中收到以下错误
Feb 13 05:53:39 wks01 kernel: [26652.425207] NVRM: GPU at 0000:01:00.0 has fallen off the bus.
Feb 14 03:59:14 wks01 kernel: [39846.244283] NVRM: GPU at 0000:01:00.0 has fallen off the bus.
Feb 17 04:47:32 wks01 kernel: [35237.485871] NVRM: GPU at 0000:01:00.0 has fallen off the bus.
Feb 18 06:53:19 wks01 kernel: [49298.937949] NVRM: GPU at 0000:01:00.0 has fallen off the bus.
Feb 19 06:14:01 wks01 kernel: [28508.567838] NVRM: GPU at 0000:01:00.0 has fallen off the bus.
此错误是随机发生的,并且我的笔记本电脑处于硬冻结模式。
只能重启。
我该如何解决这个问题?
到处都有此问题的报告,最推荐的解决方案如下:
安装最新的内核版本和NVIDIA驱动程序
您需要更新内核并安装最新的NVIDIA Unix驱动程序。
将NVIDIA驱动程序置于持久模式
您需要将GPU设置为持久性模式。
从手册页:
一个标志,指示是否为GPU启用了持久模式。
值是"已启用"或"已禁用"。
启用持久性模式后,即使没有活动的客户端(例如X11或nvidia-smi),NVIDIA驱动程序也会保持加载状态。
这样可以最大程度地减少与运行依赖的应用程序(例如CUDA程序)相关的驱动程序加载延迟。
对于所有具有CUDA功能的产品。
仅Linux。
编辑/etc/rc.local文件,并在exit 0语句之前添加以下行:
/usr/bin/nvidia-smi -pm 1
保存并关闭文件。
上面的代码行可确保您的GPU在启动后立即设置为持久模式。
如何从命令行设置持久模式?
以root用户身份执行以下命令:
# /usr/bin/nvidia-smi -pm 1
如何验证从设备设置了持久模式?
以root用户身份执行以下命令:
# /usr/bin/nvidia-smi -q | grep -i Persistence
输出示例:
Persistence Mode : Enabled
如何查看所有设置?
执行以下命令以显示GPU或单元信息:
# nvidia-smi -q | less
输出示例:
==============NVSMI LOG============== Timestamp : Tue Feb 21 07:20:20 2012 Driver Version : 280.13 Attached GPUs : 1 GPU 0000:01:00.0 Product Name : Quadro FX 2800M Display Mode : N/A Persistence Mode : Enabled Driver Model Current : N/A Pending : N/A Serial Number : N/A GPU UUID : N/A Inforom Version OEM Object : N/A ECC Object : N/A Power Management Object : N/A PCI Bus : 1 Device : 0 Domain : 0 Device Id : 061D10DE Bus Id : 0000:01:00.0 Fan Speed : N/A
2012年7月7日更新:Nvidia v302.17驱动程序
如果您使用NVIDIA v302.17驱动程序,则此问题将在Linux内核3.xx.xx系列中得到解决。
您需要从所有浏览器中删除(删除或禁用)Flash Player支持。
跟踪此问题的NVIDIA内部错误是错误ID 973068。