Рейтинг:2

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

флаг sj

I have Ubuntu 21.04 installed on a Raspberry Pi 4. I want to control the fan on the POE+ HAT (https://www.raspberrypi.org/products/poe-plus-hat/)

By default the fan does not spin at all. When I add dtoverlay=rpi-poe to /boot/firmware/config.txt the fan works in a seemingly default mode. But when I do sudo dtoverlay -l there are no overlays loaded so I don't know why it makes a difference.

Custom settings like these do not work as expected. When I add these the fan stops completely or falls back to default mode.

dtparam=poe_fan_temp0=50000
dtparam=poe_fan_temp1=58000
dtparam=poe_fan_temp2=64000
dtparam=poe_fan_temp3=68000

When I try to load the overlay rpi-poe I get the response * Failed to apply overlay '0_rpi-poe' (kernel) which maybe means it's not available in this kernel? GNU/Linux 5.11.0-1012-raspi aarch64

Carles Mateo avatar
флаг cn
Какая у вас модель? https://uk.pi-supply.com/products/pi-poe-switch-hat-power-over-ethernet-for-raspberry-pi? https://www.raspberrypi.org/products/poe-hat/?
Thijs avatar
флаг sj
https://www.raspberrypi.org/products/poe-plus-hat/ шляпа POE+
Рейтинг:1
флаг cn
oot

В сборках Ubuntu 21.04 для Pi 4 с шапкой PoE+ есть одно небольшое отличие, которое вы упускаете из виду и которое вызывает эту проблему.Драйвер встроенного ПО и связанное с ним наложение дерева устройств называются rpi-poe-плюс, нет rpi-poe (это для старой шляпы PoE).

Вы можете узнать это, увидев доступные наложения дерева устройств с помощью следующей команды и отметив, что в списке их два.

ls /boot/firmware/overlays | grep poe

Добавьте следующее в /boot/прошивка/config.txt файл, чтобы вентилятор работал с шапкой PoE+.

dtoverlay=rpi-poe-плюс
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 так, как вам нравится, чтобы настраивать вентилятор при различных значениях температуры процессора. Значения градусов C x 1000.

Thijs avatar
флаг sj
круто, спасибо! тоже хорошо объяснил. возможно, вы забыли "=" после dtoverlay в примере кода.
oot avatar
флаг cn
oot
Хороший улов! @Thijs
Рейтинг:0
флаг us

убунту 21.04. Вам не нужно ничего делать. Я только что добавил POE-plus к RASPI4/8g, и вентилятор придерживается настроек по умолчанию, как показано Карлосом (спасибо, Карлос) выше.
В текущей версии 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? /гистерезис

вы должны получить:

   40000       45000       50000       55000
    2000        2000        2000        5000
Рейтинг:0
флаг cn

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

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

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

Имя: rpi-poe
Информация: Вентилятор Raspberry Pi PoE HAT
Загрузка: dtoverlay=rpi-poe,<параметр>[=<значение>]
Параметры: poe_fan_temp0 Температура (в миллицелсиях), при которой вентилятор
                                включается (по умолчанию 40000)
        poe_fan_temp0_hyst Дельта температуры (в миллицелсиях), при которой
                                вентилятор выключается (по умолчанию 2000)
        poe_fan_temp1 Температура (в миллицелсиях), при которой вентилятор
                                ускоряется (по умолчанию 45000)
        poe_fan_temp1_hyst Дельта температуры (в миллицелсиях), при которой
                                вентилятор замедляется (по умолчанию 2000)
        poe_fan_temp2 Температура (в миллицелсиях), при которой вентилятор
                                ускоряется (по умолчанию 50000)
        poe_fan_temp2_hyst Дельта температуры (в миллицелсиях), при которой
                                вентилятор замедляется (по умолчанию 2000)
        poe_fan_temp3 Температура (в миллицелсиях), при которой вентилятор
                                ускоряется (по умолчанию 55000)
        poe_fan_temp3_hyst Дельта температуры (в миллицелсиях), при которой
                                вентилятор замедляется (по умолчанию 5000)

Предлагаемая конфигурация:

# Скорости вентилятора PoE Hat
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: не удалось получить значение ШИМ по умолчанию: -5
[...] rpi-poe-fan: проверка rpi-poe-fan@0 не удалась с ошибкой -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? /гистерезис

Вы должны получить:

65000 70000 80000 90000
1000 2500 5000 5000

Ваше здоровье

Thijs avatar
флаг sj
В ссылке на проблему 1531 есть 57 комментариев, поэтому я не уверен, на что вы ссылаетесь, но у меня нет сообщения dmesg с rpi-poe, поэтому я думаю, что это не проблема прошивки, тогда, если я правильно понимаю
Carles Mateo avatar
флаг cn
Предложенный конфиг сработал?
Thijs avatar
флаг sj
нет, кулер больше ничего не делает, кроме использования настроек по умолчанию

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.