首页 > 代码库 > arch linux下nvidia 驱动死机问题

arch linux下nvidia 驱动死机问题

好长一段时间了,自从某次arch滚动升级nvidia驱动后,就频繁的Xorg死掉。一直没能解决,只好换用nouveau。nouveau一般使用问题到不大,但是前几天nouveau升级后,也开始抽筋。

于是又尝试换回nvidia的专有驱动,死机情况依然未解。偶然在死机后,用ssh连接上后用dmesg抓到一个错误:

NVRM: GPU at 0000:01:00.0 Has Fallen Off The Bus

一番搜索,找到这篇文章:

http://www.cyberciti.biz/faq/debian-ubuntu-rhel-fedora-linux-nvidia-nvrm-gpu-fallen-off-bus/

文中提到,需要把nvidia驱动置为Persistence Mode,使用命令行:

/usr/bin/nvidia-smi -pm 1

查询nvidia的是否启用Persistence Mode

# /usr/bin/nvidia-smi -q | grep -i Persistence

若启用Persistence Mode,输出如下:

    Persistence Mode            : Enabled

nvidia-smi设置Persistence Mode每次重新启动后失效。arch linux使用systemd,所以在/etc/systemd/system/multi-user.target.wants目录下,新建一个nvidia-pm.service文件,内容如下:

[Unit]
Description=Set NVIDIA Persistence Mode to Enable
Wants=syslog.target

[Service]
Type=forking
ExecStart=/usr/bin/nvidia-smi -pm 1

[Install]
WantedBy=multi-user.target

目前用了几天,没出现死机情况。