[*nix, Разработка на Raspberry Pi, Умный дом] Установка Home Assistant + Supervisor в Ubuntu на HDD Raspberry Pi 4
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
ВступлениеДанный мануал составлен мной после нескольких недель штудирования форумов, для тех, кто захочет пройти моим путем. Критика приветствуется.Выбор стекаПро Home Assistant (далее для краткости - HA) сказано было многое, и, на мой взгляд, это самая удачная система умного дома. По теме выбора можно почитать тут:
- https://habr.com/ru/post/485848/
- https://sprut.ai/client/article/546
- https://www.lazyhome.ru/index.php/15-overview/22-openhab-majordomo
Почему HDD? Много раз на форумах писали, что малинка с Home Assistant на борту кушает SD карты по одной за год. Кроме того, HA еще и логи пишет не понятно до каких пределов. Так что никаких SD.Оборудование в наличии
- Raspberry Pi 4
- HDD
- Переходник SATA - USB (при необходимости)
- Монитор
- Клава
- Ноут (комп) c возможностью записи SD карт. (У меня ноут под Windows 10)
- Роутер для выхода в сеть
Варианты установки Home AssistantОфициальный сайт предлагает нам несколько способов установки Home Assistant:Home Assistant Operating System для Raspberry Pi. Самый простой способ установки: залил образ и нет проблем. Все фичи в наличии. Рекомендован разработчиками. Минус - отсутствие полноценной системы.Home Assistant Operating System (VM) для Linux. Поднимаем виртуальную машину. Качаем образ. Запускаем. Профит. Да, все фичи на месте. Рекомендован разработчиками. Минус - виртуальная машина более затратна для системы чем Docker. Впрочем, этот способ я не пробовал.Home Assistant Container. Установка в контейнер Docker. Также рекомендован разработчиками. Минус - нет Supervisor.Home Assistant Core. Устанавливаем окружение Python. Устанавливаем Home Assistant. Минус - нет Supervisor.Home Assistant Supervised. Установка в контейнер Docker, но уже с Supervisor в комплекте. Вот что про это пишут разработчики:
Внимание! Этот способ запуска Home Assistant потребует всех ваших сил. У вас будут строгие требования, которым придется следовать. Если вы не понимаете зачем оно вам надо, используйте способы описанные выше.
Или вот еще:
Этот метод установки обеспечит полный функционал HA на обычной системе. Это значит, что все компоненты HA будут использованы за исключением Home Assistant Operating System. Пользователь сам ответственен, чтобы все требуемые компоненты были установлены и настроены. Список компонентов и их версии меняются со временем, а Home Assistant Supervised предоставляется как есть. И, вообще, мы принимаем багрепорты воспроизводимые только на свежеустановленном полностью обновленном Debian без дополнительных архивов. Этот метод считается продвинутым и должен использоваться только если читающий - эксперт в управлении Linux, Docker и сетях. Приятно слышать.Мы работаем только с Docker и ни с чем другим. Дальше идет список требований. К нему вернемся в процессе установки. Только вышеназванная версия Debian (на момент написания статьи это Debian Linux Debian 10 aka Buster (no derivatives)) поддерживается. Когда выходит новая версия Debian поддержка предыдущей прекращается в течение 4 месяцев. Если только новая версия не соответствует требованиям Supervisor.Этот метод не будет работать если читающий где-то накосячит. Кстати, вот вам еще несколько дополнительных условий:Эта система только для Home Assistant. Даже не думайте устанавливать еще какое-то ПО.Читающий ответственен:
- За установку и настройку ОС
- За обновление компонентов, необходимых для Supervisor
- За установку хоть чего нибудь, конфликтующего с Supervisor
- За обновления безопасности
Время от времени требования к Supervisor меняются и читающий должен сам обновлять свою ОС и устанавливать недостающие компонентыЗаключение: Эксперт. Тебе будет непросто. Смирись.
Это наш путь.Шаг 0. Первый контактЗдесь и далее я буду подключать Raspberry через WiFi. Начнем с того, что пропишем в нашем домашнем DHСP сервере статический IP-адрес Raspberry. Это нужно для удобства, чтобы не выяснять каждый раз, как достучаться до малинки. Вот официальный туториал как подружить Raspberry и WiFi. Качаем образ Ubuntu от сюда. На данный момент это Ubuntu Server 20.04.2 LTS 64-bit. Заливаем на SD карту при помощи Balena Etcher. Вынимаем карту и ... снова вставляем откуда взяли. Это нужно, чтобы загрузочный сектор Ububuntu стал доступен в проводнике. Открываем файл network-configи прописываем туда параметры WiFi. Должно получится что-то вроде:
version: 2
ethernets:
eth0:
dhcp4: true
optional: true
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"сюда пишем название сети":
password: "сюда пишем пароль"
А теперь немного комментариев разработчиков:
Имя сети должно быть в кавычках
При первой загрузке Raspberry попытается присоединится к WiFi. Эта попытка обречена на провал. Но не расстраивайтесь, просто перезагрузите малинку sudo reboot -h now и все заработает.
Для этого нам и нужен монитор с клавой. И да, дефолтный логинubuntuпароль такой же. Если выдается сообщение Login incorrect значит нужно просто немного подождать и попробовать еще раз. Затем нам предложат задать свой супер-мега-сложный пароль и не отстанут, пока не сделаем это. Как только мы получили доступ к телу командной строке - перезагружаемся. Верный признак, что коннект есть - Ubuntu рапортует, что можно поставить несколько апдейтов. Узнать IP и MAC адрес малинки можно командой ip a. А теперь идем в настройки роутера и прописываем статический IP дли MAC одноплатника. Как это сделать не скажу - здесь все индивидуально.Шаг 1. Настройка загрузки с HDDОбновляем систему чтобы все было по фен-шую. sudo apt updatesudo apt upgrade -yТеперь устанавливаем пакет для работы с загрузчиком sudo apt install rpi-eeprom. На всякий случай перезагружаемся sudo reboot -h now.У загрузчика имеется три версии релиза (выдержка из оригинальной статьи):
default - Обновляется для поддержки нового железа, исправления критических ошибок и регулярного обновления новых фичей, протестированных в релизе latest.latest - Обновляется, когда новые фичи прошли успешное бета-тестированиеbeta - Здесь тестируется все новое
Из вышесказанного понятно, что релизы проранжированы по степени новизны/стабильности. На одном из форумов написано:
Будьте уверены, что используете последнюю версию релиза latest(он же stable). Если же нет, Вы не сможете загрузиться с USB. Не существует default(он же critical) релиза с поддержкой загрузки по USB.
Как по мне, все нормально запустилось с defaultветки. По-видимому, на дату статьи релиз уже обновили. Итак, делай раз: обновляем загрузчик до последней версии sudo rpi-eeprom-update -a. Перезагружаемся sudo reboot -h now. Делай два: заливаем Ubuntu на USB (HDD) носитель. Как это сделать, описано в Шаге 0. Примечание: некоторые рапортуют о проблемах с питанием HDD при использовании переходника SATA-USB. Что с этим делать - думайте сами. Например, замените HDD на SSD. Лично у меня HDD Toshiba MK7575GSX нормально завелся.Делай три: В загрузочном разделе (он всегда первый и отформатирован в FAT32) Находим файл vmlinuz, распаковываем его в эту же директорию (я использовал 7-Zip) и переименовываем в vmlinux. Идем в config.txt, комментим строки чтобы было как-то так: #[pi4] #kernel=uboot_rpi_4.bin #max_framebuffers=2 #[pi2] #kernel=uboot_rpi_2.bin #[pi3] #kernel=uboot_rpi_3.bin И дописываем, чтобы было как-то так: [all] arm_64bit=1 device_tree_address=0x03000000 kernel=vmlinux initramfs initrd.img followkernel Все. Больше здесь ничего ни трогаем, впрочем кому как нравится...Делай четыре: прописываем настройки wi-fi как в шаге 0.Делай пять. Идем сюда: https://github.com/raspberrypi/firmware/tree/masterи копируем себе репозиторий. Там есть такая зеленая кнопка Code, а в ней Download ZIP. В скаченном архиве идем в папку Bootи копируем (с заменой конечно же!) файлы с расширением .datи .elfв загрузочный раздел нашего USB носителя. Теперь USB готов к работе. Подключаем его к порту USB 3.0 (тот, что с синей полоской) чтобы быстрее работало. Пробуем загрузиться, и... надеюсь, что все заведется.Траблшутинг: Лично у меня была проблема - не запускалась малинка после очередного обновления ядра Linux или чего-то такого. Но потом ребята с GitHub'а все пофиксили и стало ОК. Так что, если у вас что-то идет не так: либо нарушили какой-то пункт из описанных выше, либо ждем обновления ветки (кстати, можно перейти на релиз latestи попробовать с него), либо повезет в любви. И еще, после обновления системы, выполняемого, например, командой sudo apt full-upgradeUbuntu перестанет запускаться до тех пор, пока в загрузочном секторе мы снова не распакуем vmlinuzв vmlinux.Шаг 2. Устанавливаем зависимостиРазработчики требуют, чтобы в системе было установлено Docker, Systemd, NetworkManager, AppArmor. Sysstemd и AppArmor уже установлены в системе - по ним дополнительных действий не требуется. Хотя пакет jqотсутствует в официальных требованиях, без него установочный скрипт все-равно не запустится. С него и начнем. Выполняем sudo apt install jq. Готово!Теперь возьмемся за NetworkManager. Для начала устанавливаем его командой sudo apt install network-manager. Добавляем в автозагрузку sudo systemctl enable NetworkManager. Но просто установить и запустить его недостаточно. В настоящий момент есть две альтернативные системы управления сетью systemd-networkd и NetworkManager. По умолчанию в системе установлена первая, а нам нужен именно NetworkManager. Чтобы переключится на него идем в /etc/netplanи редактируем файл конфигурации командой sudo vi /etc/netplan/50-cloud-init.yaml. Примечание: у меня это 50-cloud-init.yaml . Говорят, название может отличаться. Добавляем строку renderer: NetworkManager следующей строкой за network:. Обращаем внимание на отступы. В yaml отступы решают. Делаем sudo netplan generateиsudo netplan apply, перезагружаемся. Останавливаем systemd-networkd - он теперь больше не нужен -sudo systemctl stop systemd-networkd и отключаем его от автозагрузкиsudo systemctl disable systemd-networkd, перезагружаемся.Приступаем к установке Docker. Далее взяты инструкции с официального сайта Docker. Для начала установим зависимости, которые требует Docker sudo apt install apt-transport-https ca-certificates curl gnupg-agent \ software-properties-common.Добавляем официальный ключ Docker curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -. Проверяем, что ключ добавился правильно командой sudo apt-key fingerprint 0EBFCD88. В ответе должно быть 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88. Добавляем официальный репозиторий Docker в систему. sudo add-apt-repository \ "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) \ stable"Обновляем репозитории sudo apt updateи устанавливаем Docker командой sudo apt install docker-ce docker-ce-cli containerd.io. Проверяем, что Docker встал нормально командой sudo docker run hello-world.Шаг 3. Устанавливаем Home AssistantИ вот уже все готово, чтобы установить Home Assistant! Качаем установочный скрипт командой curl -Lo installer.sh https://raw.githubusercontent.com/home-assistant/su...ter/installer.shНо запускать его не спешим. А лучше открываем его через vi installer.sh. Находим строчку и # Pull supervisor imageпосле нее вставляем sleep 20, а затем вставляем еще одну строкуHASSIO_VERSION="latest" . Переходим в режим суперпользователяsudo suи запускаем скрипт bash installer.sh --machine raspberrypi4-64. Ждем когда скрипт отработает до конца. Первая загрузка Home Assistant занимает некоторое время. Будьте терпеливы. Если все прошло нормально, достучаться до HA можно по адресу http://локальный ip малинки:8123. Не забудьте удалить rm installer.shон теперь не нужен.Вот и все.
===========
Источник:
habr.com
===========
Похожие новости:
- [Настройка Linux] Запуск Linux с виртуального диска vmdk на реальном железе и VirtualBox
- [Программирование, GTK+, Разработка под Linux] Создатель динамических обоев на языке Vala
- [Настройка Linux, Системное программирование, Kubernetes] Скидка на экзамены по Kubernetes и Linux
- Выпуск дистрибутива Альт Рабочая станция К 9.1
- [Java] Вышла Java 16
- [DIY или Сделай сам] CCTV на базе Raspberry Pi. Часть первая и, возможно, последняя
- [Системное администрирование, Программирование, Git, Разработка под Linux, DevOps] DevOps: автоматизация инфраструктуры на примере Terraform, docker, bash, prometheus exporters, Gitlab и WireGuard
- [*nix] Загрузка Linux с VHD на компьютере с BIOS
- [*nix, Разработка под Linux, Интернет вещей, DIY или Сделай сам] Подключаем дисплей SPI LCD ILI9341 к одноплатному компьютеру Banana Pi BPI-M64 или любому другому на ОС Armbian
- Шестнадцатое обновление прошивки Ubuntu Touch
Теги для поиска: #_*nix, #_razrabotka_na_raspberry_pi (Разработка на Raspberry Pi), #_umnyj_dom (Умный дом), #_linux, #_ubuntu, #_homeassistant, #_supervisor, #_raspberry, #_raspberry_pi, #_umnyj_dom (умный дом), #_*nix, #_razrabotka_na_raspberry_pi (
Разработка на Raspberry Pi
), #_umnyj_dom (
Умный дом
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 07:33
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
ВступлениеДанный мануал составлен мной после нескольких недель штудирования форумов, для тех, кто захочет пройти моим путем. Критика приветствуется.Выбор стекаПро Home Assistant (далее для краткости - HA) сказано было многое, и, на мой взгляд, это самая удачная система умного дома. По теме выбора можно почитать тут:
Внимание! Этот способ запуска Home Assistant потребует всех ваших сил. У вас будут строгие требования, которым придется следовать. Если вы не понимаете зачем оно вам надо, используйте способы описанные выше.
Этот метод установки обеспечит полный функционал HA на обычной системе. Это значит, что все компоненты HA будут использованы за исключением Home Assistant Operating System. Пользователь сам ответственен, чтобы все требуемые компоненты были установлены и настроены. Список компонентов и их версии меняются со временем, а Home Assistant Supervised предоставляется как есть. И, вообще, мы принимаем багрепорты воспроизводимые только на свежеустановленном полностью обновленном Debian без дополнительных архивов. Этот метод считается продвинутым и должен использоваться только если читающий - эксперт в управлении Linux, Docker и сетях. Приятно слышать.Мы работаем только с Docker и ни с чем другим. Дальше идет список требований. К нему вернемся в процессе установки. Только вышеназванная версия Debian (на момент написания статьи это Debian Linux Debian 10 aka Buster (no derivatives)) поддерживается. Когда выходит новая версия Debian поддержка предыдущей прекращается в течение 4 месяцев. Если только новая версия не соответствует требованиям Supervisor.Этот метод не будет работать если читающий где-то накосячит. Кстати, вот вам еще несколько дополнительных условий:Эта система только для Home Assistant. Даже не думайте устанавливать еще какое-то ПО.Читающий ответственен:
Время от времени требования к Supervisor меняются и читающий должен сам обновлять свою ОС и устанавливать недостающие компонентыЗаключение: Эксперт. Тебе будет непросто. Смирись.
version: 2
ethernets: eth0: dhcp4: true optional: true wifis: wlan0: dhcp4: true optional: true access-points: "сюда пишем название сети": password: "сюда пишем пароль" Имя сети должно быть в кавычках
При первой загрузке Raspberry попытается присоединится к WiFi. Эта попытка обречена на провал. Но не расстраивайтесь, просто перезагрузите малинку sudo reboot -h now и все заработает.
default - Обновляется для поддержки нового железа, исправления критических ошибок и регулярного обновления новых фичей, протестированных в релизе latest.latest - Обновляется, когда новые фичи прошли успешное бета-тестированиеbeta - Здесь тестируется все новое
Будьте уверены, что используете последнюю версию релиза latest(он же stable). Если же нет, Вы не сможете загрузиться с USB. Не существует default(он же critical) релиза с поддержкой загрузки по USB.
=========== Источник: habr.com =========== Похожие новости:
Разработка на Raspberry Pi ), #_umnyj_dom ( Умный дом ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 07:33
Часовой пояс: UTC + 5