文章目录

0️⃣ 问题

1️⃣ 解决方案一:智能调节

2️⃣ 解决方案二:手动调节

2️⃣. 1️⃣ 生成`edid.txt`文件

2️⃣. 2️⃣ **配置`xorg.conf`**

2️⃣. 3️⃣ **风扇控制**

2️⃣. 4️⃣ **超频**

2️⃣. 5️⃣ **重新定义显卡风扇转速曲线**

0️⃣ 问题

一般在Ubuntu上搭建完深度学习环境后,很多人习惯把Ubuntu的X桌面服务禁用掉;或者这个Ubuntu本身就是在虚拟机中运行的,没有显示器,也就没有桌面服务了。然后通过另一台windows系统的电脑通过ssh来连接GPU机器使用。这个时候X server已经被禁用掉,开机也自动启动命令行模式,那就无法通过设置nvidia-settings来调节风扇。原因是,nvidia-settings只能在X桌面环境下运行,若你想强行使用这个设置就会报错。

修改方法就是骗过系统,让它觉得你有显示器,这就是常说的headless模式。

1️⃣ 解决方案一:智能调节

这个方法需要每次开机都要运行一下

cd /opt

git clone https://github.com/boris-dimitrov/set_gpu_fans_public

# 改名

sudo mv set_gpu_fans_public set-gpu-fans

# 创建一个符号链接

ln -sf ~/set-gpu-fans /opt/set-gpu-fans

# 启动

cd /opt/set-gpu-fans

sudo tcsh

./cool_gpu >& controller.log &

tail -f controller.log

若出错

ps -ef |grep X

找到对应的pid

kill -9 pid

2️⃣ 解决方案二:手动调节

在安装完nvidia驱动后,在没有插上显示器的情况下会发现后台无“/usr/lib/xorg/Xorg”运行。此时我们使用nvidia-setting控制风扇速度时会提示一些无法连接GUI的错误。解决这个问题的一个方法那就是使用虚拟屏幕来让后台运行Xorg。

2️⃣. 1️⃣ 生成edid.txt文件

sudo vim edid.txt

写入:

00 ff ff ff ff ff ff 00 1e 6d f5 56 71 ca 04 00 05 14 01 03 80 35 1e 78 0a ae c5 a2 57 4a 9c 25 12 50 54 21 08 00 b3 00 81 80 81 40 01 01 01 01 01 01 01 01 01 01 1a 36 80 a0 70 38 1f 40 30 20 35 00 13 2b 21 00 00 1a 02 3a 80 18 71 38 2d 40 58 2c 45 00 13 2b 21 00 00 1e 00 00 00 fd 00 38 3d 1e 53 0f 00 0a 20 20 20 20 20 20 00 00 00 fc 00 57 32 34 35 33 0a 20 20 20 20 20 20 20 01 3d 02 03 21 f1 4e 90 04 03 01 14 12 05 1f 10 13 00 00 00 00 23 09 07 07 83 01 00 00 65 03 0c 00 10 00 02 3a 80 18 71 38 2d 40 58 2c 45 00 13 2b 21 00 00 1e 01 1d 80 18 71 1c 16 20 58 2c 25 00 13 2b 21 00 00 9e 01 1d 00 72 51 d0 1e 20 6e 28 55 00 13 2b 21 00 00 1e 8c 0a d0 8a 20 e0 2d 10 10 3e 96 00 13 2b 21 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26

2️⃣. 2️⃣ 配置xorg.conf

sudo nvidia-xconfig -a --allow-empty-initial-configuration \

--use-display-device="DFP-0" --connected-monitor="DFP-0" \

--custom-edid="DFP-0:/home/$USER/edid.txt" --cool-bits=28

sudo reboot

重启以后我们会发现nvidia-smi命令下 Xorg运行了起来,占用了极小的显存。现在就可以使用nvidia-setting控制风扇与超频了。

2️⃣. 3️⃣ 风扇控制

sudo DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -c :0 -a [gpu:GPUID]/GPUFanControlState=1

sudo DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -c :0 -a [fan:GPUID]/GPUTargetFanSpeed=70

GPUID改成你对应的0 1 2 3 4之类的显卡序号,后面的70表示风扇转速70%。

2️⃣. 4️⃣ 超频

sudo DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -c :0 -a [gpu:GPUID]/GPUGraphicsClockOffset[3]=64

sudo DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -c :0 -a [gpu:GPUID]/GPUMemoryTransferRateOffset[3]=500

20系显卡的话一般把[3]改成[4]。

2️⃣. 5️⃣ 重新定义显卡风扇转速曲线

sudo vim fan.sh

写入

#!/bin/bash

headless=true

verbose=false

if [ "$headless" = true ] ; then

export DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0

fi

#Enable user defined fancontrol for all gpu

nvidia-settings -a "GPUFanControlState=1"

while true

do

#gpu index

i=0

#Get GPU temperature of all cards

for gputemp in $(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader);do

if [ "$verbose" = true ] ; then

echo "gpu ${i} temp ${gputemp}";

fi

#Note: you need to set the minimum fan speed to a non-zero value, or it won't work

#This fan profile is being used in my GTX580 (Fermi). Change it as necessary

#If temperature is between X to Y degrees, set fanspeed to Z value

case "${gputemp}" in

0[0-9])

newfanspeed="40"

;;

1[0-9])

newfanspeed="40"

;;

2[0-9])

newfanspeed="40"

;;

3[0-9])

newfanspeed="40"

;;

4[0-9])

newfanspeed="40"

;;

5[0-4])

newfanspeed="50"

;;

5[5-6])

newfanspeed="60"

;;

5[7-9])

newfanspeed="70"

;;

6[0-5])

newfanspeed="80"

