Установка Home Assistant на Raspberry Pi 4. Загрузка и работа с внешнего SSD

Всем привет! Уже больше года у меня работает сервер умного дома iobroker на базе Raspberry Pi 3 B+ c 1 гигабайтом оперативной памяти (на тот момент малин с большим объемом памяти не существовало). Шло время, устройств и датчиков становилось все больше и сервер начал подвисать. Откровенно так подвисать. Анализ ситуации показал, что серверу не хватает ресурсов.  И если на карте памяти места достаточно, а процессор не так уж сильно загружен, то вот с оперативной памятью беда…. Мне очень нравится iobroker своей интуитивностью и простотой, но тяга к новому и экспериментам все еще есть. В итоге было принято решение развернуть новый сервер умного дома на базе проекта Home Assistant (далее HA). Попробовать его в деле и если понравится, то остаться на нем, ну а если нет, то вернуться на IOBROKER, т.к. аппаратная часть у этих систем одинакова.

Итак. Давайте поговорим об аппаратной части. Т.е. о том оборудовании, которое нам понадобится:

  • Raspberry Pi 4 B с объемом памяти 4 ГБ. Можно взять и двух гигабайтную версию, но памятуя предыдущий опыт, чет мне не хочется в следующем году все переделывать. Пускай лучше будет запас.
  • Карта памяти формата MicroSD, да пошустрее. У меня таковая имелась в запасе
  • Плата X862 для подключения SSD жестких дисков формата M.2 NGFF (SSD жесткие диски с SATA интерфейсов в формфакторе M.2)
  • Кабель USB Type-C
  • Блок питания на 5Вольт 3 Ампера
  • M.2 SSD диск. В моем случае это Kingston SA400M8/120G такой тоже был в хозяйстве. Чего-нибудь недорогого порекомендовать не могу. У меня пунктик на носители информации.

Вот так выглядит минимальный набор:

Установка Home Assistant на Raspberry Pi 4. Загрузка и работа с внешнего SSD

А так выглядит плата для подключения SSD накопителя с уже установленным жестким диском:

Установка Home Assistant на Raspberry Pi 4. Загрузка и работа с внешнего SSD

Установка Home Assistant на Raspberry Pi 4. Загрузка и работа с внешнего SSD

Опционально я приобрел корпус для Raspberry Pi с дополнительным охлаждением. Мне это нужно для того, чтобы защитить малину от случайного повреждения. Жить ей предстоит в шкафу. Мало ли что может случиться.

 

Справочно. Данная инструкция подходит не только для загрузки с платы x862

C таким же успехом ее можно применять для следующих плат:

x857

X820

X825

X835

А также вероятно с другими USB 3.0 носителями информации.

Перейдем к установке.

Для начала скачаем и установим программу BalenaEtcher.  Можно воспользоваться и другими вариантами, например руфусом. Балена у меня уже стоит, поэтому буду пользоваться ей.

Кроме этого, нам понадобится образ операционной системы. Ранее он назывался Raspbian, но на момент написания статьи он называется Raspberry Pi OS Lite. Переходим по ссылке https://www.raspberrypi.org/software/operating-systems/

Скачиваем архив и распаковываем в удобное место.

Вставляем microSD карту в картридер и подключаем ее к ПК

Запускаем BalenaEtcher

Выбираем файл с образом операционной системы, которую мы скачивали и распаковывали

Выбираем куда будем записывать файл. Т.е. нашу карту памяти

Т.е. выбираем флешку, а после этого нажимаем кнопку SELECT

Нажимаем кнопку FLASH 

И дожидаемся окончания записи образа операционной системы на карту памяти.

Закрываем BalenaEtcher.

Вынимаем карту памяти из картридера из снова вставляем обратно.

После подключения компьютер может пожаловаться, что есть диск, который не отформатирован.

Не обращаем на это сообщение внимания. Нажимаем ОТМЕНА. Ни в коем случае ничего не надо форматировать.

В проводнике появится диск с меткой BOOT

В корне этого диска любым удобным способом создаем пустой файл с именем SSH и без каких-либо расширений.

С флешкой все. Безопасно извлекаем ее из картридера и откладываем в сторонку.

Устанавливаем SSD жесткий диск в плату X862

Установка Home Assistant на Raspberry Pi 4. Загрузка и работа с внешнего SSD

И с помощью комплектного переходника и USB удлинителя подключаем ее к компьютеру.

После этого, проделываем с диском все те же операции, что мы проделывали с MicroSD карточкой.

Запускаем BalenaEtcher

Выбираем файл с образом операционной систем, которую мы скачивали и распаковывали

