Ubuntu 21.04 无法应用覆盖“0_rpi-poe”(内核)

Ubuntu 21.04 无法应用覆盖“0_rpi-poe”(内核)

我在 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

相关内容