0x00 序言
笔者最近在折腾 Home (trash) lab ,看见@rog-net的文章后遂入一台 HP DL320e Gen8 v2 服务器准备作为软路由使用。由于插入了一张魔改的 CX341a 万兆网卡这张并没有通过 HP 认证的 PCIe 设备,导致风扇转速被强制拉到了 35%-40% 左右。笔者的机柜放在客厅电视旁,这个噪声还是有点难以让人接受。求助万能的咕狗娘后,笔者在 r/homelab
找到了 hack 了 iLO4 风扇控制的固件。
0x01 准备
首先调整服务器主板的拨码开关,关闭 iLO 安全开关。
从 HPE 官网上下载 iLO4 V2.50 版本的固件升级包 CP027911.scexe
下载 iLO4 V2.73 修改版固件 ilo4_273.bin.fancommands
并在服务器上安装带有 hpilo
驱动模块的 Linux 系统
0x02 刷写固件
1 禁用 iLO 驱动
# /etc/init.d/hp-snmp-agents stop
# /etc/init.d/hp-health stop
# rmmod hpilo
重启 hpilo
模块
# modprobe -r hpilo
2 解压官方 2.50 版本固件,将修改版固件替换后刷写固件
# sh ./CP027911.scexe --unpack=ilo_250
# cd ilo_250/
# cp /path/to/ilo4_273.bin.fancommands ./ilo4_250.bin
# ./flash_ilo4 --direct
3 重置 iLO
ssh 进入 iLO 后
</>hpiLO-> cd /map1
</map1>hpiLO-> reset
或者也可以通过 iLO 管理网页重置
Information
-> Diagnostics
点击 Reset
经过漫长的喷气机时光后,不出意外的话修改版的固件已经刷写完成了。
0x03 控制风扇
ssh 进入 iLO 中
</>hpiLO-> fan info a
查看当前机器内安装的风扇情况。虽然笔者的 DL320e Gen8 V2 并没有显示内容,可能是固件不识别,但是不影响后面手动调整风扇转速。
执行
</>hpiLO-> fan p <id> max <speed>
手动调整风扇转速。 id 是需要调整的风扇编号,从 0 开始。 speed 是调整风扇转速的参数,取值为 [0, 255] 。
例如笔者在这里调整 CPU 风扇 0,1 至 10% 转速
( 2 号风扇按照 rog-net 的教程切了主板排线,所以调速并没有成功
Refrense
https://www.reddit.com/r/homelab/comments/f94b0e/hp_dl380p_g8_fan_noise_with_bios_hack/
https://www.reddit.com/r/homelab/comments/di3vrk/silence_of_the_fans_controlling_hp_server_fans/
经过测试,确实是系统重启后失效了。只重启服务器,ILO都没重启,失效了,只能重新设置。
大佬 您用的cx341可以正常识别么 我的插两个cx341只能识别一个而且只要直通给虚拟机直接启动不了
不建议使用iLO4 2.6之前的版本,因为缺少NAND损耗管理