Выбираем куда будем записывать файл. В этом случае выбираем наш SSD диск.

Т.е. выбираем флешку, а после этого нажимаем кнопку SELECT

Нажимаем кнопку FLASH 

И дожидаемся окончания записи образа операционной системы на SSD диск.

 

Закрываем BalenaEtcher.

Отключаем плату от компьютера, подключаем ее обратно. Ничего не форматируем. Заходим на диск BOOT и создаем пустой файл SSH без расширения.

На данном этапе с диском все. Отключаем плату от ПК, не забываем пользоваться безопасным извлечением.

С помощью комплектных стоек собираем бутерброд из плат (x862 и Raspberry Pi)

Внимание! Платы не соединяем USB перемычкой. Это важно. Так сказать, пока еще не время.

Вставляем в Raspberry Pi карту памяти

Подключаем Raspberry Pi кабелем к локальной сети или напрямую к маршрутизатору.

Подключаем кабель питания и включаем систему.

В консоли вашего маршрутизатора смотрим какой IP адрес получила наша Raspberry PI. В виду того, что маршрутизаторов (роутеров) великое множество, то рекомендую выяснить этот вопрос самостоятельно.

Далее нам понадобится SSH клиент Putty. (приведена ссылка на скачивание актуальной версии). Вы можете использовать любой удобный Вам SSH клиент. Если у вас его нет. Скачайте версию Putty которая не требует установки.

И запустите скачанный файл (putty.exe).

В поле HostName (or IP Adress) введите IP адрес который получила наша Raspberry Pi.

В поле Port должно быть указано 22

В разделе Connection type должен быть выбран пункт SSH

Теперь, когда все поля заполнены, то можно нажать кнопку Open

Если все было сделано верно, то появится вот такое вот уведомление:

Нажимаем ДА.

Теперь в окне Putty отобразится консоль входа.

Вводим имя пользователя pi 

Нажимаем Enter

Вводим пароль raspberry

Нажимаем Enter

И попадаем в операционную систему нашего одноплатного компьютера.

 

Теперь обновляем список пакетов командой

Дожидаемся окончания процедуры.

Обновляем установленные пакеты командой

 

Готово.

Теперь командой

обновим прошивку Raspberry Pi

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

 

После ввода команды сессия с одноплатником разорвется. Необходимо подождать несколько минут и подключиться снова.

После перезагрузки снова подключаемся к малинке и выполняем команду

В моем случае стоят все последние обновления.

Вводим команду

и убеждаемся, что у нас последняя версия bootloader

Ну а теперь приятная новость. С сентября 2020 года в Raspberry Pi 4 появилась поддержка загрузки с USB накопителей и накопителей подключенных по USB. Так что ставить всякие беты загрузчиков нам не понадобится.

Непосредственно перейдем к настройке процесса загрузки с USB. Для тех кто не догадался, наш SSD тож по USB подключен.

Выполним команду

Выбираем пункт 6 Advanced Options

Выбираем пункт A7 Bootloader Version 

Выбираем пункт E1 Latest Use the latest version boot ROM software

В следующем окне выбираем пункт <No>

В следующем окне выбираем пункт <Ok>

Выбираем пункт 6 Advanced Options

Выбираем пункт A6 Boot Order

Выбираем пункт B1 USB Boot Boot from USB device if SD card boot fails

Клавишей TAB перемещаемся на пункт <Ok> и нажимаем Enter

Если все было сделано верно, то нас ожидает вот такое вот сообщение:

Нажимаем Enter

Перемещаемся на пункт меню <Finish> и нажимаем Enter тем самым выходим из утилиты raspi-config

От перезагрузки отказываемся выбрав пункт <NO> и нажимаемEnter

Теперь устанавливаем перемычку USB-USB между Raspberry Pi и платой с SSD диском.

Командой

создаем пустой каталог

Командой

монтируем наш SSD диск

Командами:

Переписываем с SD карты на SSD диск все файлы с расширением *.elf и *.dat

Теперь командой sudo halt выключаем наш одноплатник.

Ждем 2-3 минуты. Отключаем кабель питания и вынимаем SD Карту.

Теперь снова включаем питание и минут через 5 пробуем подключиться. Почему так долго? Малине необходимо произвести ряд сервисных операций на новом SSD диске.

Подключаемся к малинке.

Если все было сделано верно, то нас встретит окно:

Нажимаем “ДА” и авторизуемся в терминале.

Первым делом командой

сменим пароль поумолачнию от учетной запиcи pi на свой.

