Метка: Docker

Простая разработка IoT приложений на C# для Raspberry Pi и других одноплатников, на Linux

Многие привыкли легко и просто программировать микроконтроллеры на платформе Arduino или nanoFramework (используется C#). Но как обстоит с разработкой IoT приложений на C# .NET для одноплатных компьютеров под Linux? В ответ услышите что нужно все устанавливать из командной строки, да и еще хорошо разбираться в Linux, там не так просто как с Arduino. Для настройки удаленной отладки необходимо выполнить множество различных действий, вручную настроить конфигурацию запуска, генерировать ключи доступа для пользователя, от имени которого будет запускать отладка, и т. д. Но теперь, благодаря расширению .NET FastIoT для Visual Studio Code, это не требуется делать. Черновую работу по установке необходимых пакетов и конфигурированию проекта для удаленной отладки сделает за вас расширение. Теперь вы можете полностью сфокусироваться на своем коде, не отвлекаясь на лишние задачи.

Читать далее »

Метеостанция на Banana Pi M64 (Linux, C#, Docker, RabbitMQ, AvaloniaUI)

Статей о создании метеостанции на базе Arduino не счесть. Можно сказать, если статья про метеостанцию, то это про микроконтроллеры Arduino, ESP32 или STM32. Но только не в этот раз. Будем запускать метеостанцию на Banana Pi BPI-M64 под Linux, без использования Arduino-подобных оберток в виде WiringPi, на C# .NET5. Пример метеостанции является демонстрацией встраиваемого решения работы с GPIO, датчиками и вывода пользовательского интерфейса напрямую на LCD. В решении используется: Linux (Armbian) — основная ОС, .NET и C# — платформа для создания прикладного ПО, AvaloniaUI — графической интерфейс с интерактивными графиками и анимацией, Docker — инструмент для развертывания, управления, доставки приложений, RabbitMQ — брокер сообщений для передачи сообщений между контейнерами. Благодаря использованию универсального подхода и технологии Docker, приложение можно запустить не только на Banana Pi BPI-M64, но и на других Banana/Orange/Rock/Nano Pi одноплатных компьютерах, включая Raspberry Pi.

Читать далее »

Простая установка Docker в Armbian/Linux для ARM (Raspberry/Banana/Orange/Rock/Nano Pi)

Технология разворачивания приложений в виде Docker контейнеров уже стала стандартом для Linux. Docker контейнеры особенно удобны для развертывания сложных систем в дата-центрах, корпоративных центрах обработки данных, и т.д. Docker контейнеры так же отлично подходят и для встраиваемых систем. Docker успешно работает в Armbian/Linux на armv7/arm64 устройствах Raspberry/Banana/Orange/Rock/Nano Pi, поэтому для упрощения процесса развертывания, установим Docker из готового скрипта от самой компании.

Читать далее »

Управляем контактами GPIO в Linux из Docker-контейнера библиотекой Libgpiod

В публикации Работа с GPIO в Linux. Часть 6. Библиотека Libgpiod познакомились с библиотекой Libgpiod,  разработанной Bartosz Golaszewski. Библиотека позволяет управлять контактами GPIO одноплатного компьютера, подавать 1/0, подписываться на события (необходимо для обработки прерывания кнопки), и т.д. В отличие от множества библиотек для Raspberry Pi, Libgpiod не заточена под конкретные процессоры и работает на различных архитектурных платформах: ARMv7, ARM64, AMD64. Но компиляция библиотеки из исходного кода, в зависимости от дистрибутива может приводить к тем или иным сложностям. Поэтому в дополнение и для создание Docker-контейнеров c .NET приложениями, были собраны контейнеры на базе ОС Alpine и Ubuntu 20.04 LTS (Focal Fossa) содержащие библиотеку Libgpiod вместе с утилитами для управления GPIO.

Читать далее »

Безопасность встраиваемых систем Linux

Весь наш мир построен на противоположностях. Если вы создаете свое устройство и продаете его, то всегда найдется тот, кто захочет его взломать. Цели у злоумышленника буду самыми разными, от попыток сделать клон устройства (привет Китаю) до шантажа конечных потребителей, что весьма ухудшит вашу репутацию с точки зрения изготовления надежных устройств. И чем популярнее система на основе которой построено устройство, тем интереснее она злоумышленнику. В последнее время активно развивается сегмент одноплатных компьютеров, таких как Raspberry Pi, и множества других. Linux системы по распространенности использования во встраиваемых систем, вышли на первые места. Большая функциональность устройств, например наличие разных беспроводных интерфейсов коммуникаций, в совокупности с большими возможностями ОС Linux, привела к серьезной необходимости организации защиты устройства. Некоторые думают, что достаточно отключить учетную запись root и установить надежный пароль, но на самом деле это только малая часть того, что следует сделать. Какие технологии и концепции используются для снижения рисков и реализации более безопасного устройства работающего на Linux узнаете под катом.

Читать далее »

Как сделать кластерный сервер на ARM процессоре и тестирование VPS на AWS Graviton2

В предыдущей публикации рассматривались преимущества использование ARM серверов для хостинг провайдеров. В этом посте рассмотрим практические варианты создания кластерного сервера на ARM процессоре и протестируем инстанс Amazon EC2 T4g работающий на процессоре ARM AWS Graviton2, посмотрим на что он способен.

Читать далее »

Сборка Docker контейнеров для ARM архитектуры используя Buildx

Сборка Docker контейнеров тема достаточно популярная и известная. Сборка для платформ x86 не представляет никаких проблем, все работает из коробки. Но как собрать Docker образ для ARM32 и ARM64 архитектуры? Если взять плату Banana Pi BPI-M64 с 64-разрядным ARM процессором, то на ней можно собрать образ для архитектуры ARM64, ARMv8, aarch64. Но для этого необходимо задействовать плату, и скорость сборки будет весьма низкая. Для сборки контейнеров помимо привычных инструментов, есть инструмент Buildx — позволяющий собирать образы для различных архитектур на x86 процессоре. В публикации будет детальный разбор, как собирать Docker образы для ARM процессоров и загружать их в публичный Docker Hub.

Читать далее »