RAUC е open source софтуерен механизъм за обновление на Linux дистрибуции с два идентични ext4 дяла и възможност за допълнителни дялове за съхранение на данни. След инсталиране на обновлението на неактивния дял и рестарт, първоначална зареждаща програма (boot loader) трябва да го активира. Ще разгледаме интеграцията на RAUC в Linux kernel-a и Das U-Boot за Raspberry Pi при създаване на GNU/Linux дистрибуция с Yocto Project и OpenEmbedded. Също така презентацията ще демонстрира комбинирана стратегия за обновления чрез RAUC и виртуализация посредством Docker контейнери за потребителските приложения.
Как проектът Yocto помага за създаване на Internet of Things?Leon Anavi
Презентация от PlovdivConf 2015 с информация за Internet of Things (IoT) и как да създадем и поддръжаме GNU/Linux дистрибуция за тях с помощта на Yocto Project.
Практични примери за device tree overlays на Raspberry PiLeon Anavi
Кратка презентация от ежегодния семинар на Linux User Group България в Пловдив, 6 април 2019г. Съдържа практични примери за употреба на device tree overlays на Raspberry Pi и първи стъпки в dts (device tree source) и dtc (device tree compiler).
Open source: от "голо желязо" до JavaScriptLeon Anavi
Как да създадем устройство със свободен хардуер и свободен софтуер?
Ще разгледаме платките OLinuXino с Allwinner A10/A20 SoC, Radxa Rock с Rockchip RK3188 SoC и MinnowBoard MAX с процесор Intel Atom.
Ще говорим за Tizen и open source проектите, които го изграждат, а накрая ще видим и как можем да създаваме програми за "свободните" ни устройства с HTML5 и JavaScript.
Българският open source проект Minimal Linux Live предоставя основната софтуерна инфраструктура, която е необходима за създаването на минимална Linux базирана операционна система. Реално целият процес по сваляне на необходимите сорсове, тяхното компилиране, както и създаването на live ISO image, се свежда до изпълнението на един единствен shell скрипт файл. Така всеки програмист има възможност лесно да създаде своя собствена операционна система.
Как да убием и последната дискета с Open Source технологии?Leon Anavi
Презентация за open source hardware проекта OpenFlops и open source firmware FlashFloppy, чрез които се заменя флопи дисково устройство и дискети с емулатор и USB флаш памети. OpenFlops е проектиран на KiCad и има същите размери на печатната платка като GoTek.
RAUC е open source софтуерен механизъм за обновление на Linux дистрибуции с два идентични ext4 дяла и възможност за допълнителни дялове за съхранение на данни. След инсталиране на обновлението на неактивния дял и рестарт, първоначална зареждаща програма (boot loader) трябва да го активира. Ще разгледаме интеграцията на RAUC в Linux kernel-a и Das U-Boot за Raspberry Pi при създаване на GNU/Linux дистрибуция с Yocto Project и OpenEmbedded. Също така презентацията ще демонстрира комбинирана стратегия за обновления чрез RAUC и виртуализация посредством Docker контейнери за потребителските приложения.
Как проектът Yocto помага за създаване на Internet of Things?Leon Anavi
Презентация от PlovdivConf 2015 с информация за Internet of Things (IoT) и как да създадем и поддръжаме GNU/Linux дистрибуция за тях с помощта на Yocto Project.
Практични примери за device tree overlays на Raspberry PiLeon Anavi
Кратка презентация от ежегодния семинар на Linux User Group България в Пловдив, 6 април 2019г. Съдържа практични примери за употреба на device tree overlays на Raspberry Pi и първи стъпки в dts (device tree source) и dtc (device tree compiler).
Open source: от "голо желязо" до JavaScriptLeon Anavi
Как да създадем устройство със свободен хардуер и свободен софтуер?
Ще разгледаме платките OLinuXino с Allwinner A10/A20 SoC, Radxa Rock с Rockchip RK3188 SoC и MinnowBoard MAX с процесор Intel Atom.
Ще говорим за Tizen и open source проектите, които го изграждат, а накрая ще видим и как можем да създаваме програми за "свободните" ни устройства с HTML5 и JavaScript.
Българският open source проект Minimal Linux Live предоставя основната софтуерна инфраструктура, която е необходима за създаването на минимална Linux базирана операционна система. Реално целият процес по сваляне на необходимите сорсове, тяхното компилиране, както и създаването на live ISO image, се свежда до изпълнението на един единствен shell скрипт файл. Така всеки програмист има възможност лесно да създаде своя собствена операционна система.
Как да убием и последната дискета с Open Source технологии?Leon Anavi
Презентация за open source hardware проекта OpenFlops и open source firmware FlashFloppy, чрез които се заменя флопи дисково устройство и дискети с емулатор и USB флаш памети. OpenFlops е проектиран на KiCad и има същите размери на печатната платка като GoTek.
Презентация на Български от Open Fest 2015.
Презентацията е насочена към хора, които желаят да използват Yocto и OpenEmbedded, за да разработват системи, които пасват на техните нужди и поддържат специфичен хардуер. С течение на времето Yocto се утвърди като де факто стандарт за вградени системи и преносими устройства. Ще бъде предоставена информация как да се изгради Linux система за вградени устроиства и да се създадат софтуерни приложения за нея.
Целта на презентацията е да разгледа най-популярните платки с ARM процесори от типа на OLinuXino, CubieBoard, Banana Pi, Beaglebone black, Odroid, Raspberry Pi и да предостави насоки как да се адаптират Linux ядрото и различни Linux дистрибуции за тях. Ще бъдат представени практически примери за работа с Das U-Boot, Linux-sunxi, Debian и Linux базираната софтуерна платформа Tizen на серията open-source hardware платки OLinuXino. Също така ще бъде споделена информация за DIY (Do It Yourself) създаване на свободни устройства с отворен хардуер и софтуер.
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...Leon Anavi
Презентация от Plovdiv Game Jam 2024 за open source USB-C адаптер да Nunchuk съвместими контролери.
Nintento Wii е популярна домашна конзола за игра на игри произвеждана в различни модификации от 2006г до 2017г. Nunchuk е допълнителен контролер, който се включва към Wii Remote. Има специфичен конектор и работи през комуникационния протокол I2C.
В тази презентация ще преминем през всички стъпки от проектиране на печатна платка през разработване на код за Raspberry Pi RP2040 микроконтролер на CircuitPython до свързване на Nunchuk като USB устройство за персонален компютър. Ще демонстрираме употребата на Nunchuk като джойстик за HTML5 игри както и употребата му като забавна нетипична алтернатива на компютърна мишка.
Трети урок от безплантия курс HTML5 приложения за Android. Съдържа: създаване на "Hello World" с Cordova, HTML и JavaScript за Android устройство, събития в Cordova, дебъгване, HTML5 canvas.
Демо урок по програмиране със Светлин НаковSvetlin Nakov
В този демо урок д-р Светлин Наков разказва за програмирането и дава възможност на присъстващите да напишат няколко реда код, да напишат първите си програмки с Python и други езици и показва, че писането на код е лесно и забавно. За запалилите се по програмирането лекторът разкрива възможности да продължат да се занимават в СофтУни или по свой собствен път.
More Related Content
Similar to Docker контейнери с Balena на вградени Linux устройства - TuxCon 2024
Презентация на Български от Open Fest 2015.
Презентацията е насочена към хора, които желаят да използват Yocto и OpenEmbedded, за да разработват системи, които пасват на техните нужди и поддържат специфичен хардуер. С течение на времето Yocto се утвърди като де факто стандарт за вградени системи и преносими устройства. Ще бъде предоставена информация как да се изгради Linux система за вградени устроиства и да се създадат софтуерни приложения за нея.
Целта на презентацията е да разгледа най-популярните платки с ARM процесори от типа на OLinuXino, CubieBoard, Banana Pi, Beaglebone black, Odroid, Raspberry Pi и да предостави насоки как да се адаптират Linux ядрото и различни Linux дистрибуции за тях. Ще бъдат представени практически примери за работа с Das U-Boot, Linux-sunxi, Debian и Linux базираната софтуерна платформа Tizen на серията open-source hardware платки OLinuXino. Също така ще бъде споделена информация за DIY (Do It Yourself) създаване на свободни устройства с отворен хардуер и софтуер.
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...Leon Anavi
Презентация от Plovdiv Game Jam 2024 за open source USB-C адаптер да Nunchuk съвместими контролери.
Nintento Wii е популярна домашна конзола за игра на игри произвеждана в различни модификации от 2006г до 2017г. Nunchuk е допълнителен контролер, който се включва към Wii Remote. Има специфичен конектор и работи през комуникационния протокол I2C.
В тази презентация ще преминем през всички стъпки от проектиране на печатна платка през разработване на код за Raspberry Pi RP2040 микроконтролер на CircuitPython до свързване на Nunchuk като USB устройство за персонален компютър. Ще демонстрираме употребата на Nunchuk като джойстик за HTML5 игри както и употребата му като забавна нетипична алтернатива на компютърна мишка.
Трети урок от безплантия курс HTML5 приложения за Android. Съдържа: създаване на "Hello World" с Cordova, HTML и JavaScript за Android устройство, събития в Cordova, дебъгване, HTML5 canvas.
Демо урок по програмиране със Светлин НаковSvetlin Nakov
В този демо урок д-р Светлин Наков разказва за програмирането и дава възможност на присъстващите да напишат няколко реда код, да напишат първите си програмки с Python и други езици и показва, че писането на код е лесно и забавно. За запалилите се по програмирането лекторът разкрива възможности да продължат да се занимават в СофтУни или по свой собствен път.
Similar to Docker контейнери с Balena на вградени Linux устройства - TuxCon 2024 (20)
Docker контейнери с Balena на вградени Linux устройства - TuxCon 2024
1. Docker контейнери с Balena на
вградени Linux устройства
Атанас Бунчев
atanas.bunchev@konsulko.com
atanas.bunchev@gmail.com
TuxCon 2024
2. TuxCon 2024, Атанас Бунчев
Експерти в софтуерната разработка,
отдадени на Linux и Open Source
●
Основана през 2012 от Embedded Linux инженери с дълга история в
Open Source Software екосистемата и пазара за вградени системи
●
Десетилетия практика в разработката и развитието на
системи сотворен код и комерсиални продукти базирани на Linux
●
Експерти на системно ниво. Сътрудници на OpenEmbedded,
Yocto Project, U-Boot, Automotive Grade Linux (AGL) и Linux ядрото
●
Главен офис в Сан Хосе, Калифорния. Глобално разпределен екип от
инженери в Северна Америка и Европа
●
https://www.konsulko.com
3. TuxCon 2024, Атанас Бунчев
Съдържание
●
Какво е Balena?
●
Как се използва Balena?
●
Как работи Balena?
●
The Yocto Project
●
Интеграция на balenaOS за phyBOARD AM62x
4. TuxCon 2024, Атанас Бунчев
Какво е Balena?
●
Сигурен базиран на контейнери стек с отворен
код за разработка и управление на флотилии от
IoT Linux устройства
●
Поддържа над 100+ вида устройства
●
Използва модифицирана и оптимизирана за
вградени устройства версия на Docker Engine
●
https://www.balena.io/
Fin
5. TuxCon 2024, Атанас Бунчев
Контейнери – виртуализация на системно ниво
●
Контейнерът е пакет на приложение
заедно със всичко, което му е необходимо,
за да работи – конфигурация, системни
библиотеки, други приложения, дори цяла
Linux дистрибуция.
●
Приложенията в контейнерите се
изпълняват от Linux ядрото на главната
система, но са изолирани от самата
система и останалите контейнери.
●
Контейнерите улесняват разработката и
пакетирането на приложения.
Те предоставят абстракция от конкретния
хардуер и операционна система.
●
Разходите в производителността за
контейнеризация са сравнително малки.
6. TuxCon 2024, Атанас Бунчев
Как се използва Balena?
1. Регистрация на https://www.balena.io/
2. Създаване на нова флотилия
3. Добавяне на ново устройство към флотилия
4. Стартиране на „Hello World“ приложение
Снимките в презентацията са за phyBoard AM62x, но процедурата е
идентична за всеки от поддържаните от Balena типове устройства.
7. TuxCon 2024, Атанас Бунчев
Бизнес модел при разработка на отворен код
●
Операционната система, стартирана на устройствата, е с отворен
код. Интеграцията за дадена платка е с отворен код според
желанието на производителя.
●
OpenBalena – версия с отворен код на сървърския софтуер, като при
нея липсват някои функции.
(например бинарни делта обновления)
●
Различни абонаментни планове за употреба на BalenaCloud,
вариращи от 30 до над 110+ устройства, брой потребители с различни
роли, както и време за отговор от екипа за поддръжка.
●
Безплатен план с до 10 устройства с пълна функционалност.
8. TuxCon 2024, Атанас Бунчев
Регистрация в BalenaCloud
Можете да регистрирате
акаунт и да използвате Balena
на 10 устройства безплатно.
https://www.balena.io/
9. TuxCon 2024, Атанас Бунчев
Флотилии – ефективно управление на
множество устройства
●
Флотилията (fleet) представлява група от устройства
с еднаква конфигурация и едни и същи стартирани
приложения.
●
Флотилиите са ефективен подход за лесно
управление и организация на множество устройства
●
Няколко потребителя могат да имат достъп до една
флотилия, като са възможни различни нива на
достъп: Администратор, Разработчик, Оператор и
Наблюдател
13. TuxCon 2024, Атанас Бунчев
Добавяне на ново устройство
Преди да добавите
устройство можете да
конфигурирате неговата
мрежова връзка и да
изберете дали искате
система подходяща за
разработка или продукция.
Когато добавите ново
устройство ще получите
image с операционна
система, който трябва да
запишете на подходящ
носител (например
microSD карта) и да
стартирате устройството
от него.
14. TuxCon 2024, Атанас Бунчев
Записване на image на microSD карта
След като добавите ново устройство и
свалите генерирания за него image,
използвайте командите показани по-
долу под Linux, за да запишете вашия
image на microSD картата.
Заместете <your_image>.img.zip с
името на изтегления файл и /dev/sdX с
адреса на microSD картата.
...или използвайте BalenaEtcher, удобен
графичен инструмент създаден за тази
цел, който работи и под Windows.
r
17. TuxCon 2024, Атанас Бунчев
Страница на устройство
Информация за устройството
Натоварване
на системата
Съобщения от
системата и
контейнерите
Конзола за
отстраняване
на грешки
18. TuxCon 2024, Атанас Бунчев
Информация за устройството
●
Универсален идентификатор и тип на
платката
●
Версия на BalenaOS и Supervisor
●
Възможност за спиране,
рестартиране и идентифициране на
платката (чрез светодиод)
●
Информация за мрежовата връзка и
възможност за включване на
публичен адрес на устройството
●
Тагове, които могат да се използват
от автоматизирани системи.
19. TuxCon 2024, Атанас Бунчев
Стартиране на „Hello World“ приложение
●
Когато се „Deploy“-ват приложенията се компилират на сървърите
на Balena, след което биват качени и стартирани на всички
устройства в избраната флотилия
●
Използва се специален конзолен инструмент наречен balena-cli,
който предоставя възможност за управление на флотилия от
конзола или друга автоматизирана система:
https://github.com/balena-io/balena-cli/
●
В примера използвам примерно приложение,
което стартира nodejs уеб сървър на платката:
https://github.com/balena-io-examples/balena-nodejs-hello-world/
20. TuxCon 2024, Атанас Бунчев
balena-cli:
Влизане в balena.io профил от конзолата
1. Изтегляте последната версия
на balena-cli като архив
2. Разархивирате архива, след
което стартирате от
конзолата ./balena login
3. Избирате Web authorization и
потвърждавате достъпа чрез
браузъра
●
Като алтернатива може да
изберете Credentials и да
въведете директно вашите
потребителско име и парола
21. TuxCon 2024, Атанас Бунчев
Компилиране и стартиране на „Hello World“
приложение на вграденото устройство
След като сте удостоверили
balena-cli трябва само да
изтеглите хранилището със кода
на примерното приложение и да
го стартирате на вашата флотилия.
Това може да направите от
конзолата със тези команди:
След като balena push приключи
приложението balena-hello-world
ще се покаже в списъка със сервизи:
23. TuxCon 2024, Атанас Бунчев
Как работи Balena?
●
A/B обновления на хост системата.
Обновления с бинарна делта (binary delta).
●
balenaEngine
●
The Yocto Project
●
Автоматизирано тестване на всяка промяна
●
Интеграция на balenaOS за phyBOARD AM62x
24. TuxCon 2024, Атанас Бунчев
A/B обновления
●
Два идентични rootfs дяла – A и B
●
Системата стартирана от A инсталира обновление в B
●
При рестартиране Bootloader-ът избира активния дял
Делта обновления – по мрежата се прехвърля само разликата между
новата и старата версия на системата, което пести много трафик.
25. TuxCon 2024, Атанас Бунчев
balenaEngine
●
Олекотена версия на Docker, оптимизирана за вградени
системи.
●
Делта обновления на контейнери, което намаля трафика от
10 до 70 пъти
●
Удължава живота на флаш паметта като разархивира
данните докато ги тегли
●
Атомарни обновления на Docker контейнери
●
Оптимизиран за минимална употреба на памет по време на
обновления
26. TuxCon 2024, Атанас Бунчев
The Yocto Project / OpenEmbedded
●
Съвместен проект на Linux Foundation
●
Предоставя гъвкави и удобни инструменти за изготвяне
на специализирани Linux дистрибуции
●
bitbake – построява отделни пакети или цялостна
система използвайки мета данни
●
Poky – референтна дистрибуция изградена само от
мета данни, която може да се използва като основа за
бързо изграждане на дистрибуция за специфична
машина
27. TuxCon 2024, Атанас Бунчев
Интеграция на balenaOS за phyBOARD AM62x
●
balenaOS е наименованието на операционната система, която се
инсталира на устройствата. Тя е базирана на Yocto, като за всяка
фамилия платки се създава отделно хранилище в GitHub
организацията balena-os
●
phyBOARD AM62x е платка за разработка на IoT устройства
произвеждана от PHYTEC, задвижвана от процесор от ARM
фамилията Sitara на TI.
●
phyBOARD AM62x включва множество интерфейси, което я прави
изключително удобна за разработка и развитие на всякакви IoT
устройства.
29. TuxCon 2024, Атанас Бунчев
Интеграция на balenaOS за phyBOARD AM62x
●
Yocto слой за интеграция на phyBOARD AM62x
https://github.com/balena-os/balena-phytec
●
Насоки за интеграция на Balena
https://docs.balena.io/reference/OS/customer-board-support/
●
AutoKit – система за автоматизирано тестване
върху реален хардуер
30. TuxCon 2024, Атанас Бунчев
AutoKit (Automation Kit)
●
AutoKit е система за автоматизирана
интеракция с хардуерни устройства.
●
AutoKit е пакет от софтуер и хардуер
с лесен за употреба интерфейс.
●
AutoKit се използва за тестване на
всяка нова версия на balenaOS на
всички поддържани видове
устройства.
●
За да бъде добавена поддръжка на
Balena за дадно устройство то трябва
да премине серията тестове
извършвани с AutoKit.
31. TuxCon 2024, Атанас Бунчев
Снимка на AutoKit,
с който тестваме phyBOARD AM62x
32. TuxCon 2024, Атанас Бунчев
Благодаря Ви!
Полезни връзки:
●
https://www.yoctoproject.org/
●
https://balena.io/
●
Balena: Running Containerized Applications on phyBOARD-AM62x
https://www.konsulko.com/balena-phyboard-am62x
●
From PR to Release; OS Testing at balena
https://blog.balena.io/from-pr-to-release-os-testing-at-balena/