柯摩的BLOG

Forget before get.


  • 首页

  • 人生小记

  • 关于

  • 标签118

  • 分类10

  • 归档32

  • 运动日记

  • 相册

  • 热门

  • 友链

  • 搜索

VMware中Ubuntu下无显示器手动调节Nvidia显卡风扇转速

发表于 2020-12-02 分类于 Ubuntu 阅读次数: 阅读次数: | 字数: 1.2k 评论数:
本文字数: 1.5k 阅读时长 ≈ 1 分钟

这个没显示器调节风扇真的让人疯掉,网上的教程基本上是错的,都是改什么”Coolbits”。事实上改完之后,开机黑屏,而且改的位置都是错的。😡😡

0️⃣ 问题

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

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

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

  • 这个方法需要每次开机都要运行一下
1
2
3
4
5
6
7
8
9
10
11
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
  • 若出错
1
ps -ef |grep X

找到对应的pid

1
kill -9 pid

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

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

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

1
sudo vim edid.txt
  • 写入:
1
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

1
2
3
4
5
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️⃣ 风扇控制

1
2
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之类的显卡序号。

2️⃣. 4️⃣ 超频

1
2
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️⃣ 重新定义显卡风扇转速曲线

1
sudo vim fan.sh
  • 写入
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/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都可以直接使用。

  • 执行风扇程序:

1
sudo ./fan.sh
相关文章推荐
  • Ubuntu下Nvidia显卡直通教程
  • VMware中Ubuntu20.04下Nvidia显卡连接外屏显示教程
  • Ubuntu20.04 与 Nvidia显卡 配置Pytorch深度学习环境(Pytorch1.4.0+CUDA10.0+cuDNN7.4) + 远程Jupyter Notebook服务 + 配置Pycharm远程连接服务
  • VMware中Ubuntu20.04下有显示器手动调节Nvidia显卡风扇转速
  • 一文完全解决Ubuntu20.04下源码构建安装IPFS环境
喜欢就支持一下吧~
柯摩 微信支付

微信支付

柯摩 支付宝

支付宝

  • 本文作者: 柯摩
  • 本文链接: https://kemo.xyz/VMware中Ubuntu下无显示器手动调节Nvidia显卡风扇转速.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
Ubuntu Linux Nvidia RTX 2070 Super ESXi X Server xorg.conf set_gpu_fans_public
Tweet
Share
Link
Plus
Share
Class
Send
Send
Pin
VMware中Ubuntu20.04下有显示器手动调节Nvidia显卡风扇转速
基于文字识别与情感语义分析的(熊猫头)Emoji表情包搜索神器 -- 可以识别本地表情包或者爬取网络表情包
------------- 本 文 结 束 感 谢 您 的 阅 读 -------------
  • 文章目录
  • 站点概览
柯摩

柯摩

真实自有万钧之力
32 日志
10 分类
118 标签
RSS
GitHub E-Mail Weibo QQ Wechat Twitter Bilibili
Creative Commons
  1. 1. 0️⃣ 问题
  2. 2. 1️⃣ 解决方案一:智能调节
  3. 3. 2️⃣ 解决方案二:手动调节
    1. 3.1. 2️⃣. 1️⃣ 生成edid.txt文件
    2. 3.2. 2️⃣. 2️⃣ 配置xorg.conf
    3. 3.3. 2️⃣. 3️⃣ 风扇控制
    4. 3.4. 2️⃣. 4️⃣ 超频
    5. 3.5. 2️⃣. 5️⃣ 重新定义显卡风扇转速曲线
0%

Tag Cloud

  • Algorithm1
  • Anaconda31
  • Barrier1
  • BeautifulSoup1
  • BoxPlot1
  • CUDA1
  • CVM1
  • DataMining3
  • Diary5
  • ECS1
  • ESXi3
  • Editor8
  • Go1
  • Hexo1
  • IPFS2
  • IQR1
  • Job1
  • Jupyter3
  • Jupyter Notebook1
  • Lasso正则化1
  • Learning1
  • LightGBM1
  • Linear Regression1
  • Linux8
  • MATLAB1
  • MySQL1
  • Navie Bayes1
  • Next1
  • Nvidia5
  • OJ1
  • Onehot1
  • PaddleOCR1
  • Pandas Head1
  • PySimpleGUI1
  • Pycharm1
  • Python1
  • Pytorch1
  • RTX 2070 Super4
  • Reading1
  • Ridge正则化1
  • SSH1
  • Science Uranology1
  • Searcher1
  • Selenium1
  • Sticker1
  • Study3
  • Thinking2
  • Tianchi3
  • Ubuntu8
  • VMware1
  • X Server1
  • XGBoost1
  • Xftp1
  • Xshell3
  • alive_progress1
  • cross validation1
  • css1
  • cuDNN1
  • custom1
  • distributed system3
  • fan1
  • groupby1
  • matplotlib1
  • multithreading3
  • nvidia-settings1
  • pandas7
  • python9
  • requests1
  • seaborn3
  • set_gpu_fans_public2
  • socket3
  • svm1
  • xorg.conf1
  • 二进制1
  • 五折交叉验证1
  • 内存优化1
  • 决策树1
  • 分布式1
  • 分布式计算2
  • 包裹式(wrapper)1
  • 博客1
  • 反向索引1
  • 回忆1
  • 地铁线路优化1
  • 多层感知机(MLP)1
  • 多线程3
  • 嵌入式(embedding)1
  • 感情1
  • 插值1
  • 数学建模1
  • 日记1
  • 朋友圈1
  • 朴素贝叶斯1
  • 极坐标1
  • 梯度提升树(GBDT)1
  • 正则表达式1
  • 正态分布1
  • 毕业论文1
  • 气象图1
  • 温馨1
  • 热力图1
  • 画图1
  • 目标函数1
  • 真挚1
  • 私有网络1
  • 约束条件1
  • 网格调参1
  • 节点通信3
  • 虚拟机3
  • 调查问卷1
  • 贝叶斯调参1
  • 贪心调参1
  • 过滤式(filter)1
  • 遗传算法1
  • 问卷星1
  • 随机森林1
  • 随笔2
  • 风扇1
© 2015 – 2020 柯摩 | 站点总字数: 162k | 站点阅读时长 ≈ 2:27
全站共 77.3k 字
载入天数...载入时分秒...
皖ICP备 - 19020907 | 苏公网安备 32050802011200号
总访客量 人 | 总访客数 次