Установка Home Assistant на Orange Pi 3b или аналогичный.

Здравия всем! В этой статье я расскажу вам, как установить Home Assistant Supervised на одноплатный компьютер Orange Pi 3b, который работает на Armbian.


Введение

В предыдущей статье я уже говорил, что наша система будет функционировать от маломощного генератора. Я уже всё подготовил, и теперь нам осталось только установить Home Assistant Supervised.

Подготовка

Чтож начнем нашу установку с подготовки. Зайдем через SSH на наш сервер и получим root права

su -

Конфигурирование AppArmor

Нам нужно установить сам AppArmor

apt install apparmor

Добавим информацию о AppArmor в загрузчик Armbian.

echo "extraargs=apparmor=1 security=apparmor systemd.unified_cgroup_hierarchy=false systemd.legacy_systemd_cgroup_controller=false" >> /boot/armbianEnv.txt


Обновим загрузчик Armbian.

update-initramfs -u
root@orangepi3b:~# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-6.1.75-vendor-rk35xx
W: Possible missing firmware /lib/firmware/regulatory.db for built-in driver cfg80211
W: Possible missing firmware /lib/firmware/regulatory.db.p7s for built-in driver cfg80211
update-initramfs: Armbian: Converting to u-boot format: /boot/uInitrd-6.1.75-vendor-rk35xx
Image Name:   uInitrd
Created:      Sun Sep 29 21:50:21 2024
Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
Data Size:    8693662 Bytes = 8489.90 KiB = 8.29 MiB
Load Address: 00000000
Entry Point:  00000000
update-initramfs: Armbian: Symlinking /boot/uInitrd-6.1.75-vendor-rk35xx to /boot/uInitrd
'/boot/uInitrd' -> 'uInitrd-6.1.75-vendor-rk35xx'
update-initramfs: Armbian: done.

Перезагрузим наш мини-ПК

reboot

После перезагрузки, зайдем снова на наш сервер и проверим работу AppArmor

systemctl status apparmor.service

Также можно проверить командой

aa-status
root@orangepi3b:~# aa-status
apparmor module is loaded.
6 profiles are loaded.
6 profiles are in enforce mode.
   /usr/bin/man
   lsb_release
   man_filter
   man_groff
   nvidia_modprobe
   nvidia_modprobe//kmod
0 profiles are in complain mode.
0 profiles are in kill mode.
0 profiles are in unconfined mode.
0 processes have profiles defined.
0 processes are in enforce mode.
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.
0 processes are in mixed mode.
0 processes are in kill mode.

Установка необходимых компонентов

Перед установкой Home Assistant нужно установить необходимые компоненты. В противном случае процесс установки завершиться с ошибкой.

apt-get install jq wget curl udisks2 libglib2.0-bin network-manager dbus apparmor-utils systemd-journal-remote lsb-release systemd-resolved bluez cifs-utils nfs-common

Установка OS Agent

Прежде чем приступить к установке Home Assistant, нам необходимо скачать и установить Agent for Home Assistant OS. Этот пакет можно найти на GitHub. Давайте скачем его.

wget https://github.com/home-assistant/os-agent/releases/download/1.6.0/os-agent_1.6.0_linux_aarch64.deb
dpkg -i os-agent_1.6.0_linux_aarch64.deb

Установка Docker

Как известно Home Assistant Supervised работает на Docker. Давайте установим его.

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
root@orangepi3b:~# sh ./get-docker.sh
# Executing docker install script, commit: 39040d838e8bcc48c23a0cc4117475dd15189976
+ sh -c apt-get -qq update >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get -y -qq install ca-certificates curl >/dev/null
+ sh -c install -m 0755 -d /etc/apt/keyrings
+ sh -c curl -fsSL "https://download.docker.com/linux/debian/gpg" -o /etc/apt/keyrings/docker.asc
+ sh -c chmod a+r /etc/apt/keyrings/docker.asc
+ sh -c echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable" > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get -qq update >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get -y -qq install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin >/dev/null
+ sh -c docker version
Client: Docker Engine - Community
 Version:           27.3.1
 API version:       1.47
 Go version:        go1.22.7
 Git commit:        ce12230
 Built:             Fri Sep 20 11:41:19 2024
 OS/Arch:           linux/arm64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          27.3.1
  API version:      1.47 (minimum version 1.24)
  Go version:       go1.22.7
  Git commit:       41ca978
  Built:            Fri Sep 20 11:41:19 2024
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.7.22
  GitCommit:        7f7fdf5fed64eb6a7caf99b3e12efcf9d60e311c
 runc:
  Version:          1.1.14
  GitCommit:        v1.1.14-0-g2c9f560
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

================================================================================

To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:

    dockerd-rootless-setuptool.sh install

Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.


To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/

WARNING: Access to the remote API on a privileged Docker daemon is equivalent
         to root access on the host. Refer to the 'Docker daemon attack surface'
         documentation for details: https://docs.docker.com/go/attack-surface/

================================================================================

Название ОС 

Установщик Home Assistant Supervised поддерживает только Debian. Текущий дистрибутив хоть и основан на Debian 12, но в описании его стоит Armbian

lsb_release -a
root@orangepi3b:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Armbian_community 24.11.0-trunk.154 bookworm
Release:        12
Codename:       bookworm

В разделе Description у нас явно показывает, что дистрибутив не Debian 12. Если это не исправить, то будет так:

