Для установки home-assistant нам понадобится собрать openssl-1.1.1g+ и python-3.9.2+. Чтобы не захламлять wirenboard лишними пакетами и ускорить сборку, будем собирать в docker. Для этого устанавливаем на любую рабочую машину docker и создаем рабочий каталог:
$ mkdir -p /Users/someuser/WB && cd $_
Скачиваем Dockerfile для сборки пакетов:
$ wget https://gist.githubusercontent.com/akozlenkov/cfada81c99d2d04e88b47960ac77e674/raw/8767d00638e8ccea7825357efaf3ab757984f356/Dockerfile
Запускаем сборку пакетов:
$ DOCKER_BUILDKIT=1 docker build --target artifacts --output type=local,dest=. .
PS: Если лень собирать, то скачать архивы можно тут
По завершению сборки переносим архивы openssl-1.1.1j.tar.gz и python-3.9.2.tar.gz на wirenboard в директорию /mnt/data .
# scp openssl-1.1.1j.tar.gz wirenboard.local:/mnt/data && scp python-3.9.2.tar.gz wirenboard.local:/mnt/data// Либо другим удобным способом.
Распаковываем архивы в /mnt/data:
# tar xvfz openssl-1.1.1j.tar.gz && tar xvfz python-3.9.2.tar.gz
Создаем симлинки:
# ln -s /mnt/data/usr/local/openssl /usr/local/openssl && ln -s /mnt/data/usr/local/python3.9 /usr/local/python3.9 && ln -s /usr/local/python3.9 /usr/local/python3
Добавляем необходимые переменные:
# echo -e 'export CFLAGS="-I/usr/local/openssl/include"\nexport LDFLAGS="-L/usr/local/openssl/lib"\nexport LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/openssl/lib\nexport PATH=/usr/local/openssl/bin:/usr/local/python3/bin:${PATH}' >> ~/.bashrc && source ~/.bashrc
Проверяем, что openssl работает:
# openssl version// Должно показать что то вроде - OpenSSL 1.1.1j 16 Feb 2021
Проверяем, что python работает:
# python3 -V// Должно показать версию нашего python - 3.9.2
Создаем директории для home-assistant:
# mkdir -p /mnt/data/{tmp,home-assistant}
Создаем виртуальное окружение python для home-assistant:
# cd /mnt/data/home-assistant && python3 -m venv .venv && source .venv/bin/activate
Устанавливаем зависимости home-assistant:
(.venv) # apt-get update && apt-get install -y gcc make ffmpeg libffi-dev libsqlite3-dev zlib1g-dev libjpeg-dev
Устанавливаем home-assistant:
(.venv) # TMPDIR=/mnt/data/tmp pip3 install homeassistant
Скачиваем systemd unit и запускаем сервис:
(.venv) # wget https://gist.githubusercontent.com/akozlenkov/cfada81c99d2d04e88b47960ac77e674/raw/edd73dd67f36f948a9a95cc24714dc759d6ecdbc/home-assistant.service -O /lib/systemd/system/home-assistant.service && systemctl daemon-reload && systemctl enable home-assistant && systemctl start home-assistant