コンピュータ

Linux 上で NVIDIA の GPU のファンをコントロールする

ちょっとハマったのでメモ。

Ubuntu で NVIDIA の GPU を、X を使用しない状態(headless)で動かしているときにファンコントロールをする方法。

何も考えないで nvidia-settings を使うとエラーになってしまう。

cluster@cluster:~$ sudo nvidia-settings -a [gpu:0]/GPUFanControlState=1
Failed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused

ERROR: The control display is undefined; please run `nvidia-settings –help` for usage information.

X を使用しなくてもそのための設定が必要なので nvidia-xconfig を使って設定ファイルを生成する。

sudo nvidia-xconfig -a –cool-bits=31 –allow-empty-initial-configuration
sudo DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -t -q GPUUtilization

そうすると、実行できるようになる。DISPLAY と XAUTHORITY は指定しておく必要があるっぽい。

cluster@cluster:~$ sudo DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -a [gpu:0]/GPUFanControlState=1

Attribute ‘GPUFanControlState’ (cluster:0[gpu:0]) assigned value 1.

cluster@cluster:~$ sudo DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -a [fan:0]/GPUTargetFanSpeed=50

Attribute ‘GPUTargetFanSpeed’ (cluster:0[fan:0]) assigned value 50.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です