;;

6[6-9])

newfanspeed="90"

;;

7[0-5])

newfanspeed="95"

;;

7[6-9])

newfanspeed="98"

;;

*)

newfanspeed="98"

;;

esac

nvidia-settings -a "[fan-${i}]/GPUTargetFanSpeed=${newfanspeed}" 2>&1 >/dev/null

if [ "$verbose" = true ] ; then

echo "gpu ${i} new fanspeed ${newfanspeed}";

fi

sleep 3s

#increment gpu index

i=$(($i+1))

done

done

如果你的风扇是多控制器的,那么你还需要进行相应的修改,一般来说公版单风扇无论多少GPU都可以直接使用。

执行风扇程序:

sudo ./fan.sh

linux怎么调显卡风扇速度,Ubuntu下无显示器(服务器)手动调节Nvidia显卡风扇转速...相关推荐

  1. VMware中Ubuntu20.04下有显示器手动调节Nvidia显卡风扇转速

    前提安装好Nvidia显卡,正常情况下nvidia settins的Thermal settings是没有显卡风扇转速调节选项的,我们的目的就是将手动控制风扇转速的选项调出来. 创建文件夹: sudo ...

  2. linux如何搭建mqtt服务器,【MQTT】在Ubuntu下搭建MQTT服务器

    前言 博主之前写了一篇<在Windows下搭建MQTT服务器>,这次要尝试在Ubuntu下搭建MQTT服务器.实际上,下载好源码包后,后面的都和那篇文章差不多了. 开发环境 虚拟机 Ubu ...

  3. Ubuntu下架设FTP服务器(转)

    Ubuntu下架设FTP服务器 Linux下提供了很多的ftp服务器,这里我选用了安全,快速,简单的vsftpd作为FTP服务器.本文是我在自己的Ubuntu 10.10 -32 位系统下搭建的.搭建 ...

  4. 在Ubuntu下搭建FTP服务器的方法

    由于整个学校相当于一个大型局域网,相互之间传送数据非常快,比如要共享个电影,传点资料什么的. 所以我们可以选择搭建一个FTP服务器来共享文件. 那么问题来了,有的同学会问,我们既然在一个局域网内,直接 ...

  5. UBUNTU下双显示器设置

    UBUNTU下双显示器设置 (2010-05-08 17:31) 分类: linux ubuntu(GNOME)现在已经能很好的处理双屏了,无论是克隆方式还是扩展方式! 但有时我们需要一个不同的管理器 ...

  6. ubuntu下git搭建服务器(gitosis)

    ubuntu下git搭建服务器(gitosis) - 简书 var _hmt = _hmt || []; (function() { var hm = document.createElement(& ...

  7. Ubuntu如何正确地切换Intel和Nvidia显卡

    如需转载,请注明"来自linux大神博客",并附上原文链接. 本文固定链接 https://www.linuxdashen.com/switch-intel-nvidia-grap ...

  8. ubuntu下搭建FTP服务器并使用FileZilla上传下载

    ubuntu下搭建FTP服务器并使用FileZilla上传下载 为了让实验室同学在共享文件时更加方便,我们决定在实验室电脑上搭建一个FTP服务器,ubuntu系统版本为16.04,下面就是我的搭建流程 ...

  9. ubuntu下安装ftp服务器

    ubuntu下安装ftp服务器 Ftp服务器是使用以vsftp为例. 1. 安装     $sudo aptitude install vsftpd     $ps aux | grep 'ftp' ...

  10. Ubuntu 下旋转显示器屏幕

    Ubuntu 下旋转显示器屏幕 之前说到,我喜欢把显示器竖过来看网页和电子书,查了一下在Ubuntu里面旋转屏幕的方法,据说用 xrandr -o left 就可以了.不过我运行之后,遇到了这个错误: ...

最新文章

  1. 数据分析工具Pandas(4):Pandas的函数应用
  2. putty 显示 ubuntu的文件乱码
  3. 菱形继承,多继承,虚继承、虚表的内存结构全面剖析(逆向分析基础)
  4. android键盘弹出,聊天背景不变形
  5. .net开源框架开源类库(整理)
  6. DLA SQL技巧:行、列转换和JSON数据列展开
  7. 高架桥侧翻:物联网可以做什么?
  8. Random生成伪随机数
  9. Java文件快速copy复制
  10. SAAS PASS IASS 理解
  11. ios开发-教程选择
  12. python(xlwt的简单运用)
  13. Python3.6之py文件转exe文件
  14. Python 计时器倒计时弹窗提醒
  15. html5下拉菜单清除样式,如何取消下拉菜单格式
  16. 服务器端查看图片库 eog
  17. Python Django 添加首页尾页上一页下一页代码实例
  18. CentOS系列之Elasticsearch(二):查询
  19. 数据可视化----常用图表样式
  20. 微信开发者工具模拟器、IOS真机调试、Android真机调试中Editor效果不一致问题

热门文章

  1. 加一(Java求解)
  2. Zabbix 报告缺少可用的交换空间主机 “Lack of free swap space”问题解决
  3. 计算机中的windows任务管理器在哪,window任务管理器在哪,windows7如何重装
  4. Ubuntu下安装LXDE+XRDP实现远程桌面访问(最轻量级桌面)
  5. 理论结合实际:如何调试神经网络并检查梯度
  6. 不想在网易博客写技术文章了
  7. 【esxi跑网心云(cdn)软路由拨号】esxi服务器使用ikuai虚拟机拨号并配置家庭路由器上网
  8. python如何判断用户的电话属于移动、联通、还是电信的
  9. 中小型园区网络的设计与实现 (三)
  10. 以编程会安全,以安全辅未来——2017看雪安全开发者峰会 强势来袭!