我在 Raspberry Pi 4 上安装了 Ubuntu 21.04。我想控制 POE+ HAT 上的风扇(https://www.raspberrypi.org/products/poe-plus-hat/)
默认情况下,风扇根本不转。当我添加时,dtoverlay=rpi-poe
风扇 /boot/firmware/config.txt
似乎以默认模式工作。但是当我添加时,sudo dtoverlay -l
没有加载任何覆盖,所以我不知道为什么会有区别。
此类自定义设置无法按预期工作。当我添加这些设置时,风扇会完全停止或恢复到默认模式。
dtparam=poe_fan_temp0=50000
dtparam=poe_fan_temp1=58000
dtparam=poe_fan_temp2=64000
dtparam=poe_fan_temp3=68000
当我尝试加载覆盖时,rpi-poe
我收到了响应* Failed to apply overlay '0_rpi-poe' (kernel)
,这可能意味着它在这个内核中不可用?
GNU/Linux 5.11.0-1012-raspi aarch64
答案1
在针对配备 PoE+ 帽的 Pi 4 的 Ubuntu 21.04 版本中,有一个细微的差异你没有注意到,而这导致了这个问题。固件驱动程序和相关的设备树覆盖名为rpi-poe-plus
,不是 rpi-poe
(这是较旧的 PoE 帽子)。
您可以使用以下命令查看可用的设备树覆盖并注意列出了两个来找到这一点。
ls /boot/firmware/overlays | grep poe
将以下内容添加到/boot/firmware/config.txt
文件中以使风扇与 PoE+ 帽一起工作。
dtoverlay=rpi-poe-plus
dtparam=poe_fan_temp0=80000,poe_fan_temp0_hyst=2000
dtparam=poe_fan_temp1=70000,poe_fan_temp1_hyst=5000
dtparam=poe_fan_temp2=65000,poe_fan_temp2_hyst=3000
dtparam=poe_fan_temp3=60000,poe_fan_temp3_hyst=5000
您可以根据需要调整 poe_fan_temp 值,以便在 CPU 的不同温度值下加速风扇。这些值为摄氏度 x 1000。
答案2
在因缺乏文档而感到沮丧之后,我发现这个 github 项目似乎可以解决这个问题:
https://github.com/raspberrypi/linux/issues/2715#issuecomment-769405042
rpi-poe 于 2020 年 3 月更新,新增:
Name: rpi-poe
Info: Raspberry Pi PoE HAT fan
Load: dtoverlay=rpi-poe,<param>[=<val>]
Params: poe_fan_temp0 Temperature (in millicelcius) at which the fan
turns on (default 40000)
poe_fan_temp0_hyst Temperature delta (in millicelcius) at which
the fan turns off (default 2000)
poe_fan_temp1 Temperature (in millicelcius) at which the fan
speeds up (default 45000)
poe_fan_temp1_hyst Temperature delta (in millicelcius) at which
the fan slows down (default 2000)
poe_fan_temp2 Temperature (in millicelcius) at which the fan
speeds up (default 50000)
poe_fan_temp2_hyst Temperature delta (in millicelcius) at which
the fan slows down (default 2000)
poe_fan_temp3 Temperature (in millicelcius) at which the fan
speeds up (default 55000)
poe_fan_temp3_hyst Temperature delta (in millicelcius) at which
the fan slows down (default 5000)
建议配置:
# PoE Hat Fan Speeds
dtoverlay=rpi-poe
dtparam=poe_fan_temp0=65000
dtparam=poe_fan_temp0_hyst=1000
dtparam=poe_fan_temp1=70000
dtparam=poe_fan_temp1_hyst=2500
dtparam=poe_fan_temp2=80000
dtparam=poe_fan_temp2_hyst=5000
dtparam=poe_fan_temp3=90000
dtparam=poe_fan_temp3_hyst=5000
检查 dmesg 中是否存在类似错误,则表示您在固件更新时遇到了问题:
[...] rpi-poe-fan rpi-poe-fan@0: Failed to get default PWM value: -5
[...] rpi-poe-fan: probe of rpi-poe-fan@0 failed with error -5
此处有关如何使用先前固件的说明: https://github.com/raspberrypi/firmware/issues/1531
更改 config.txt 并重新启动后,使用以下命令检查值是否正确:
od -An --endian=big -td4 /proc/device-tree/thermal-zones/cpu-thermal/trips/trip?/temperature /proc/device-tree/thermal-zones/cpu-thermal/trips/trip?/hysteresis
你应该得到:
65000 70000 80000 90000
1000 2500 5000 5000
干杯
答案3
ubuntu 21.04。您无需执行任何操作。我刚刚将 POE-plus 添加到 RASPI4/8g,风扇遵循 Carlos(感谢 Carlos)上面所示的默认设置。
当前版本 21.04 满足您的所有需求。使用以下命令进行验证:
输入以下命令:
od -An --endian=big -td4 /proc/device-tree/thermal-zones/cpu-thermal/trips/trip?/temperature /proc/device-tree/thermal-zones/cpu-thermal/trips/trip?/hysteresis
你应该得到:
40000 45000 50000 55000
2000 2000 2000 5000