Ubuntu 21.04 Failed to apply overlay '0_rpi-poe' (kernel)

У меня есть Ubuntu 21.04, установленная на Raspberry Pi 4. Я хочу управлять вентилятором на 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
задан 22 July 2021 в 14:48

1 ответ

Разочарованный отсутствием документации, я нашел этот проект github, который, кажется, решает эту проблему:

https://github.com/raspberrypi/linux/issues/2715#issuecomment-769405042

rpi- poe был обновлен в марте 2020 года с добавлением:

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

Ура

0
ответ дан 28 July 2021 в 11:17

Другие вопросы по тегам:

Похожие вопросы: