RAUC is a safe and secure open source software solution for A/B updates of embedded Linux devices. It supports the Yocto Project and OpenEmbedded, Buildroot and PTXdist. Upgrades are performed through RAUC bundles which can be installed either through the network or using the old-fashioned way with a USB stick.
In 2020 layer meta-rauc-community was created to provide examples how to integrate the lightweight update client RAUC on various machines. Initially it supported Raspberry Pi. In 2021 the layer was moved to the RAUC organization in GitHub and over the time it was ported to new machine, including qemux86-64, sunxi (Allwinner) and NVIDIA Jetson TX2.
The presentation is appropriate for anyone interested in software upgrades. We will talk about the evolution of meta-rauc-community and provide guidelines for porting to new machines using Yocto and OpenEmbedded BSP layers.
How to Choose a Software Update Mechanism for Embedded Linux DevicesLeon Anavi
How to Choose a Software Update Mechanism for Embedded Linux Devices
by Leon Anavi, Konsulko Group
Embedded Linux Conference NA 2022 and Open Source Summit NA 2022
Atomic software system update of an embedded Linux device has always been an important part of any product, especially nowadays with the existing large fleets of connected devices and Internet of Things. There are several different widely used in the industry approaches: A/B updates with dual redundant scheme, delta updates, container-based updates and combined strategies. Open source technologies such as Mender, RAUC and libostree based solutions implement these strategies and provide tools to manage updates of multiple devices. What are the advantages and disadvantages? How to choose an appropriate open source solution for a specific project? This session explores a number of different open source Linux software update technologies with practical examples for integrating them using the Yocto Project and OpenEmbedded. In order to better understand the strengths and weaknesses of each technology, we deep dive in various use cases. The talk is appropriate for anyone with basic knowledge about Linux. It will hopefully help managers, engineers and developers better understand the technical challenges and the available open source solutions with which to overcome them easier and faster so that they can focus on the unique core features of their products.
The ultimate guide to software updates on embedded linux devicesMender.io
Slides from my talk at NDC Techtown 2019.
Abstract:
Software updates has for a long time been a mess, consisting of “homegrown” solutions specific to a certain project and there was very little re-usage between projects and very little collaboration in our community to solve these complex problems. Luckily for us that time is over and the community around this topic has grown over last couple years and still is growing as the demand increases with the growth of IoT and OTA firmware updates (which introduces even more complexity).
There are now well established open-source solutions that have been “battle tested” that we can collaborate on to make the complexity of software updates manageable. We are heading for a time where a quality Board Support Package should provide an software update implementation because it really should be solved at this level instead of handing this over to application developers which have limited knowledge of low lever architecture on a embedded device.
In this talk Mirza will present some of the challenges of doing software updates on embedded system. He will also present the available open-source projects that can be used to solving these challenges. Projects such as mender.io, SWupdate, RAUC and more.
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...ICS
Updating device software has always been a complicated process. Today, widespread use of connected IoT device fleets, along with escalating concern over cybersecurity, has made that process even more complex. Fortunately, there are a number of well-established open source solutions to help you address software update needs. But, with so many options, how do you determine which solution is right for your device?
This webinar will provide the foundation you need to make an informed decision. We’ll examine several different industry approaches, including A/B updates with a dual-redundant scheme, delta updates, container-based updates and combined strategies, as well as the leading technologies that support these approaches. Open source technologies such as Mender, RAUC and libostree-based solutions implement these strategies and provide tools to manage updates of multiple devices.
We’ll also review a variety of open source Linux software update technologies, and offer practical examples for integrating them using the Yocto Project and OpenEmbedded. In order to help you better understand the strengths and weaknesses of each technology, we’ll deep dive into various real-world use cases, including leveraging CAAM (Cryptographic Accelerator and Assurance Module) hardware on Freescale i.MX6 hardware for encrypted and signed updates and using Microsoft Azure IoT to host software updates from the cloud.
Software update for IoT: the current state of playChris Simmonds
Many embedded Linux projects have a requirement to update the software on devices in the field. Recent security flaws in basic components such as OpenSSL and bash, combined with the interconnectedness of all things, have highlighted the problem and made it an absolute necessity
How to Choose a Software Update Mechanism for Embedded Linux DevicesLeon Anavi
How to Choose a Software Update Mechanism for Embedded Linux Devices
by Leon Anavi, Konsulko Group
Embedded Linux Conference NA 2022 and Open Source Summit NA 2022
Atomic software system update of an embedded Linux device has always been an important part of any product, especially nowadays with the existing large fleets of connected devices and Internet of Things. There are several different widely used in the industry approaches: A/B updates with dual redundant scheme, delta updates, container-based updates and combined strategies. Open source technologies such as Mender, RAUC and libostree based solutions implement these strategies and provide tools to manage updates of multiple devices. What are the advantages and disadvantages? How to choose an appropriate open source solution for a specific project? This session explores a number of different open source Linux software update technologies with practical examples for integrating them using the Yocto Project and OpenEmbedded. In order to better understand the strengths and weaknesses of each technology, we deep dive in various use cases. The talk is appropriate for anyone with basic knowledge about Linux. It will hopefully help managers, engineers and developers better understand the technical challenges and the available open source solutions with which to overcome them easier and faster so that they can focus on the unique core features of their products.
The ultimate guide to software updates on embedded linux devicesMender.io
Slides from my talk at NDC Techtown 2019.
Abstract:
Software updates has for a long time been a mess, consisting of “homegrown” solutions specific to a certain project and there was very little re-usage between projects and very little collaboration in our community to solve these complex problems. Luckily for us that time is over and the community around this topic has grown over last couple years and still is growing as the demand increases with the growth of IoT and OTA firmware updates (which introduces even more complexity).
There are now well established open-source solutions that have been “battle tested” that we can collaborate on to make the complexity of software updates manageable. We are heading for a time where a quality Board Support Package should provide an software update implementation because it really should be solved at this level instead of handing this over to application developers which have limited knowledge of low lever architecture on a embedded device.
In this talk Mirza will present some of the challenges of doing software updates on embedded system. He will also present the available open-source projects that can be used to solving these challenges. Projects such as mender.io, SWupdate, RAUC and more.
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...ICS
Updating device software has always been a complicated process. Today, widespread use of connected IoT device fleets, along with escalating concern over cybersecurity, has made that process even more complex. Fortunately, there are a number of well-established open source solutions to help you address software update needs. But, with so many options, how do you determine which solution is right for your device?
This webinar will provide the foundation you need to make an informed decision. We’ll examine several different industry approaches, including A/B updates with a dual-redundant scheme, delta updates, container-based updates and combined strategies, as well as the leading technologies that support these approaches. Open source technologies such as Mender, RAUC and libostree-based solutions implement these strategies and provide tools to manage updates of multiple devices.
We’ll also review a variety of open source Linux software update technologies, and offer practical examples for integrating them using the Yocto Project and OpenEmbedded. In order to help you better understand the strengths and weaknesses of each technology, we’ll deep dive into various real-world use cases, including leveraging CAAM (Cryptographic Accelerator and Assurance Module) hardware on Freescale i.MX6 hardware for encrypted and signed updates and using Microsoft Azure IoT to host software updates from the cloud.
Software update for IoT: the current state of playChris Simmonds
Many embedded Linux projects have a requirement to update the software on devices in the field. Recent security flaws in basic components such as OpenSSL and bash, combined with the interconnectedness of all things, have highlighted the problem and made it an absolute necessity
Device Tree Overlay implementation on AOSP 9.0Cheng Wig
With the popularity of Android phones, along with the success in the consumer field, the industrial Android platform is also becoming more and more popular in Europe.
In this session, the presenter will share his experience of integrating AOSP 9.0 on multiple industrial grade platform with various hardware specifications, as well as demonstrate a real case of using the latest dtbo.img architecture to achieve separating the hardware specifications from the software definitions. With this additional abstract layer, the maintenance costs and upgrade complexity will be dramatically improved while fully matching the security architecture of AOSP.
The second part of Linux Internals covers system calls, process subsystem and inter process communication mechanisms. Understanding these services provided by Linux are essential for embedded systems engineer.
Static Partitioning with Xen, LinuxRT, and Zephyr: A Concrete End-to-end Exam...Stefano Stabellini
Static partitioning enables multiple domains to run alongside each other with no interference. They could be running Linux, an RTOS, or another OS, and all of them have direct access to different portions of the SoC. In the last five years, the Xen community introduced several new features to make Xen-based static partitioning possible. Dom0less to start multiple static domains in parallel at boot, and Cache Coloring to minimize cache interference effects are among them. Static inter-domain communications mechanisms were introduced this year, while "ImageBuilder" has been making system-wide configurations easier. An easy-to-use complete solution is within our grasp. This talk will show the progress made on Xen static partitioning. The audience will learn to configure a realistic reference design with multiple partitions: a LinuxRT partition, a Zephyr partition, and a larger Linux partition. The presentation will show how to set up communication channels and direct hardware access for the domains. It will explain how to measure interrupt latency and use cache coloring to zero cache interference effects. The talk will include a live demo of the reference design.
XPDDS18: Real Time in XEN on ARM - Andrii Anisov, EPAM Systems Inc.The Linux Foundation
Currently, several initiatives promote XEN hypervisor into the automotive area as a base of complex virtualized systems. To support those initiatives and plunge into the automotive world XEN should fit at least two requirements: it should be appropriately certified and to be able to host a security domain. Leaving behind certification topic, here we focus on security domain hosting capability of XEN. Particularly on keeping RT guarantees for the specific domain.
This talk is a presentation of the investigation on a XEN hypervisor applicability to building a multi-OS system with real-time guarantees being kept for one of the hosted OSes.
During this presentation following topics would be outlined:
- experimental setup
- experimental use-cases and their motivation
- received results and discovered issues
- solutions and mitigation measures for discovered issues
This talk explores the options when trying to bing up a device using an Android Board Support Package (BSP) or AOSP. In particular the options when you don't want to ship a traditional Android device or you have an existing Embedded Linux code base, but all you have available is Android. Headless can mean both be an Android without Java and a device without a display, both are discussed.
Android graphic system (SurfaceFlinger) : Design Pattern's perspectiveBin Chen
SurfaceFlinger is a vital system service in Android system, responsible for the composting all the application and system layer and displaying them. In this slide,we looked in detail how surfaceFlinger was designed from Design Pattern's perspective.
Mises à jour logicielles en environnement Linux Embarqué, petit guide et tour...Pierre-jean Texier
Longtemps basées sur des solutions "maison", il existe maintenant grâce à l'évolution du marché de "l'IoT", des solutions open source pour répondre à la complexité qu'est la gestion des mises à jour sur un système Linux Embarqué. Cette conférence commencera par présenter les différentes problématiques liées aux mises à jour dans un tel environnement : - accès physique, - sécurité, - downtime, - les composants à mettre à jour, - les différentes stratégies, - ...
Integrating VNC in Weston with the Yocto Project and OpenEmbeddedLeon Anavi
After several years of development, VNC support has been introduced as a new feature in Weston 12, which was released on May 17, 2023. This release includes a VNC backend that enables remote control through graphical desktop sharing. Notably, this marks the second Weston backend for remote connections with a graphical interface, as previous versions already supported RDP (Remote Desktop Protocol).
The VNC backend in Weston 12 relies on two key libraries: Neat VNC and AML. It features TLS support and user authentication. Neat VNC is a VNC server library with a liberal license and a clean interface. AML, which stands for Andri's Main Loop, is a dependency for Neat VNC. Both of these projects were initiated by Andri Yngvason, and their source code is available on GitHub under the ISC License.
Shortly after the release of Weston 12, the recipe in openembedded-core was updated to accommodate it. This update is included in Yocto release Nanbield 4.3 and Poky, which is the Yocto Project's reference distribution. It's important to note that the VNC backend is available as an optional configuration for PACKAGECONFIG, but it is not enabled by default. To build it, you'll need the Neat VNC and AML recipes, which have already been submitted by Leon Anavi to the meta-oe layer. Additionally, remember that you must explicitly enable TLS in neatvnc's PACKAGECONFIG to utilize the TLS support and user authentication in Weston's VNC backend.
This presentation aims to demonstrate the practical use of the Yocto Project for building a core-image-weston with a VNC backend, enabling remote graphical desktop sharing. The demonstrations will showcase popular development boards, including the Raspberry Pi with the BSP layer meta-raspberrypi, Radxa ROCK 4 B with the BSP layer meta-rockchip, and Toradex Verdin i.MX8M Plus with Toradex and NXP BSPs. The presentation will provide a step-by-step walkthrough for generating certificates and establishing connections using Vinagre, an open-source VNC client for the GNOME Desktop.
The presentation is suitable for anyone interested in Wayland and Weston, and no prior experience with VNC is required. This talk will illustrate how to set up the VNC backend in Weston and simplify the initial setup process for those interested in using it.
Device Tree Overlay implementation on AOSP 9.0Cheng Wig
With the popularity of Android phones, along with the success in the consumer field, the industrial Android platform is also becoming more and more popular in Europe.
In this session, the presenter will share his experience of integrating AOSP 9.0 on multiple industrial grade platform with various hardware specifications, as well as demonstrate a real case of using the latest dtbo.img architecture to achieve separating the hardware specifications from the software definitions. With this additional abstract layer, the maintenance costs and upgrade complexity will be dramatically improved while fully matching the security architecture of AOSP.
The second part of Linux Internals covers system calls, process subsystem and inter process communication mechanisms. Understanding these services provided by Linux are essential for embedded systems engineer.
Static Partitioning with Xen, LinuxRT, and Zephyr: A Concrete End-to-end Exam...Stefano Stabellini
Static partitioning enables multiple domains to run alongside each other with no interference. They could be running Linux, an RTOS, or another OS, and all of them have direct access to different portions of the SoC. In the last five years, the Xen community introduced several new features to make Xen-based static partitioning possible. Dom0less to start multiple static domains in parallel at boot, and Cache Coloring to minimize cache interference effects are among them. Static inter-domain communications mechanisms were introduced this year, while "ImageBuilder" has been making system-wide configurations easier. An easy-to-use complete solution is within our grasp. This talk will show the progress made on Xen static partitioning. The audience will learn to configure a realistic reference design with multiple partitions: a LinuxRT partition, a Zephyr partition, and a larger Linux partition. The presentation will show how to set up communication channels and direct hardware access for the domains. It will explain how to measure interrupt latency and use cache coloring to zero cache interference effects. The talk will include a live demo of the reference design.
XPDDS18: Real Time in XEN on ARM - Andrii Anisov, EPAM Systems Inc.The Linux Foundation
Currently, several initiatives promote XEN hypervisor into the automotive area as a base of complex virtualized systems. To support those initiatives and plunge into the automotive world XEN should fit at least two requirements: it should be appropriately certified and to be able to host a security domain. Leaving behind certification topic, here we focus on security domain hosting capability of XEN. Particularly on keeping RT guarantees for the specific domain.
This talk is a presentation of the investigation on a XEN hypervisor applicability to building a multi-OS system with real-time guarantees being kept for one of the hosted OSes.
During this presentation following topics would be outlined:
- experimental setup
- experimental use-cases and their motivation
- received results and discovered issues
- solutions and mitigation measures for discovered issues
This talk explores the options when trying to bing up a device using an Android Board Support Package (BSP) or AOSP. In particular the options when you don't want to ship a traditional Android device or you have an existing Embedded Linux code base, but all you have available is Android. Headless can mean both be an Android without Java and a device without a display, both are discussed.
Android graphic system (SurfaceFlinger) : Design Pattern's perspectiveBin Chen
SurfaceFlinger is a vital system service in Android system, responsible for the composting all the application and system layer and displaying them. In this slide,we looked in detail how surfaceFlinger was designed from Design Pattern's perspective.
Mises à jour logicielles en environnement Linux Embarqué, petit guide et tour...Pierre-jean Texier
Longtemps basées sur des solutions "maison", il existe maintenant grâce à l'évolution du marché de "l'IoT", des solutions open source pour répondre à la complexité qu'est la gestion des mises à jour sur un système Linux Embarqué. Cette conférence commencera par présenter les différentes problématiques liées aux mises à jour dans un tel environnement : - accès physique, - sécurité, - downtime, - les composants à mettre à jour, - les différentes stratégies, - ...
Integrating VNC in Weston with the Yocto Project and OpenEmbeddedLeon Anavi
After several years of development, VNC support has been introduced as a new feature in Weston 12, which was released on May 17, 2023. This release includes a VNC backend that enables remote control through graphical desktop sharing. Notably, this marks the second Weston backend for remote connections with a graphical interface, as previous versions already supported RDP (Remote Desktop Protocol).
The VNC backend in Weston 12 relies on two key libraries: Neat VNC and AML. It features TLS support and user authentication. Neat VNC is a VNC server library with a liberal license and a clean interface. AML, which stands for Andri's Main Loop, is a dependency for Neat VNC. Both of these projects were initiated by Andri Yngvason, and their source code is available on GitHub under the ISC License.
Shortly after the release of Weston 12, the recipe in openembedded-core was updated to accommodate it. This update is included in Yocto release Nanbield 4.3 and Poky, which is the Yocto Project's reference distribution. It's important to note that the VNC backend is available as an optional configuration for PACKAGECONFIG, but it is not enabled by default. To build it, you'll need the Neat VNC and AML recipes, which have already been submitted by Leon Anavi to the meta-oe layer. Additionally, remember that you must explicitly enable TLS in neatvnc's PACKAGECONFIG to utilize the TLS support and user authentication in Weston's VNC backend.
This presentation aims to demonstrate the practical use of the Yocto Project for building a core-image-weston with a VNC backend, enabling remote graphical desktop sharing. The demonstrations will showcase popular development boards, including the Raspberry Pi with the BSP layer meta-raspberrypi, Radxa ROCK 4 B with the BSP layer meta-rockchip, and Toradex Verdin i.MX8M Plus with Toradex and NXP BSPs. The presentation will provide a step-by-step walkthrough for generating certificates and establishing connections using Vinagre, an open-source VNC client for the GNOME Desktop.
The presentation is suitable for anyone interested in Wayland and Weston, and no prior experience with VNC is required. This talk will illustrate how to set up the VNC backend in Weston and simplify the initial setup process for those interested in using it.
Building specialized container-based systems with Moby: a few use cases
This talk will explain how you can leverage the Moby project to assemble your own specialized container-based system, whether for IoT, cloud or bare metal scenarios. We will cover Moby itself, the framework, and tooling around the project, as well as many of it’s components: LinuxKit, InfraKit, containerd, SwarmKit, Notary. Then we will present a few use cases and demos of how different companies have leveraged Moby and some of the Moby components to create their own container-based systems.
Automotive Grade Linux on Raspberry Pi: How Does It Work?Leon Anavi
Talk by Leon Anavi at Embedded Linux Conference North America 2020
Automotive Grade Linux (AGL) is a leading embedded Linux distribution for the automotive industry. The AGL Unified Code Base (UCB), using the Yocto Project and OpenEmbedded, has been already adopted by automotive manufacturers and it is present in vehicles like Toyota Camry and all-new 2020 Subaru Outback and Subaru Legacy.
Since 2016 AGL has been ported to Raspberry Pi which nowadays is a prefer getting started platform among the community. The presentation will explore the current status of AGL on Raspberry Pi, reveal war stories and practical experiences for supporting Wayland, PipeWire, libostree for software over the air updates as well as various hardware peripherals.
Guidelines and step by step instructions for building AGL image for Raspberry Pi will be revealed. We will do a deep dive in internals, such as integration of meta-raspberrypi BSP layer, Linux kernel and Mesa versions with firmware KMS to support both HDMI and the official Raspberry Pi touch screen DSI display.
The talk is appropriate for anyone, including beginners. No previous experience is required. Hopefully, the presentation will encourage more people to try AGL on Raspberry Pi and join our community.
Web applications are made of more and more external packages and libraries. It's easy to pull "free stuff" from the Web, but is it as easy to maintain a big project composed from random dependencies? Based on my experience with enterprise-grade payment systems I will tell you how we ensure the security of our applications, how we pick the best libraries and how we avoid being sued for copyright infringement. You will learn software development driven by a reliable analysis and not just hype, Stack Overflow and GitHub stars.
By Rafael Benevides and Edson Yanaga
Yes, Docker is great. We are all very aware of that, but now it’s time to take the next step: wrapping it all and deploying to a production environment. For this scenario, we need something more. For that “more,” we have Kubernetes by Google, a container platform based on the same technology used to deploy billions of containers per month on Google’s infrastructure. Ready to leverage your Docker skills and package your current Java app (WAR, EAR, or JAR)? Come to this session to see how your current Docker skill set can be easily mapped to Kubernetes concepts and commands. And get ready to deploy your containers in production.
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...Leon Anavi
In 2023, embedded Linux developers received eagerly awaited news: the release of Raspberry Pi 5 and the integration of VNC backend into Weston, the reference compositor for the Wayland display server protocol.
During this talk we will explore VNC backend integration in Weston 12 and newer versions as well as its build and runtime dependencies such as NeatVNC and AML. We will compare VNC (Virtual Network Computing) to RDP (Remote Desktop Protocol). Using the Yocto Project and OpenEmbedded, we are going to build core-image-weston for Raspberry Pi 5 and configure VNC with TLS security and user authentication. Step-by-step tutorial will be provided to demonstrate the configuration of a remote connection to Raspberry Pi 5 from another computer through Vinagre, an open-source VNC client designed for the GNOME Desktop.
The presentation is appropriate for anyone interested in remote access to embedded Linux devices. It will expand upon Leon’s lightning talk about RDP from FOSDEM 2023 and address frequently asked questions about remote screen sharing on embedded Linux devices. Previous experience is not required.
Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)Leon Anavi
Brief introduction to the state of GENIVI SOTA projects and its integration in Automotive Grade Linux (AGL) for AGL face to face meeting in Vannes 25-27 May, 2016. The presentation also features requirements and brief analysis of open source software tools for installation strategy on AGL devices.
Reactive Microservices with Spring 5: WebFlux Trayan Iliev
On November 27 Trayan Iliev from IPT presented “Reactive microservices with Spring 5: WebFlux” @Dev.bg in Betahaus Sofia. IPT – Intellectual Products & Technologies has been organizing Java & JavaScript trainings since 2003.
Spring 5 introduces a new model for end-to-end functional and reactive web service programming with Spring 5 WebFlow, Spring Data & Spring Boot. The main topics include:
– Introduction to reactive programming, Reactive Streams specification, and project Reactor (as WebFlux infrastructure)
– REST services with WebFlux – comparison between annotation-based and functional reactive programming approaches for building.
– Router, handler and filter functions
– Using reactive repositories and reactive database access with Spring Data. Building end-to-end non-blocking reactive web services using Netty-based web runtime
– Reactive WebClients and integration testing. Reactive WebSocket support
– Realtime event streaming to WebClients using JSON Streams, and to JS client using SSE.
CloudNative Days Spring 2021 ONLINE キーノートでの発表資料です。
https://event.cloudnativedays.jp/cndo2021/talks/1071
本セッションでは、DockerとKubernetesのもつ基本的な機能の概要を、コンテナの仕組みをふまえつつイラストを用いて紹介していきます。一般にあまり焦点をあてて取り上げられることは多くありませんが、コンテナの作成や管理を担う低レベルなソフトウェア「コンテナランタイム」も本セッションの中心的なトピックのひとつです。
本セッションは、拙著「イラストで分かるDockerとKubernetes」(技術評論社)の内容を参考にしています。
https://www.amazon.co.jp/dp/4297118378
Similar to A/B Linux updates with RAUC and meta-rauc-community: now & in the future (20)
Как да играем компютърни игри с 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 игри както и употребата му като забавна нетипична алтернатива на компютърна мишка.
Как да убием и последната дискета с 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 контейнери за потребителските приложения.
Open Source Tools for Making Open Source HardwareLeon Anavi
Is it worth making open source hardware using expensive proprietary software tools? Of course not! There are many open source software tools good enough for the job. In this presentation Leon Anavi will share his experience in combining open source hardware with free and open source software for fun and profit.
The Yocto Project and OpenEmbedded are often used for building custom GNU/Linux distributions for powering interactive kiosk and displaying HTML5 content.
Although Chromium is the most popular choice for a web browser, it is infamous for the long build time. In this presentation you will see a practical alternative approach using the surf web browser. Surf is a simple minimalist web browser based on WebKit2/GTK+ with interface that does not include any graphical control elements. It a perfect fit for a kiosk.
The presentation will offer the exact steps how to build a minimal GNU/Linux distribution with systemd, X11, openbox window manager and the Surf web browser. Furthermore, we will discuss practical examples for software over air updates of this simple distribution. Raspberry Pi 4 will be used as a reference hardware for all demonstrations.
This presentation is suitable for beginners. It will demonstrate a practical use of the Yocto Project/OpenEmbedded for a common use case, some tips and tricks as well as examples for selection systemd as init system and software over the air mechanism.
Linux дистрибуции и софтуерни обновления за вградени устройства Leon Anavi
Бързото развитие на изкуствения интелект и електрониката доведе до нови високотехнологични специфични изисквания към устройствата използвани в най-различни индустрии. Linux e предпочитан избор за вградени устройства. Очевидно Linux дистрибуцията за персонален компютър е много различна от тази за робот, автомобил или космически кораб. Има два фундаментални инженерни въпроса, които трябва да бъдат разрешение независимо от крайните цели на машините:
>>> Как да бъде създадена Linux дистрибуция с всички необходими специфични компоненти за конкретното вградено устройство?
>>> Как да се актуализира софтуерът?
В тази презентация ще разгледаме решения с отворен код на тези въпроси като Yocto Project и OpеnEmbedded, Buildroot, PTXdist, OpenWRT заедно с технологии и услуги за софтуерни актуализации като Mender, RAUC, SWUpdate, libostree с различните му производи за бинарни делта обновления и други.
Getting started with AGL using a Raspberry PiLeon Anavi
Automotive Grade Linux (AGL) All Members Meeting (AMM) 2020
In 2016 Automotive Grade Linux was ported to Raspberry Pi and since then this low-cost single board computer has become a preferred getting started platform among the community. Although Raspberry Pi doesn't match the hardware capabilities of high-end industrial and automotive hardware platforms, its wide availability and low-cost makes it a great choice for rapid prototyping and exploring AGL.
This presentation will provide guidelines and exact steps for building AGL image for Raspberry Pi. We will explore the past and present of AGL on Raspberry Pi, including practical experience for supporting Wayland, PipeWire, libostree for software over the air updates and various hardware peripherals.
The talk is appropriate for beginners. No previous experience with AGL is required. Hopefully, the presentation will encourage more people to join and contribute to our open source community!
Comparison of Open Source Software Home Automation ToolsLeon Anavi
With the market grow of Internet of Things the demand for open source home automation software for controlling numerous connected appliances also increases. Open source solutions allow users to customize the setup depending their own specific needs and to manage devices manufactured by different vendors in one place.
This presentation will provide an overview of the popular open source tools for home automation and focus on some of the most popular among them: Home Assistant, OpenHAB and Domoticz. We will explore the supported embedded Linux development boards on which these platforms can be installed as well as the IoT with which they can interact out of the box. Practical examples for simple home automation will be provided.
The talk is appropriate for open source enthusiasts, makers, engineers, students and even beginners. No previous experience is required.
Практични примери за device tree overlays на Raspberry PiLeon Anavi
Кратка презентация от ежегодния семинар на Linux User Group България в Пловдив, 6 април 2019г. Съдържа практични примери за употреба на device tree overlays на Raspberry Pi и първи стъпки в dts (device tree source) и dtc (device tree compiler).
The Software Developer’s Guide to Open Source HardwareLeon Anavi
The popularity of the open source hardware movement and IoT is constantly increasing. But is it worth making open source hardware using expensive proprietary software? Of course not!
In this presentation Leon Anavi will share his experience in developing IoT by designing printed circuit boards (PCB) with the free and open source EDA tool KiCAD, the open source hardware certification program of OSHWA, crowdfunding opportunities for low volume manufacturing and open source success stories for building a community. Practical examples based on the certified open source hardware development boards ANAVI Light Controller and ANAVI Thermometer will be provided. The talk also contains information about open source hardware licenses, KiCAD getting started guidelines, tips and tricks for avoiding common mistakes.
Always take with a pinch of salt anything that a software engineer like Leon says about hardware and in the same time have in mind that if he can do it, anyone can! Hopefully the talk will encourage more people to use KiCAD, join the open source hardware movement and certify their open source devices at OSHWA.
Making Open Source Hardware for Retrogaming on Raspberry PiLeon Anavi
Raspberry Pi, the most popular single board computer for hobbyists and students, is an affordable and widely used platform for retrogaming. Over the years the community has created numerous cool cases, add-on boards and peripherals for optimized gaming.
In this presentation you will learn how to use cutting edge free and open source technologies such as KiCAD and OpenSCAD to create a gamepad as a Raspberry Pi HAT (Hardware Attached on Top) with device-tree fragment for mapping the keys saved in an EEPROM connected via I2C. Exact steps for setting it up and playing retro games in emulators on RetroPie and Raspbian will be provided. Furthermore we will discuss the benefits of the open source hardware and the certification program of Open Source Hardware Association (OSHWA).
The presentation is appropriate for anyone interested in low-cost retrogaming and modern free and open source software technologies. No previous experience or hardware knowledge is required. Apart from retrogaming enthusiasts, the talk is appropriate for wide range of developers, makers, and students. Hopefully, the presentation will encourage the attendees to grab the soldering iron and start prototyping retrogaming compatible hardware for fun and profit.
Вграждане на умни гласови асистенти в устройства с LinuxLeon Anavi
OpenFest 2018 - Радослав Колев, Леон Анави
В последните няколко години милиони умни говорители с Google Assistant и Amazon Alexa бяха продадени и пазарът им продължава да се разширява. В тази презентация Леон Анави и Радо Колев ще разгледат новите екосистеми за гласови асистенти и ще анализират съществуващите SDK за интеграцията им във вградени устройства с Linux. Освен Google Assistant и Amazon Alexa ще бъде разгледана и open source алтернативата MyCroft. Ще бъдат предоставени практически примери и демонстрации с Raspberry Pi и Orange Pi Zero с Allwinner SoC.
Comparison of Voice Assistant SDKs for Embedded Linux DevicesLeon Anavi
Millions of smart speakers powered by Google Assistant and Amazon Alexa were sold in the past couple of years. This product category provides a bridge between AI and IoT. It has a huge potential and the market is expected to continue to grow. In the mean time there is also an increased demand for integration of voice assistants in other home appliances.
This session will explore the available SDKs for integration in embedded Linux systems of Google Assistant and Amazon Alexa as well as their open source alternative Mycroft. We will deep dive into compatibility, feature support and hardware requirement. In order to better understand the current state of each SDK we will go through the exact steps for quick prototyping of new products with low-cost single board computers like Raspberry Pi and Orange Pi Zero.
MQTT is a lightweight publish/subscribe machine-to-machine protocol with a reliable bi-directional communication in (near) real-time. The small footprint of client implementations allows running MQTT on devices with constrained hardware capabilities and makes it a commonly used solution for Internet of Things.
In this presentation Leon Anavi will provide a brief overview of the key features of MQTT, share his experience in using MQTT for home automation and compare various MQTT brokers. The presentation will reveal the specifications and provide guidelines for deployment on GNU/Linux distributions of popular open source MQTT brokers such as Mosquitto, HiveMQ, emqttd, RabbitMQ, ActiveMQ, Mosca and others. Furthermore, we will also discuss open source libraries for integration of MQTT clients such as the Eclipse Paho project.
Free and Open Source Software Tools for Making Open Source HardwareLeon Anavi
The open source hardware movement is becoming more and more popular. But is it worth making open source hardware if it has been designed with expensive proprietary software? In this presentation, Leon Anavi will share his experience how to use free and open source software for making high-quality entirely open source devices: from the designing the PCB with KiCAD through making a case with OpenSCAD or FreeCAD to slicing with Cura and 3D printing. The talk will also provide information about open source hardware licenses, getting started guidelines, tips for avoiding common pitfalls and mistakes. The challenges of prototyping and low-volume manufacturing with both SMT and THT will be also discussed.
Building a Remote Control Robot with Automotive Grade LinuxLeon Anavi
Automotive Grade Linux (AGL) is a leading embedded Linux distribution for the automotive industry and soon it will debut on the 2018 Toyota Camry. Out of the box AGL offers reliable open source solutions for graphics, connectivity, security and software over the air updates. Could other industries benefit from these features?
In a quest to discover if AGL is suitable for Internet of Things (IoT) outside the automotive industry, this presentation will reveal a practical experiment of using AGL in robotics. Attendees will learn the exact steps for building a do it yourself (DIY) robot based on Raspberry Pi 3 with off-the-shelf components. The talk will provide guidelines for integration of additional software, sensors and other peripheral hardware device in a headless AGL profile.
Връщане към живота на ретро електроника с Raspberry PiLeon Anavi
Интересите на корпорациите са да Ви продават нови стоки. Те не се интересуват от Вашия телевизор на 5 години, климатик на 8 години или аудио уредба на 10 години. Не очаквайте софтуерни обновления за тези устройства, още по-малко за по-стари.
Нужно ли е задължително да изхвърлим уреди, които работят, но са морално остарели? Не, разбира се! С помощта на open source софтуер и евтини мини компютри от типа на Raspberry Pi може да преобразим старите уреди и да ги направим Internet of Things. В тази презентация ще разгледаме идеи и популярни решения за домашна автоматизация на стари електроуреди. В детайли ще разгледаме заместване на дистанционно на телевизори, аудио системи и климатици и управлението им през "мрежата" чрез Raspberry Pi.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
1. A/B Linux updates with RAUC and meta-
rauc-community: now & in the future
Leon Anavi
Konsulko Group
leon.anavi@konsulko.com
leon@anavi.org
Yocto Project Summit 2021.11
2. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
Konsulko Group
Services company specializing in Embedded Linux and Open Source Software
Hardware/software build, design, development, and training services
Based in San Jose, CA with an engineering presence worldwide
http://konsulko.com/
3. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
Agenda
What is RAUC?
Integrating RAUC on new hardware
Yocto/OE layer meta-rauc-community
Examples
Conclusions
Q&A
4. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
What is RAUC?
A lightweight update client that runs on an Embedded Linux device and reliably
controls the procedure of A/B updating the device with a new firmware revision
Provides tool for the build system to create, inspect and modify update bundles
Uses X.509 cryptography to sign update bundles
Compatible with the Yocto Project and OpenEmbedded, PTXdist and Buildroot
Started by Pengutronix in 2015, adopted by the community and the industry
5. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
How Does RAUC Work?
6. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
RAUC Licenses
RAUC – LGPLv2.1
https://github.com/rauc/rauc
meta-rauc - MIT
https://github.com/rauc/meta-rauc
meta-rauc-community – MIT
https://github.com/rauc/meta-rauc-community
rauc-hawkbit – LGPLv2.1
https://github.com/rauc/rauc-hawkbit
rauc-hawkbit-updater – LGPLv2.1
https://github.com/rauc/rauc-hawkbit-updater
7. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
Eclipse hawkBit
Domain independent back-end framework for rolling out software updates to
constrained edge devices as well as more powerful controllers and gateways
connected to IP based networking infrastructure
Written in Java
Available in GitHub under EPL-1.0 License
Compatible with RAUC and SWUpdate
https://www.eclipse.org/hawkbit/
8. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
Are there any RAUC open source alternatives?
Mender
SWUpdate
Swupd
UpdateHub
Balena
Snap
OSTree
Aktualizr
Aktualizr-lite
QtOTA
Torizon
FullMetalUpdate
Rpm-ostree (used in Project Atomic)
9. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
Common Embedded Linux Update Strategies
A/B updates with dual redundant scheme (for example: RAUC)
Delta updates
Container-based updates
Combined strategies
10. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
Combined Update Strategies
Container technology has changed the way application developers interact with the
cloud and some of the good practices are nowadays applied to the development
workflow for embedded devices and IoT
Containers make applications faster to deploy, easier to update and more secure
through isolation
Yocto/OE layer meta-virtualization provides support for building Xen, KVM, Libvirt,
docker and associated packages necessary for constructing OE-based virtualized
solutions
There are use cases on powerful embedded devices where containers are
combined with RAUC A/B updates of the base Linux distribution built with Yocto/OE
11. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
Yocto/OpenEmbedded Layers for RAUC
meta-rauc
Layer for RAUC, the embedded Linux update framework
meta-rauc-community
Layer with examples for integration of RAUC, the embedded Linux A/B update
framework
12. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
meta-rauc
Yocto/OpenEmbedded meta layer for RAUC
Supports releases Honister, Gatesgarth, Dunfell, Zeus, Warrior, Thud, Sumo,
Morty, Pyro and Krogoth
Available under MIT license in GitHub: https://github.com/rauc/meta-rauc
33 contributors, the RAUC co-maintainer Enrico Jörns from Pengutronix is the
leading contributor
13. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
meta-rauc-community
Yocto/OpenEmbedded meta layer with demo examples for integration of RAUC,
the embedded Linux A/B update framework:
meta-rauc-raspberrypi: for Raspberry Pi
meta-rauc-qemux86: for QEMU (qemux86-64)
meta-rauc-sunxi: for Allwinner sunxi SoCs
meta-rauc-tegra: for NVIDIA Jetson platforms, based on L4T
https://github.com/rauc/meta-rauc-community
14. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
Contributors
meta-rauc-community started in 2020
Moved to RAUC GitHub organization in 2021
5 contributors
15. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
Notable Contributions
16. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
RAUC Integration Steps
Select an appropriate bootloader
Enable SquashFS in the Linux kernel configurations
ext4 root file system (RAUC does not have an ext2 / ext3 file type)
Create specific partitions that match the RAUC slots
Configure Bootloader environment and create a script to switch RAUC slots
Create a certificate and a keyring to RAUC’s system.conf
17. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
RAUC Example with Raspberry Pi 4
Download Poky, meta-openembedded and meta-raspberrypi:
git clone -b dunfell git://git.yoctoproject.org/poky poky-rpi-rauc
cd poky-rpi-rauc
git clone -b dunfell git://git.openembedded.org/meta-openembedded
git clone -b dunfell git://git.yoctoproject.org/meta-raspberrypi
Download RAUC related layers:
git clone -b dunfell https://github.com/rauc/meta-rauc.git
git clone -b dunfell https://github.com/rauc/meta-rauc-community.git
Initialize the build environment:
source oe-init-build-env
18. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
RAUC Example with Raspberry Pi 4
Add layers:
bitbake-layers add-layer ../meta-openembedded/meta-oe/
bitbake-layers add-layer ../meta-openembedded/meta-python/
bitbake-layers add-layer ../meta-openembedded/meta-networking/
bitbake-layers add-layer ../meta-openembedded/meta-multimedia/
bitbake-layers add-layer ../meta-raspberrypi/
bitbake-layers add-layer ../meta-rauc
bitbake-layers add-layer ../meta-rauc-community/meta-rauc-raspberrypi/
19. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
RAUC Example with Raspberry Pi 4
Add to local.conf:
MACHINE = "raspberrypi4"
DISTRO_FEATURES_append = " systemd"
VIRTUAL-RUNTIME_init_manager = "systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
VIRTUAL-RUNTIME_initscripts = ""
IMAGE_INSTALL_append = " rauc"
IMAGE_FSTYPES="tar.bz2 ext4 wic.bz2 wic.bmap"
SDIMG_ROOTFS_TYPE="ext4"
ENABLE_UART = "1"
RPI_USE_U_BOOT = "1"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot"
WKS_FILE = "sdimage-dual-raspberrypi.wks.in"
20. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
RAUC Example with Raspberry Pi 4
Build a minimal bootable image:
bitbake core-image-minimal
Flash the image to a microSD card and boot it on Raspberry Pi 4:
sudo umount /dev/sdX*
bzcat tmp/deploy/images/raspberrypi4/core-image-minimal-raspberrypi4.wic.bz2 | sudo dd of=/dev/sdX
sync
Attach USB to UART debug cable to Raspberry Pi 4, plug Ethernet cable and the microSD card.
Turn on Raspberry Pi 4. Verify that the system boots successfully.
21. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
RAUC Update Bundle
Add to conf/local.conf:
IMAGE_INSTALL_append = " nano"
Build a RAUC bundle:
bitbake update-bundle
22. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
Manual RAUC Update of Raspberry Pi 4
On the build system:
cd tmp/deploy/images/raspberrypi4/
python3 -m http.server
On the embedded device, in this case Raspberry Pi 4:
wget http://example.com:8000/update-bundle-raspberrypi4.raucb -P /tmp
rauc install /tmp/update-bundle-raspberrypi4.raucb
reboot
23. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
Check RAUC Status After Update
24. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
U-Boot Environment for RAUC
RAUC relies on the following U-Boot environment variables:
BOOT_ORDER - a space-separated list of boot targets in the order they should be
tried
BOOT_<bootname>_LEFT - contains the number of remaining boot attempts to
perform for the respective slot
For details:
https://rauc.readthedocs.io/en/latest/integration.html#set-up-u-boot-environment-for-rauc
25. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
boot.cmd.in for RAUC & Raspberry Pi
fdt addr ${fdt_addr} && fdt get value bootargs /chosen bootargs
test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B"
test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3
test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3
test -n "${BOOT_DEV}" || setenv BOOT_DEV "mmc 0:1"
setenv bootpart
setenv raucslot
for BOOT_SLOT in "${BOOT_ORDER}"; do
if test "x${bootpart}" != "x"; then
# skip remaining slots
elif test "x${BOOT_SLOT}" = "xA"; then
if test ${BOOT_A_LEFT} -gt 0; then
setexpr BOOT_A_LEFT ${BOOT_A_LEFT} – 1
echo "Found valid RAUC slot A"
setenv bootpart "/dev/mmcblk0p2"
setenv raucslot "A"
setenv BOOT_DEV "mmc 0:2"
fi
elif test "x${BOOT_SLOT}" = "xB"; then
if test ${BOOT_B_LEFT} -gt 0; then
setexpr BOOT_B_LEFT ${BOOT_B_LEFT} – 1
echo "Found valid RAUC slot B"
setenv bootpart "/dev/mmcblk0p3"
setenv raucslot "B"
setenv BOOT_DEV "mmc 0:3"
fi
fi
done
if test -n "${bootpart}"; then
setenv bootargs "${bootargs} root=${bootpart} rauc.slot=${raucslot}"
saveenv
else
echo "No valid RAUC slot found. Resetting tries to 3"
setenv BOOT_A_LEFT 3
setenv BOOT_B_LEFT 3
saveenv
reset
fi
fatload mmc 0:1 ${kernel_addr_r} @@KERNEL_IMAGETYPE@@
if test ! -e mmc 0:1 uboot.env; then saveenv; fi;
@@KERNEL_BOOTCMD@@ ${kernel_addr_r} - ${fdt_addr}
26. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
Generate RAUC Certificate
Use script openssl-ca.sh from meta-rauc to to create a certificate and a key:
The target RAUC package must use the generated keyring file
RAUC bundle recipe must use the generated key and certificate
For details:
https://github.com/rauc/meta-rauc/blob/master/scripts/README
28. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
The New Kid on the Block: NVIDIA Jetson TX2
An example RAUC integration has been added for NVIDIA Jetson TX2:
https://github.com/rauc/meta-rauc-community/tree/master/meta-rauc-tegra
Based on Yocto/OE BSP meta-tegra: https://github.com/OE4T/meta-tegra
Boot flow: Cboot > U-Boot > Kernel
Patched include/configs/p2771-0000.h through u-boot-tegra to enable RAUC
29. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
RAUC on NVIDIA Jetson TX2
For the demo the U-Boot env is saved to MMC
beware of conflicts for atomic bootloader updates
30. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
SquashFS & Loopback Device Support
To install RAUC bundles the kernel used on the embedded device must support
both loop block devices and the SquashFS file system
For example in linux-tegra_%.bbappend with a kernel configuration fragment:
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI += "file://rauc.cfg"
CONFIG_MD=y
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_DM_VERITY=y
CONFIG_SQUASHFS=y
CONFIG_CRYPTO_SHA256=y
CONFIG_SQUASHFS_FILE_DIRECT=y
SQUASHFS_DECOMP_MULTI=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
31. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
Conclusions
RAUC is a secure, reliable, free and open source framework for A/B software
updates of embedded Linux devices
meta-rauc-community is the Yocto/OpenEmbedded layer providing RAUC
example integration on popular embedded devices
As of the moment meta-rauc-community provides examples for Raspberry Pi,
QEMU x86-64, Allwinner (SunXi) and NVIDIA Jetson Tegra TX2
More contributors wanted to extend the examples on more embedded devices
32. Yocto Project Summit 2021.11, Leon Anavi, RAUC and meta-rauc-community
Thank You!
Useful links
Software Updates with RAUC, the Yocto Project and OpenEmbedded,
Leon Anavi Yocto Project Summit 2020
https://pretalx.com/yocto-project-summit-2020/talk/JJYPH3/
Getting Started with RAUC on Raspberry Pi, an article at konsulko.com
https://www.konsulko.com/getting-started-with-rauc-on-raspberry-pi-2/
Behind the Scenes of an Update Framework: RAUC, Enrico Jörns, ELCE 2019
https://www.youtube.com/watch?v=ZkumnNsWczM
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and
Barebox
https://www.youtube.com/watch?v=hS3Fjf7fuHM
Secure and Safe Updates for Your Embedded Device, Enrico Jörns, FOSDEM
2017
https://archive.fosdem.org/2017/schedule/event/secure_safe_embedded_updates/