破解 iLO4 固件 手动调整 HPE Gen8/9 服务器风扇转速

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

v2-b533f31fb06a06601bc1b7f9b102dfd4_720w

经过漫长的喷气机时光后,不出意外的话修改版的固件已经刷写完成了。

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 的教程切了主板排线,所以调速并没有成功

v2-1b616e0bebe39cd00b97774baa71bf98_720w

Refrense

reddit.com/r/homelab/co

reddit.com/r/homelab/co

经过测试,确实是系统重启后失效了。只重启服务器,ILO都没重启,失效了,只能重新设置。
大佬 您用的cx341可以正常识别么 我的插两个cx341只能识别一个而且只要直通给虚拟机直接启动不了
不建议使用iLO4 2.6之前的版本,因为缺少NAND损耗管理

Related Post

发表回复