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

Если вы используете в качестве вычислительного центра умного дома Raspberry PI, то возможно вы замечали, что в некоторые моменты приложения в вашей системе перестают отвечать с должной оперативностью. А если вы, как и многие, используете «малину» для проброса камер в HomeKit и декодируете поток, то наверняка могли столкнуться с проблемой длительного ожидания подключения к камере.

Во многом этому виной просадка по напряжению от вашего блока питания. Попробуем понять и исправить с минимальным вложением.

Заметка основана на личном опыте, который оказался весьма успешным и достойным того чтобы им поделиться.

Предыстория.

Когда я покупал свою Raspberry PI 3B+ я сделал это путем покупки бандла с блоком питания, корпусом из акрила и сенсорным экраном на 3.5” (абсолютно не нужная вещь). Блок питания идущий в комплекте обещал 2,5 ампера тока при 5 вольтах, а так же комплектовался кабелем питания c кнопкой выключения (кнопка размыкала токоведущие жилы и ничем по итогу не отличалась от выдергивания шнурка из малины).

Спустя 1.5-2 года владения малиной и где то 8-9 месяцев ее постоянного использования в качестве центра умного дома я дополнил «сетап» теплоотводящим корпусом-радиатором с двумя миниатюрными 5-вольтовыми вентиляторами. И тут то началась жесть.

Начало истории.

Камеры, которые были проброшены в HomeKit с декодированием стали открываться с огромным ожиданием в 5-10 секунд. Холодный запуск home.app на телефоне сулил тем что все устройства имели статус «обновление» все те же 5-10 секунд. Предпоследней каплей и первым намеком стала кончина microSD карты и экстренная покупка в ближайшем магазине подмены в лице Samsung EVO+ на 32Gb (есть на Ali занедорого).

Последний звоночек.

Придя домой я был пойман собственной сигнализацией, которая не снялась при моем приближении (на основании BLE меток настроенных по этой статье) и в полной темноте, так как контрольный свет в прихожей не загорелся.

Малина горела красным светодиодом и признаков жизни не подавала. Перезагрузил по питанию. Загрузилась. Не стал разбираться в причинах, а на следующий день обнаружил ее в таком же состоянии. Начал копать логи, историю системных событий и увидел подобную картину:

under-voltage косоль dmesg
Вывод команды dmesg

Under-voltage! Заниженное напряжение. Так же в логах проскакивало сообщение о периодическом троттлинге (занижении тактовой частоты, пропуск тактов).

Стал изучать вопрос как это мониторить и как системными средствами определи влияние.

Monit.

Итак, чтобы понять существует ли у вас такая проблема:

— Смотрим командой

dmesg

наличие сообщений о under-voltage. Если есть – ваша инсталляция точно имеет проблемы с питанием.

— Смотрим частоту на которой работает ваша малина

vcgencmd measure_clock arm

Если значение будет сильно ниже (в 2 и более раз) заложенного изначально (например 3B работает на 1.2 ГГц, что соответствует выводу frequency(45)=1200000000) – ваша инсталляция так же в зоне риска. *проверьте несколько раз подряд этот запрос.

— Выполняем

cat /sys/devices/platform/soc/soc:firmware/get_throttled

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

Решение.

Поняв что так жить нельзя и стабильность системы нарушена я начал менять мелкими шагами ситуацию в сторону ее полной стабилизации.

Отказался от питания вентиляторов на радиаторе от самой малины, запитал их отдельно от USB блока питания из Ашана. Заменил USB кабель на какой то «менее китайский», без кнопки, от старого телефона. Блок питания поставил другой на 2А, от того же телефона.

Эти шаги позволили сократить количество переходов в состояние троттлинга и значительно уменьшили ошибку Under-Voltage. Дальнейшее улучшение работы было невозможным на существующем в моем распоряжении оборудовании. Решено было искать качественный блок питания и кабель к нему.

Пересмотрев достаточное количество видео на Youtube по данной тематике, выбор пал на весьма бюджетную модель блока питания с тремя USB-A выхода с поддержкой QC быстрой зарядки — Rocketek 3 и USB-A <-> micro USB кабеле от Ugreen с длинной в 0.5 метра дабы еще сильнее сократить влияние помех на работу кабеля.

Конец.

По итогу за скромные 400 рублей с быстрой доставкой я напрочь забыл, что такое троттлинг на малине, избавился от ожидания открытия камер и перестал видеть «обновление» при холодном старте home.app. О чем поделился в telegram чате https://t.me/inhomekit_chat в котором я и многие другие обсуждают решения для организации своего умного дома. Заходите.

Author

Write A Comment