我有一块 Supermicro x11dpi-n 主板用作主力机, 但是默认机器进去风扇全速, 因为装了两块 XEON 8252C, Boost 的时候能瞬间从50度上升到71度。CPU 散热器用的是2个猫头鹰 NH-U12S DX-3647, 这个风扇不暴力,因此迅速升高温度的情况散热效果不好。
我之前一直用脚本来控制风扇转速,但是最近几天在玩潜行者2,导致脚本默认的风扇转速压不住 CPU,只要温度过高了CPU就立刻降频,导致游戏疯狂卡顿。于是打算写一个游戏模式的脚本,但又一想,能不能直接弄个界面想调整就调整。于是就有了这个项目。
https://github.com/kcores/fan-lord

说下原理:
超微 x9, x10, x11 系列主板 IPMI关于风扇控制的定义基本一致, 命令如下
IPMICFG-Win.exe -raw 0x30 0x70 0x66 0x01 0x28
# 0x30 0x70 0x66 0x01 (fan control)
# 0x01 (zone)
# 0x28 (speed)
命令由三部分组成:
- 前面的四个参数 0x30 0x70 0x66 0x01 代表风扇控制
- 后面的第五个参数 0x01 (可选值 0x00 和 0x01) 是控制区域
- 第六个参数是速度, 区间是 0x00 - 0x64, 不过不能太低, 低于 0x20 会让 BMC 认为温度设置过低自动重置为全速运转 (也有可能是设置的过低导致温度过高自动拉回来的? 我没具体验证)
这里重点说一下控制区域, 拿 x11DPi-n举例:


可以看到主板总计有8个风扇接口, 其中 FAN1-FAN6 算作 CPU zone, 即 0x00, FAN-A 和 FAN-B 算作 PCH zone, 即 0x01
比如我想让 CPU zone 50%转速,PCH zone 100%转速,则可以运行命令:
IPMICFG-Win.exe -raw 0x30 0x70 0x66 0x01 0x00 0x32
IPMICFG-Win.exe -raw 0x30 0x70 0x66 0x01 0x01 0x64
所以插风扇的时候最好 CPU zone 插 CPU风扇, 然后 PCH zone插机箱风扇, 这样就可以分开控制, 机箱风扇太多可以用一些一分二线之类的增加能插的风扇数量.
我的机箱是 fractal-design Torrent

我把正前方的超大号18CM风扇接到了 PCH zone, 然后下面三个风扇接到了 FAN5, FAN6. 这样打游戏的时候将PCH zone转速拉满, CPU zone转速到50%, 就能轻松抗住了. 前面这两个大风扇很给力.
祝大家玩的开心~ Happy�Hacking~
Yang Gang3 months ago感觉可以加个配置文件,raw command 放进去。差不多就可以成为一个相对通用的 IPMI GUI 风扇控制工具了~
是的,后续可以这么搞
MatthewLXJ3 months ago双路8252C玩游戏吗,带什么显卡,功耗会不会爆炸,xeon二代现在也降价了想买一套玩一下
3080Ti, 功耗相当爆炸,感觉加上显示器妥妥1000W了… 不过8252C并不是特别强,建议直接EPYC
MatthewLXJ3 months agoEPYC主要是对7002系列无感了,7003又挺贵