Раскатка новенькой Raspberry Pi Zero W в качестве сервера автобуса · Into unknown

Раскатка новенькой Raspberry Pi Zero W в качестве сервера автобуса


December 29, 2023

Пока не наступила весна, и не пришли все оставшиеся инструменты – стремительно тороплюсь сделать автоматизацию. 146% интеллектуальной работы. К счастью, белых пятен всё меньше, и всё больше рутины. Этот пост – про создание сервера, “мозга”, на котором будет крутиться вся логика работы компонент. Эта штука здорово облегчит мне переусложнения автоматизации! Не могу дождаться!

Фото PiZeroW

Зачем оно вообще?

Pi Zero W выбрал в качестве сервера для автоматики автодомика. По крайней мере, в качестве первой версии.

У неё минимальное энергопотребление, не так много вычислительных ресурсов. Безумно маленькая, и относительно дешёвая.

Изначально я купил сенсорный нетбук-трансформер Irbis NB31 за 6к₽.

Irbis NB31 disassembled

Но, при установке на него Linux я закирпичил его BIOS – он у них очень нежный, и чуть что перестаёт загружаться. Экран вечно чёрный.

Что докупил в комплект

Официальные документашки

Результат

Для начала прикрутил мониторинг. Очень уже понравилось соотношение $\frac{Результат}{Усилия}$ для связки node-exporter + prometheus + grafana.

Шапка панели

Он даже измеряет температуру "из коробки"! НиштяяяК!

Следующие шаги

Проблемки по пути

Выбор образа

Раскатывал образ системы на microSD карточку с помощью фирменной утилиты rpi-imager. Во многом потому, что она уже была доступна в качестве пакета в Ubuntu 22.04.

Вот только образ она предлагала неподходящий – 64-bit bookworm.

С ней моя зерошка не заработало. Я понижал верию, пока не заработало на Legacy 32-bit Full.

После установки удалил chromium-browser и firefox-esr. Притом, последовательно – при удалении хромиума автоматом ставилась замена в виде файерфокса. А после его установки автоматом на его место apt установил epiphany-browser. Забавно, что меня совсем не хотят оставлять без возможности погулять по сайтам:)

Setting locale failed

При первых попытках обновить систему с помощью $ sudo apt update && sudo apt upgrade -y в консоль посыпались ошибки с локалью:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_TIME = "ru_RU.UTF-8",
	LC_MONETARY = "ru_RU.UTF-8",
	LC_ADDRESS = "ru_RU.UTF-8",
	LC_TELEPHONE = "ru_RU.UTF-8",
	LC_NAME = "ru_RU.UTF-8",
	LC_MEASUREMENT = "ru_RU.UTF-8",
	LC_IDENTIFICATION = "ru_RU.UTF-8",
	LC_NUMERIC = "ru_RU.UTF-8",
	LC_PAPER = "ru_RU.UTF-8",
	LANG = "en_GB.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_GB.UTF-8").
locale: Cannot set LC_ALL to default locale: No such file or directory

Решение

Даже штатная утилита raspi-config не Шмогла пофиксить эту проблему, когда я пытался через ней установить новую локаль. Поэтому, я копнул дальше.

В файле /etc/default/locale изначально только такое содержимое:

#  File generated by update-locale
LANG=en_US.UTF-8

Расширьте его до следующего:

#  File generated by update-locale
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_ALL=en_US.UTF-8

После этого проблему больше пока не наблюдал.

Grafana в докере нет

Сам docker встал без проблем. Но вот при попытке подтянуть образ grafana вернулась следующая ошибка:

docker: no matching manifest for linux/arm/v6 in the manifest list entries.

По решению на форуме стягиваем компилированную под raspberry-arm версию.

wget https://dl.grafana.com/oss/release/grafana-rpi_9.4.7_armhf.deb
sudo dpkg -i grafana-rpi_9.4.7_armhf.deb

На официальном сайте опубликовали специальную инструкцию для малиноводов. Но там приколы с подписью репы.

Суть их подхода: добавить репу, установить ARM-компилированную версию прямо на хост, мимо докера.

Поэтому, просто стянул бинарь, и установил с помощью dpkg.