Я уже давно хотел обновить железо моего Home Assistant. Ресурсов Raspberry 3, мне лично, хватает с головой, но отсутствие встроенной EMMC памяти не совсем то, что нужно для сервера автоматизации, пусть и такого маленького как малина.
Первое, что приходит в голову — Raspberry Pi 4. Именно ее я и рассматривал, и даже хотел приобрести для нее вот такой модуль emmc:
Но потом от этой идеи я отказался. Например, в медиацентр Kodi я такую штуку поставлю, а вот для Home Assistant noname emmc через адаптер — это не серьезно.
Выбор пал на плату Khadas VIM1 Pro от китайской компании Wesion.
Вообще, они не только выпускают одноплатники, которых уже немало, но и занимаются разработкой аппаратных и программных решений для различных областей промышленности. И железо сделают, и софт напишут. Если интересно — можете посетить их сайт
Теперь о VIM1 Pro, что я получил. Версия Pro отличается от Basic размером emmc памяти (8Гб и 16 Гб) и модулем wifi.
Купил тут: https://aliexpress.ru/item/1000006292252.html
Поставляется плата в стильном черном коробке с лого производителя. Смотрится круто
Коробок, к слову, был запаян в пленку
С обратной стороны наклейка с наименованием модели и характеристиками по питанию
Плата в коробке лежит очень плотно, поэтому мне он показался таким миниатюрным
Сама плата так же круто смотрится — черный текстолит, идеальная пайка, все чисто.
Под платой мягкая подложка и небольшая антенна для Bluetooth и WiFi с разъемом I-Pex в отдельном пакетике
Так же мне положили в комплект фирменный радиатор с термопрокладкой и винтами крепления. Мелочь, а приятно.
Сама плата VIM1 Pro миниатюрная, размером чуть меньше Raspberry, 82мм х 58мм
Для сравнения, рядом моя старушка Pi 2
Теперь о разъемах характеристиках. Вот небольшая табличка с основными разъемами VIM1
Лицевая сторона
1 | USB-A | USB 2.0, 500mA макс. |
2 | RJ-45 | 10/100 Mbps Ethernet |
3 | HDMI | HDMI 2.0b with 3D, HDR, CEC and HDCP 2.2 |
4 | USB-C | USB 2.0 OTG, так же разъем питания, может использоваться для обновления/установки ОС |
5 | USB-A | USB 2.0, 900mA макс. |
6 | Fan Header | 4-проводный разъем вентилятора с широтно-импульсной модуляцией (управление скоростью) |
7 | Reset Button | Кнопка принудительной перезагрузки |
8 | Function Button | Нажмите эту кнопку 3 раза за 2 секунды, чтобы войти в режим MaskROM |
9 | Power Button | Кнопка включения |
A | M2x4 Mounting Point | Для крепления к корпусам и радиаторам |
B | RTC Battery Header | Разъем для крепления батареи часов реального времени |
C | 40-Pin GPIO | 40-Pin GPIO |
D | Infrared Module | 2-канальный ИК приемник |
E | LEDs | LED индикация |
F | I-Pex Wi-Fi / Bluetooth Connector | Wi-Fi / Bluetooth разъем для антенны |
Обратная сторона
Component | Purpose | |
---|---|---|
1 | VIN | Разъем питания 5V |
2 | Micro-SD Card Slot | Загрузка альтернативных ОС через Micro-SD или для дополнительного хранилища |
3 | M-Register | Позволяет EMMC войти в режим MaskROM |
4 | XPWR Pads | Для подключения внешнего выключателя питания с помощью этих контактов |
Характеристики
Характеристики выглядят следующим образом:
Для использования этой платы в качестве сервера Home Assistant (или любого другого) характеристики очень неплохие. Единственное, мне бы хотелось гигабитный порт, но это уже придирки.
GPIO
Распиновка GPIO выглядит следующим образом:
Контакты на плате пронумерованы в начале, в середине и в конце. Ошибиться невозможно. Про использование gpio на Vim1 у Khadas написано в руководстве
Так же можно увеличить количество USB портов на 2 с контактами HUB_DM1, HUB_DP1; HUB_DM2, HUB_DP2.
Первое включение
Давайте включим ее, и посмотрим, что за ОС предустановлена. Для теста я буду использовать сенсорный экран 15,6
Вставляем USB Type C шнур питания с нормальным БП и начинается загрузка Android
Это андроид версии 9 с установленными сервисами от Google. Тач на экране работает, все подтянулось само.
Для гугла наш Khadas VIM1 Pro отображается как OnePlus 6
Разрешение моего экрана 1920х1080, оно и установлено по умолчанию. Подключал из интереса монитор 4:3 — изображение было растянуто с таким же разрешением 1920х1080 и мой монитор ругался на несоответствие.
Интернет я подключил через Ethernet порт, андроид сразу его обнаружил.
Предустановленных приложений минимум. Для тех, кто вообще не хочет париться с установкой или настройкой чего-либо здесь присутствует приложение Aptoide TV, для удобного использования VIM1 в качестве медиаприставки для ТВ.
Порадовала возможность управлять скоростью вращения подключаемого вентилятора. Четыре режима работы, включая автоматический, на основе температуры устройства.
Список ОС
У Khadas очень много операционок. Как официально поддерживаемых, так и версий от сообщества. У всех свое предназначение, так что выбор есть.
Android
Андроидов у Vim1 много, но не думаю что старые версии будут кому-то нужны. Из самой свежей — Android 9, которая поставляется уже предустановленной вместе с Vim1 Pro. Подойдет для создания медиацентра, ориентрированного на интернет контент и потоковое видео.
Ubuntu
Ubuntu тоже несколько версий. Из последней — Ubuntu 18.04. Подойдет для организации мини пк с полноценным рабочим столом XFCE. На выбор есть разные версии ядра. Так же есть серверные версии.
LibreELEC
Отлично подойдет для создания медиаприставки. Упор в коди сделан на локальный контент, например расшаренный через NAS. IPTV, просмотр фильмов через торрент и еще куча всего можно получить, установив дополнения. Официальные или от сообщества.
Android TV
Так же как обычный андроид подойдет для создания медиацентра, ориентированного на интернет контент и потоковое видео. Неофициальные сборки от сообщества.
Armbian
ОС на основе Debian и Ubuntu для плат на процессорах ARM. Версии от сообщества.
Lakka
Превращает vim1 в полноценную ретро игровую консоль. Советую глянуть вот этот пост на 4pda и/или вот эту страничку на гитхаб
Volumio
ОС для создания сетевого аудиоцентра. Версии от сообщества
ArchLinux
ОС известная, но для vim1 только версия от сообщества, со всеми вытекающими.
CoreELEC
Так же как и LibreELEC позволяет создать полноценный медиацентр с Kodi. Версии от самой команды CoreELEC. Жаль нет у моей любимой OSMC поддержки Khadas VIM.
Так же у Vim1 есть поддержка U-Boot. Еще есть готовая DualOS с двумя операционками, но старыми — Android Nougat и Ubuntu-16.04. В каких вариантах использования могут понадобиться эти две совершенно разные ос — я так и не понял.
Загрузка прошивки в emmc
Для моих целей нужна серверная ос, поэтому я буду ставить Ubuntu 18.04
Есть образы как для SD карты, так и для EMMC. С флешками все и так понятно — записал образ и вставил. А вот запись в emmc выполняется с помощью специального софта.
Для установки или обновления ОС нужна программа USB Upgrade Tool. (USB Burning Tool) Скачиваем актуальную версию для Windows, распаковываем и устанавливаем.
Подключаем VIM1 к пк через USB Type C кабель. Теперь нужно перевести плату в режим обновления. Для этого нужно зажать кнопку включения питания (та, что ближе к GPIO контактам). Держим ее и не отпуская жмем один раз кнопку reset (та, что ближе к USB). Считаем 10 секунд и отпускаем зажатую кнопку питания. В USB Burning Tool появится наша плата
Теперь подгрузим образ для записи в emmc. Жмем File > Import Image и выбираем распакованный образ .img
Пройдет верификация образа
И после жмем Start. Начнется запись образа в emmc память
Гиговый образ Android TV, который я ставил из интереса, залился за 3:49. Я ожидал более длительную запись.
После успешного завершения жмем Stop и подключаем VIM к источнику питания.
Установка Hassio в Ubuntu 18.04
Вот я и подошел к основной цели — установки Home Assistant. В принципе, установка стандартна для Ubuntu, отличие лишь в типе платы, указываемого для скрипта.
Официальная инструкция доступна на сайте Home Assistant.
Расскажу как установил hassio. Логинимся из под root, стандартный пароль khadas.
И сразу же меняем стандартный пароль командой:
passwd
Для начала добавляем нового пользователя hassio и добавляем его в группу sudo:
adduser hassio usermod -aG sudo hassio
Теперь удалим стандартного юзера khadas вместе с домашним каталогом:
deluser --remove-home khadas
Далее подключаем universe репозиторий, выполняем апдейт списка пакетов и затем обновление самих пакетов:
add-apt-repository universe apt-get update apt-get upgrade
В официальной инструкции расписаны пакеты, необходимые для установки hassio в докере. Для Ubuntu это avahi-daemon и jq. Их и установим вместе с docker:
apt-get install avahi-daemon jq docker.io
И после завершения можно ставить сам hassio. Адрес скрипта уже несколько раз менялся, поэтому берем его с инструкции на сайте Home Assistant, добавив аргумент с типом железа. Если запустить скрипт установки без него, то он завершится с ошибкой и предложит аргумент — -m aarch64. Но с ним у меня Hassio не завелся.
Подошел — -m raspberrypi3-64. Полная команда скрипта, на момент написания, выглядит следующим образом:
curl -sL "https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh" | bash -s -- -m raspberrypi3-64
Из-за последних изменений и отказа от поддержки сторонних ОС данный скрипт установки не работает. Решения со сторонними скриптами установки тут: https://community.home-assistant.io/t/supervised-setup-ubuntu-20-04-trouble/191553/19
Через несколько минут в консоли увидим надпись Run Hass.io, значит можно переходить в браузере по ip нашего vim1 pro с портом 8123, где нас встречает уже знакомое приветственное лого Home Assistant с просьбой подождать около 20 минут:
Через несколько минут установка завершится, и система предложит создать пользователя.
Из интереса замерил время перезапуска чистого Home Assistant — 30 секунд.
После я установил дополнение Samba, перешел в проводнике по адресу vim1 и положил в папку backup архив с резервной копией моего home assistant
В зависимости от количества устройств, автоматизаций и дополнений восстановление занимает приличное количество времени
Хочу так же пару слов сказать про загрузку ЦП и ОЗУ на чистой системе Ubuntu 18.04
Процессор вообще не загружен, озу потребляет 133 МБ. Ubuntu заняла 1.4 ГБ.
Теперь о горячем) Vim1 лежал на столе включенный всю ночь, без радиатора. Температура в помещении 23°.
Вот график:
Как видно, температура колеблется от 54 до 56 градусов.
После этого я поставил родной радиатор.
Температура опустилась до 47°:
В целом я доволен своим небольшим апгрейдом. Больше озу, встроенная emmc память — все, что я и хотел от своего сервера Home Assistant. А Raspberry 3 пойдет на опыты)
Вся инфа о Khadas Vim1 находится тут. Там много чего полезного.
Update:
Свежий вариант установки (07.2022) Home Assistant тут. Проверил, работает. Делать с шага 1.
Что касается uart_AO_B, то для его активации в Ubuntu 18.04, которую я ставил ранее, необходимо выполнить несколько команд. Активируем uart:
sudo fdtput -t s /dtb.img /serial@c81004e0 status okay
И проверяем статус:
fdtget /dtb.img /serial@c81004e0 status
Ответ должен быть okay. После чего перезагружаем плату:
sudo reboot
Проверяем:
ll /dev/ttyS*
ttyS4 — пины 15 и 16 на плате, можно подключать и пользоваться. В моем случае это контроллер RaZberry Z-Wave.
Однозначно хорошая железка. Однако, в любом случае, это опять промежуточный вариант.
Конечная остановка intel nuc ))
По инсталляции почерпнул много интересного. Спасибо!
Спасибо за комментарий) Себе я однозначно нук не буду ставить для HA ввиду тепловыделения. Немного разочаровался в них из-за этого. Греются как печки, даже одноядерный нук, на котором synology крутится, и тот «просит» вентилятор поставить) Ну а тот, что с xeoma, тот вообще кипяток с родным кулером. Буду планировать переводить видеонаблюдение на что-то менее горячее.
А почему конечная остановка не Synology?
Мой Synology на одноядерном nuc, как минимум не потянет) В докере не пробовал ставить hassio на нем, а та версия, что в магазине приложений не всегда свежая. Да и стараюсь делать все как можно менее прожорливое, чтобы при отключении электричества все работало долго и от небольшого количества батарей.
Ну вот этот nuc: https://www.dns-shop.ru/product/1f5aba3e41c03330/platforma-intel-nuc-boxnuc6cayh/characteristics/
Он безвентиляторный
У меня на таком LibreELEC работает, и на подобном железе( Asrock j3455-itx) работает Synology 6.2 в котором в виртуальной машине Hass.IO крутится