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.
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIAnne Nicolas
As the name would suggest, a Non-Maskable Interrupt (NMI) is an interrupt-like feature that is unaffected by the disabling of classic interrupts. In Linux, NMIs are involved in some features such as performance event monitoring, hard-lockup detector, on demand state dumping, etc… Their potential to fire when least expected can fill the most seasoned kernel hackers with dread.
AArch64 (aka arm64 in the Linux tree) does not provide architected NMIs, a consequence being that features benefiting from NMIs see their use limited on AArch64. However, the Arm Generic Interrupt Controller (GIC) supports interrupt prioritization and masking, which, among other things, provides a way to control whether or not a set of interrupts can be signaled to a CPU.
This talk will cover how, using the GIC interrupt priorities, we provide a way to configure some interrupts to behave in an NMI-like manner on AArch64. We’ll discuss the implementation, some of the complications that ensued and also some of the benefits obtained from it.
Julien Thierry
The U-Boot is an "Universal Bootloader" ("Das U-Boot") is a monitor program that is under GPL. This production quality boot-loader is used as default boot loader by several board vendors. It is easily portable and easy to port and to debug by supporting PPC, ARM, MIPS, x86,m68k, NIOS, Microblaze architectures. Here is a presentation that introduces U-Boot.
Often called as the Swiss Army Knife of Embedded Linux, BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. It is written with size-optimization
and limited resources in mind. Here is a presentation that details about BusyBox.
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIAnne Nicolas
As the name would suggest, a Non-Maskable Interrupt (NMI) is an interrupt-like feature that is unaffected by the disabling of classic interrupts. In Linux, NMIs are involved in some features such as performance event monitoring, hard-lockup detector, on demand state dumping, etc… Their potential to fire when least expected can fill the most seasoned kernel hackers with dread.
AArch64 (aka arm64 in the Linux tree) does not provide architected NMIs, a consequence being that features benefiting from NMIs see their use limited on AArch64. However, the Arm Generic Interrupt Controller (GIC) supports interrupt prioritization and masking, which, among other things, provides a way to control whether or not a set of interrupts can be signaled to a CPU.
This talk will cover how, using the GIC interrupt priorities, we provide a way to configure some interrupts to behave in an NMI-like manner on AArch64. We’ll discuss the implementation, some of the complications that ensued and also some of the benefits obtained from it.
Julien Thierry
The U-Boot is an "Universal Bootloader" ("Das U-Boot") is a monitor program that is under GPL. This production quality boot-loader is used as default boot loader by several board vendors. It is easily portable and easy to port and to debug by supporting PPC, ARM, MIPS, x86,m68k, NIOS, Microblaze architectures. Here is a presentation that introduces U-Boot.
Often called as the Swiss Army Knife of Embedded Linux, BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. It is written with size-optimization
and limited resources in mind. Here is a presentation that details about BusyBox.
Vmlinux: anatomy of bzimage and how x86 64 processor is bootedAdrian Huang
This slide deck describes the Linux booting flow for x86_64 processors.
Note: When you view the the slide deck via web browser, the screenshots may be blurred. You can download and view them offline (Screenshots are clear).
Stefano Cordibella - An introduction to Yocto Projectlinuxlab_conf
If you heard something about Yocto, bitbake, openembedded, layers, recipes and you want to know more about that, this talk is for you. In this presentation you will be introduced to the Yocto Project build system starting from the basic concepts of metadata up to the use of the build system “tasks” in order to create your own embedded linux distribution. I will start speaking about the pros and cons of the Yocto Project compared to the other embedded linux build systems. Then we go deep into the framework components: poky, openembedded core and bitbake. The practical use of the recipes, packagegroups, images and machines files will be explained by examples. Finally an example on how to integrate an extra layer will be showed demonstrating the ease of use and the modularity of the build system.
Yocto - Embedded Linux Distribution MakerSherif Mousa
Yocto is an Embedded Linux distribution maker.
This presentation is a quick start guide for Yocto buildsystem to get familiar with the tool and how to start building your own custom Linux system for a specific hardware target.
Linux Kernel Booting Process (1) - For NLKBshimosawa
Describes the bootstrapping part in Linux and some related technologies.
This is the part one of the slides, and the succeeding slides will contain the errata for this slide.
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...Adrian Huang
Note: When you view the the slide deck via web browser, the screenshots may be blurred. You can download and view them offline (Screenshots are clear).
This presentation briefs about the Linux Kernel Module and Character Device Driver. This also contains sample code snippets. Also briefs about character driver registration and access.
Introduce Brainf*ck, another Turing complete programming language. Then, try to implement the following from scratch: Interpreter, Compiler [x86_64 and ARM], and JIT Compiler.
I gave this workshop at FOSS-north 2019 https://www.foss-north.se/2019. It is is an introduction to Embedded Linux, using Buildroot to build the images and the BeagleBone Black as the target.
Continguous Memory Allocator in the Linux KernelKernel TLV
Agenda:
Continguous Memory Allocator - how to allocate large continguous memory for large scale DMA in the kernel.
Speaker:
Mark Veltzer - CTO of Hinbit and a senior instructor at John Bryce. Mark is also a member of the Free Source Foundation and contributes to many free projects.
This lecture addresses the Use of Signals by the Linux Kernel, and the process behavior upon receiving signals. The popular signals are outlined
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This course gets you started with writing device drivers in Linux by providing real time hardware exposure. Equip you with real-time tools, debugging techniques and industry usage in a hands-on manner. Dedicated hardware by Emertxe's device driver learning kit. Special focus on character and USB device drivers.
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.
WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...Igalia
By Juan José Sánchez Penas.
WebKit is a web rendering engine (HTML, JavaScript, CSS) with a generic part (WebCore, JSEngine), and 'ports' for specific platforms that implement bits like rendering, networking or multimedia. In the WebKit community, companies&individuals cooperate to evolve a complex codebase. Given the popularity of HTML5 and web tech, WebKit is a key open source project. Recently, Google announced Blink, a fork of WebKit, with consequences for the project still difficult to predict. Igalia's Browsers team maintains the WebKitGTK+ port and is top contributor to WebCore, JSC, V8, other ports (EFL, Clutter, Qt), and Blink. The talk will review the past/present/future of WebKit/Blink, their dynamics and development process, the relationship with the Linux ecosystem, and will give information about how to contribute to or use both projects.
Vmlinux: anatomy of bzimage and how x86 64 processor is bootedAdrian Huang
This slide deck describes the Linux booting flow for x86_64 processors.
Note: When you view the the slide deck via web browser, the screenshots may be blurred. You can download and view them offline (Screenshots are clear).
Stefano Cordibella - An introduction to Yocto Projectlinuxlab_conf
If you heard something about Yocto, bitbake, openembedded, layers, recipes and you want to know more about that, this talk is for you. In this presentation you will be introduced to the Yocto Project build system starting from the basic concepts of metadata up to the use of the build system “tasks” in order to create your own embedded linux distribution. I will start speaking about the pros and cons of the Yocto Project compared to the other embedded linux build systems. Then we go deep into the framework components: poky, openembedded core and bitbake. The practical use of the recipes, packagegroups, images and machines files will be explained by examples. Finally an example on how to integrate an extra layer will be showed demonstrating the ease of use and the modularity of the build system.
Yocto - Embedded Linux Distribution MakerSherif Mousa
Yocto is an Embedded Linux distribution maker.
This presentation is a quick start guide for Yocto buildsystem to get familiar with the tool and how to start building your own custom Linux system for a specific hardware target.
Linux Kernel Booting Process (1) - For NLKBshimosawa
Describes the bootstrapping part in Linux and some related technologies.
This is the part one of the slides, and the succeeding slides will contain the errata for this slide.
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...Adrian Huang
Note: When you view the the slide deck via web browser, the screenshots may be blurred. You can download and view them offline (Screenshots are clear).
This presentation briefs about the Linux Kernel Module and Character Device Driver. This also contains sample code snippets. Also briefs about character driver registration and access.
Introduce Brainf*ck, another Turing complete programming language. Then, try to implement the following from scratch: Interpreter, Compiler [x86_64 and ARM], and JIT Compiler.
I gave this workshop at FOSS-north 2019 https://www.foss-north.se/2019. It is is an introduction to Embedded Linux, using Buildroot to build the images and the BeagleBone Black as the target.
Continguous Memory Allocator in the Linux KernelKernel TLV
Agenda:
Continguous Memory Allocator - how to allocate large continguous memory for large scale DMA in the kernel.
Speaker:
Mark Veltzer - CTO of Hinbit and a senior instructor at John Bryce. Mark is also a member of the Free Source Foundation and contributes to many free projects.
This lecture addresses the Use of Signals by the Linux Kernel, and the process behavior upon receiving signals. The popular signals are outlined
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This course gets you started with writing device drivers in Linux by providing real time hardware exposure. Equip you with real-time tools, debugging techniques and industry usage in a hands-on manner. Dedicated hardware by Emertxe's device driver learning kit. Special focus on character and USB device drivers.
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.
WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...Igalia
By Juan José Sánchez Penas.
WebKit is a web rendering engine (HTML, JavaScript, CSS) with a generic part (WebCore, JSEngine), and 'ports' for specific platforms that implement bits like rendering, networking or multimedia. In the WebKit community, companies&individuals cooperate to evolve a complex codebase. Given the popularity of HTML5 and web tech, WebKit is a key open source project. Recently, Google announced Blink, a fork of WebKit, with consequences for the project still difficult to predict. Igalia's Browsers team maintains the WebKitGTK+ port and is top contributor to WebCore, JSC, V8, other ports (EFL, Clutter, Qt), and Blink. The talk will review the past/present/future of WebKit/Blink, their dynamics and development process, the relationship with the Linux ecosystem, and will give information about how to contribute to or use both projects.
The WebKit project (LinuxCon North America 2012)Igalia
By Juan José Sánchez Penas.
WebKit is a popular open source web rendering engine (HTML, JavaScript, CSS) with a generic part (WebCore, JS Engine), and 'ports' for specific platforms which implement bits like rendering, networking or multimedia. The WebKit community is interesting: companies & individuals cooperate successfully to evolve a complex codebase. Given the popularity of HTML5 and web technologies, WebKit is one of the most important open source projects. Our WebKit team at Igalia maintains the WebKitGTK+ port and contributes to WebCore, JSC, V8 & other ports (EFL, Clutter, Qt), being the top committers after Google&Apple. In this talk, we will review the past&present&future of the project, will explain how to interact with it, how to create or maintain ports, and other details very useful for those who in one way or another use or depend on WebKit.
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutio...Igalia
By Juan José Sánchez Penas.
WebKit is a web rendering engine (HTML, JavaScript, CSS) with a generic part (WebCore, JSEngine), and 'ports' for specific platforms that implement bits like rendering, networking or multimedia. In the WebKit community, companies&individuals cooperate to evolve a complex codebase. Given the popularity of HTML5 and web tech, WebKit is a key open source project. About 10 months ago, Google announced Blink, a fork of WebKit which attracted many former WebKit contributors. Igalia's Browsers team maintains the WebKitGTK+ port and is top contributor to WebCore, JSC, V8, other ports (EFL, Clutter, Qt), and Blink. The talk will review the past/present/future of WebKit/Blink, their dynamics and development process, , the relationship with the Linux ecosystem, and will give information about how to contribute to or use both projects. Not very technical. Valid both for developers & managers.
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.
Summary of changes introduced on DockerCon's in 2017.
Highlights of new tools, updates & key announcements including their potential impact on our daily projects.
Containers are incredibly convenient to package applications and deploy them quickly across the data center.
This talk will introduce RunX, a new project under LF Edge that aims at bringing containers to the edge with extra benefits. At the core, RunX is an OCI-compatible container runtime to run software packaged as containers as Xen micro-VMs. RunX allows traditional containers to be executed with a minimal overhead as virtual machines, providing additional isolation and real-time support.
It also introduces new types of containers designed with edge and embedded deployments in mind. RunX enables RTOSes, and baremetal apps to be packaged as containers, delivered to the target using the powerful containers infrastructure, and deployed at runtime as Xen micro-VMs. Physical resources can be dynamically assigned to them, such as accelerators and FPGA blocks.
This presentation will go through the architecture of RunX and the new deployment scenarios it enables. It will provide an overview of the integration with Yocto Project via the meta-virtualization layer and describe how to build a complete system with Xen and RunX.
The presentation will come with a live demo on embedded hardware.
Add the power of the Web to your embedded devices with WPE WebKitIgalia
The Web engine is the most important component of a Web Browser: it makes it possible to fetch and interpret web content, allowing users to interact with it. WebKit, the Open Source Web engine used in Web browsers like Safari, provides an architecture particularly well-designed for embedded platforms, making it popular not just for Apple devices, but for all sorts of Linux-based environments too (e.g. set-top-boxes, smart home appliances..). However, a Web engine is a complex piece of software and often not optimized for low-power computers.
This is where WPE, a Linux-based Open Source “port” of WebKit for embedded devices, comes in. Its low memory footprint and focus on simplicity, flexibility, and performance allows for the kind of customization needed to run on bespoke hardware and integrate with a wide variety of requirements. WPE is also developed upstream as part of the WebKit project and regularly published every 6 months via stable releases, guaranteeing that it’s up-to-date with the latest developments in the WebKit community.
In this talk, we will explore WPE in detail, see how the project has evolved, and look at where it’s heading next, highlighting some of its most popular use cases and some experiments that open up brand-new possibilities for this port of WebKit.
(c) Embedded Recipes 2023
5th Edition
September 2023, 28 to 29
Paris - France
https://embedded-recipes.org/2023/
https://www.youtube.com/watch?v=rdiETUGD6dg
Building End-user Applications on Embedded Devices with WPEIgalia
The Web engine is the most important component of a Web Browser, enabling
developers to harness the power of the Web Platform to build their
applications. However, Web Browsers are not the only type of applications that
can be built with Web Engines, which can also be used to develop other types of
applications using the same Web-based technologies, but for a different type of
use cases other than "browsing the Web".
These use cases can cover a wide range of situations outside of the traditional
desktop or mobile environments, such as the ones embedded systems are usually
used for (e.g. set-top-boxes, smart home appliances, GPS navigation devices, or
in-car/in-flight infotainment systems, to name a few). And in those situations
it is very common to be running on boards with SoCs and a particular set of HW
capabilities that make it crucial for the Web Engine to be able to tightly
integrate with them.
In this session we will focus on how WPE, a fully Open Source port of the
WebKit Web engine for Linux-based embedded devices, can be used to adapt to the
different challenges that embedded devices pose to develop end-user
applications, using the power of the Web Platform underneath.
(c) Embedded Open Source Summit 2024
April 16-18, 2024
Seattle, Washington (US)
https://events.linuxfoundation.org/embedded-open-source-summit/
https://eoss24.sched.com/event/1aNTr/building-end-user-applications-on-embedded-devices-with-wpe-mario-sanchez-prada-igalia
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019Codemotion
In the last 3 years Mixed Reality devices and AI technology have opened the door to an infinite number of new disrupting opportunities, but it is not the only revolution underway. Thanks to the combination of new powerful cloud services, AI and local computation capabilities, we can evolve the traditional industrial applications to enter in Industry 4.0 In this session we will showcase and describe the implementation of an industrial application that uses an offline ONNX Model, trained online on cloud service but deployed locally on dedicated AI chip.
Как да играем компютърни игри с 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 контейнери за потребителските приложения.
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.
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.
A/B Linux updates with RAUC and meta-rauc-community: now & in the futureLeon Anavi
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.
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!
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.
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.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
"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.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
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/
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
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.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
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.
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.
Leading Change strategies and insights for effective change management pdf 1.pdf
Surfing on an Interactive Kiosk
1. Surfing on an Interactive Kiosk
Leon Anavi
Konsulko Group
leon.anavi@konsulko.com
leon@anavi.org
Yocto Project Summit 2021
2. Yocto Project Summit 2021, Leon Anavi, Surfing on an Interactive Kiosk
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, Leon Anavi, Surfing on an Interactive Kiosk
Agenda
Using web browsers for an interactive kiosk
Openbox and Surf
Building an image
Conclusions
Q&A
4. Yocto Project Summit 2021, Leon Anavi, Surfing on an Interactive Kiosk
Web Browser Market Share
5. Yocto Project Summit 2021, Leon Anavi, Surfing on an Interactive Kiosk
Yocto/OE Layer for Mainstream Web Browsers
meta-browser
https://github.com/OSSystems/meta-browser
Available in GitHub under MIT license
Sub-layer with recipes for Chromium
Sub-layer with recipes for Firefox
6. Yocto Project Summit 2021, Leon Anavi, Surfing on an Interactive Kiosk
Surf Web Browser
Minimalist web browser
No graphical control elements
Controlled via keyboard shortcuts or external tools
Based on WebKit2/GTK+
Developed by suckless.org
Initial release in 2009
Available under MIT License
7. Yocto Project Summit 2021, Leon Anavi, Surfing on an Interactive Kiosk
Surf in meta-openembedded/meta-oe
8. Yocto Project Summit 2021, Leon Anavi, Surfing on an Interactive Kiosk
Surf Web Browser
Requirements:
Requires X11 and OpenGL
Depends on WebKitGTK, GTK+ 3, glib-2.0 and gcr
WebKitGTK is a full-featured port of the WebKit2 rendering engine
9. Yocto Project Summit 2021, Leon Anavi, Surfing on an Interactive Kiosk
Openbox
Highly configurable stacking window manager for X11
Written in C and XML for configurations, licensed under GPLv2
rc.xml - main configuration file of the overall session
menu.xml - configuration file for the desktop menu, accessible by
right-clicking the background
autostart – automatically starts applications
Recipe in meta-oe
http://openbox.org/
10. Yocto Project Summit 2021, Leon Anavi, Surfing on an Interactive Kiosk
Openbox Screenshot
Openbox
xterm
pcmanfm
gedit
surf
stalonetray
11. Yocto Project Summit 2021, Leon Anavi, Surfing on an Interactive Kiosk
Layers
Poky
meta-raspberrypi
meta-openembedded/meta-oe
meta-openembedded/meta-python
meta-openembedded/meta-networking
12. Yocto Project Summit 2021, Leon Anavi, Surfing on an Interactive Kiosk
Create a New Layer
Set up build environment:
source oe-init-build-env
Create a new layer:
bitbake-layers create-layer ../meta-my-kiosk
Add the new layer:
bitbake-layers add-layer ../meta-my-kiosk
Add other required layers
13. Yocto Project Summit 2021, Leon Anavi, Surfing on an Interactive Kiosk
Systemd Service for Surf
surf.service:
[Unit]
Description=Surf
After=display-manager.service
[Service]
Type=simple
EnvironmentFile=/etc/default/xserver-nodm
ExecStart=/usr/bin/surf https://www.yoctoproject.org/
TimeoutStartSec=120
Restart=on-failure
RestartSec=3
[Install]
WantedBy=graphical.target
14. Yocto Project Summit 2021, Leon Anavi, Surfing on an Interactive Kiosk
Systemd Service for Surf
surf_%.bbappend in meta-my-kiosk:
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += "file://surf.service"
inherit systemd
do_install_append() {
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${systemd_unitdir}/system
install -m 644 ${WORKDIR}/surf.service ${D}${systemd_unitdir}/system
fi
}
FILES_${PN} += "${systemd_unitdir}/scripts/"
SYSTEMD_SERVICE_${PN} = "surf.service"
15. Yocto Project Summit 2021, Leon Anavi, Surfing on an Interactive Kiosk
My Kiosk Image
core-image-kiosk
SUMMARY = "Interactive kiosk with X11, openbox and surf"
IMAGE_FEATURES += "splash package-management x11-base"
LICENSE = "MIT"
inherit core-image features_check
REQUIRED_DISTRO_FEATURES = "x11"
QB_MEM = '${@bb.utils.contains("DISTRO_FEATURES", "opengl", "-m 512", "-m
256", d)}'
IMAGE_INSTALL_append = "
kernel-modules
nano
openbox pcmanfm xterm surf xwd
"
16. Yocto Project Summit 2021, Leon Anavi, Surfing on an Interactive Kiosk
Building an Image
Set machine and enable UART at local.conf:
MACHINE = "raspberrypi4"
ENABLE_UART="1"
Switch to systemd at local.conf:
DISTRO_FEATURES_append = " systemd"
VIRTUAL-RUNTIME_init_manager = "systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
VIRTUAL-RUNTIME_initscripts = ""
Build the image:
bitbake core-image-kiosk
18. Yocto Project Summit 2021, Leon Anavi, Surfing on an Interactive Kiosk
Conclusions
The Yocto Project and OpenEmbedded provide a lot of different options for
creating interactive kiosk images
Surf web browser is an alternative of the mainstream web browsers for some very
specific use cases
Minimalist configuration with X11, Openbox and surf web browser is good and
easy option for implementing an interactive HTML5 kiosk on constrained
embedded Linux devices
TODO: software over the air updates, continuous integration, setup tool (google
repo/kas/git submodules/etc), templates for local.conf and bblayers, create distro
configuration...
19. Yocto Project Summit 2021, Leon Anavi, Surfing on an Interactive Kiosk
Thank You!
Useful links
https://surf.suckless.org/
http://openbox.org/wiki/Main_Page
http://git.openembedded.org/meta-openembedded
http://git.yoctoproject.org/cgit/cgit.cgi/meta-raspberrypi
http://git.yoctoproject.org/cgit/cgit.cgi/poky/
https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html
https://archive.fosdem.org/2020/schedule/event/ema_homebridge_with_yocto/