root@orangepi3b:~# dpkg -i homeassistant-supervised.deb
Выбор ранее не выбранного пакета homeassistant-supervised.
(Чтение базы данных … на данный момент установлено 27062 файла и каталога.)
Подготовка к распаковке homeassistant-supervised.deb …
[warn]
[warn] If you want more control over your own system, run
[warn] Home Assistant as a VM or run Home Assistant Core
[warn] via a Docker container.
[warn]
[error] Armbian_community 24.11.0-trunk.154 bookworm is not supported!
dpkg: ошибка при обработке архива homeassistant-supervised.deb (--install):
 подпроцесс из пакета homeassistant-supervised новый сценарий pre-installation возвратил код ошибки 1
[info] Undo divert on abort-install

Давайте внесем изменения в конфигурацию Armbian, для этого отредактируем файл /etc/os-release

mcedit /etc/os-release

И приведем его к следующему состоянию:

PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.armbian.com"
SUPPORT_URL="https://forum.armbian.com"
BUG_REPORT_URL="https://www.armbian.com/bugs"
ARMBIAN_PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"

Все наш дистрибутив для мастера установщика будет Debian 12.

Установка Home Assistant Supervised

Пришло время установить Home Assistant Supervised. Давайте сделаем это.

wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb 
dpkg -i homeassistant-supervised.deb
Выбор ранее не выбранного пакета homeassistant-supervised.
(Чтение базы данных … на данный момент установлено 27062 файла и каталога.)
Подготовка к распаковке homeassistant-supervised.deb …
[warn]
[warn] If you want more control over your own system, run
[warn] Home Assistant as a VM or run Home Assistant Core
[warn] via a Docker container.
[warn]
Настраивается пакет homeassistant-supervised (1.8.0) …
[info] Reload systemd
[info] Restarting NetworkManager
[info] Enable systemd-resolved
[info] Restarting systemd-resolved
[info] Set up systemd-journal-gatewayd socket file
[info] Enable systemd-journal-gatewayd
[info] Start nfs-utils.service
[info] Restarting docker service
PING checkonline.home-assistant.io (104.26.4.238) 56(84) bytes of data.
64 bytes from 104.26.4.238 (104.26.4.238): icmp_seq=1 ttl=56 time=38.7 ms

--- checkonline.home-assistant.io ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 38.654/38.654/38.654/0.000 ms
Не создаётся домашний каталог «/var/lib/nfs».
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-client.target → /lib/systemd/system/nfs-client.target.
Created symlink /etc/systemd/system/remote-fs.target.wants/nfs-client.target → /lib/systemd/system/nfs-client.target.
auth-rpcgss-module.service is a disabled or a static unit, not starting it.
nfs-idmapd.service is a disabled or a static unit, not starting it.
nfs-utils.service is a disabled or a static unit, not starting it.
proc-fs-nfsd.mount is a disabled or a static unit, not starting it.
rpc-gssd.service is a disabled or a static unit, not starting it.
rpc-statd-notify.service is a disabled or a static unit, not starting it.
rpc-statd.service is a disabled or a static unit, not starting it.
rpc-svcgssd.service is a disabled or a static unit, not starting it.
rpc_pipefs.target is a disabled or a static unit, not starting it.
var-lib-nfs-rpc_pipefs.mount is a disabled or a static unit, not starting it.
Настраивается пакет homeassistant-supervised (1.8.0) …
[info] Reload systemd
[info] Restarting NetworkManager
[info] Enable systemd-resolved
[info] Restarting systemd-resolved
[info] Set up systemd-journal-gatewayd socket file
[info] Enable systemd-journal-gatewayd
[info] Start nfs-utils.service
[info] Restarting docker service
PING checkonline.home-assistant.io (104.26.4.238) 56(84) bytes of data.
64 bytes from 104.26.4.238 (104.26.4.238): icmp_seq=1 ttl=56 time=38.7 ms

--- checkonline.home-assistant.io ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 38.654/38.654/38.654/0.000 ms

Ход выполнения: [ 95%] [#######################################################################################.....]  

В процессе установки мастер, предложит выбрать нашу платформу. Для Orange Pi 3b нужно в списке выбрать похожую платформу, это raspberrypi4-64

После выбора платформы, продолжиться установка

[info] Install supervisor startup scripts
[info] Install AppArmor scripts
[info] Start Home Assistant Supervised
[info] Installing the 'ha' cli
[warn] Could not find /etc/default/grub or /boot/firmware/cmdline.txt failed to switch to cgroup v1
[info] Within a few minutes you will be able to reach Home Assistant at:
[info] http://homeassistant.local:8123 or using the IP address of your
[info] machine: http://192.168.1.106:8123
Обрабатываются триггеры для man-db (2.11.2-2) …
Обрабатываются триггеры для dbus (1.14.10-1~deb12u1) …
Обрабатываются триггеры для libc-bin (2.36-9+deb12u8) …

Процесс установки и скачивания всех докер контейнеров, нужных для работы не быстрый. Нужно открыть браузер по ссылке, которую написал установщик, у меня это: http://192.168.1.106:8123. В начале там будет страница браузера, говорящая, что сервер не найден. Надо ждать.

Через некоторое время появится заглушка от скрипта установки Home Assistant. Ждем дальше.

Через некоторое время, обычно 5-20 минут, в зависимости от скорости интернет соединения процесс установки завершиться. Мой экземпляр Orange Pi 3b справился за 7 минут.

Заключение

На этом установка Home Assistant Supervised на одноплатный компьютер Orange Pi 3b с операционной системой Armbian закончена. Как видно, установка не намного сложнее, чем установка на Х64 компьютер. Производительности данного одноплатного компьютер хватает на комфортную работу Home Assistant.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.