Вводим текущий пароль raspberry нажимаем ENTER и дважды вводим новый пароль. После каждого раза нажимаем ENTER

Теперь, как и в прошлый раз установим все обновления на малинку. Скрины можете посмотреть выше. Вот используемые команды:

Если ОС малинки попросит, для подтверждения нажимаем Y.

Добавим нового пользователя командой

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

Добавляем нового пользователя в группу sudo (для тех кто не в теме, даем права админа) командой

Теперь командой

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

Теперь установим файловый менежер mc

Делается это командой

Кому-то это может не понравится, но мне так работать удобнее.

Займемся настройкой сети.

Откроем конфигурационный файл командой

И добавим в файл следующие строки

Еще раз на всякий случай напоминаю, что вместо 192.168.0.100 пишем адрес, который вы хотите присвоить своей малине, а вместо 192.168.0.1 пишем адрес своего роутера. Иначе сеть перестанет работать.

Изменения в файле сохраняем клавишей F2, закрываем текстовый редактор клавишей F10.

Выполним команду

И через пункт 8 Update Update this tool to the latest version проверяем обновления

Переходим в пункт 5 Localisation Options Configure language and regional settings 

Потом в пункт L1 Locale Configure language and regional settings 

Выбираем локаль [*] ru_RU.UTF-8 UTF-8

Выбираем пункт <OK>

На следующем окне снова выбираем ru_RU.UTF-8 

Выбираем пункт <OK>

Переходим в пункт 5 Localisation Options Configure language and regional settings 

Выбираем пункт L2 Timezone Configure time zone

 

И выбираем свой часовой пояс. Вот так выбирается часовой пояс города Минск.

На этом подготовка Raspberry Pi 4 для установки Home Assistant завершена. Переходим непосредственно к самой установке.

Устанавливаем необходимые пакеты следующей командой:

После установки пакетов перезагружаемся командой:

После перезагрузки подключаемся к малинке используя IP адрес прописанный на этапе настройки сети.

Если все было сделано верно, то нас встретит окно:

Ну а дальше авторизуемся в консоли малинки. Хотите – авторизуйтесь учетной записью pi, а хотите – своей собственной, которую вы создали ранее.

Командой

устанавливаем docker

Создаем группу docker, если она не создалась автоматически:

Добавляем туда текущего пользователя

Теперь займемся установкой Portainer

Для этого выполним команды:

После указанных действий Portainer запустится.

Далее необходимо перейти по адресу http://IP_малины:9000

На открывшейся страничке задаем пароль администратора

Кстати, не обязательно использовать имя пользователя admin. Можно использовать то, которое нравится больше. Рекомендую использовать латиницу. После того как задали имя пользователя и пароль, нужно нажать кнопку Create.

На следующей странице выбираем пункт LOCAL и жмем кнопку Connect

Возвращаемся к консоли малинки (putty).

Повышаем себе права до уровня root командой:

Проверим разрядность установленной ОС на малине командой:

Разрядность системы должна быть 32 бит, соответственно, команда вернет значение 32

Теперь непосредственно к установке Home Assistant. Выполним команду для скачивания скрипта установки:

 

И запустим его командой

Подтверждаем свои действия нажав Y

После окончания работы скрипта в докере появились новые контейнеры

А по адресу http://IP_малины:8123 стал доступен web интерфейс home assistant.

Требуется подождать некоторое время до завершения автоматической конфигурации Home Assistant

После завершения сервисных задач Web интерфейс home assistant будет иметь следующий вид.

На этом установку Home Assistant на внешний SSD накопитель Raspberry Pi 4 B можно считать оконченной.

Надеюсь, что данная статья будет для Вас полезной.

В части перевода Raspberry Pi на загрузку с USB накопителя, статья может применяться не только для развертывания серверов умного дома, но и для других задач, где раньше узким местом являлась пропускная способность MicroSD картридера, либо где требовался интенсивный обмен данными от которого карты памяти быстро помирали.

Если вам понравилась статья и вы хотите поддержать сайт, вступите в нашу группу Вконтакте: https://vk.com/ionline_by

Если вы хотите оперативно получать уведомления о выходе новых статей, подключите себе PUSH уведомления по ссылке: https://ionlineby.pushassist.com/

А еще не забывайте подписываться на инстаграмм сайта https://www.instagram.com/ionline.by/

Поделись с друзьями!
Мои проекты на GITHUB


Мои проекты на GitHub

Реклама




iOnline в социальных сетях
IOnLine.by в социальной сети Вконтакте (vk.com)


Мы в Facebook


Ionline.by в Instagram


Мы в Twitter