Christopher Obbard
June 27, 2024
Reading time:
Back in April, Collabora once again showcased at Embedded World 2024 in Nürnberg, Germany. Each year we bring a variety of interesting projects that we have recently worked on, including several devices that can be purchased off-the-shelf. For instance, the Bosch Wallscanner D-tect 200 and the Atari VCS video game system which both run the Apertis Operating System. We also showed other off-the-shelf products that Collabora have supported the development including the Valve Steam Deck™ and the Bosch eBike system.
This blog post goes into more detail about one of the demos that I prepared: the Board Farm, which showcases Collabora's recent hardware enablement and Continuous Integration (CI) efforts.
Collabora's Board Farm at Embedded World 2024. |
Collabora ensures the hardware that we enable is maintained in the various mainline open source projects, so that everyone in the community benefits from the changes. This effort is mostly the initial development, but also includes long-term maintenance: ensuring the software doesn't bitrot and continues to work in the future, long after the initial support is added. Of course, this is a huge undertaking and we are happy to support the free software community with these activities by contributing to projects such as KernelCI, MesaCI, and other community Continuous Integration projects where changes are automatically tested on real hardware in our testing lab to ensure regressions don't occur, reporting and fixing issues when they do happen. Please see my colleague Gustavo Padovan's blog post series where he describes our motivations around the work we are doing around open source project maintenance.
In this demo, we brought a cut-down version of our hardware lab to the show floor by using four off-the-shelf ARM64 development boards, with SoCs from different vendors, each with an LCD screen attached.
The devices under test used in this demo were:
Each of the devices ran a mainline-first Linux software stack, continuously tested thanks to the LAVA automated test framework which was running on a separate computer, hidden away. Each of the development boards were connected to this computer: LAVA has control over the power of the device, the ability to choose which kernel and filesystems are booted on the device under test, all while watching for errors along the way.
As I previously mentioned, Collabora has been working on enabling the development boards and SoCs used in this demo across the whole mainline open source software stack, the main components include:
While showing the hardware is well supported in the mainline open source stack, we also wanted to showcase the software tools Collabora use for continuous integration and testing of Linux-based systems. These include:
Since all of these components are free and open source software, we are free to modify the projects to support new hardware and suit the complicated testing requirements a project may have.
Joulescope UI at Embedded World 2024. |
We also used a Joulescope™ JS220 USB precision energy analyser, with its open source frontend, in our demo which allowed for energy measurements of one device under test.
Joulescope™ accurately and simultaneously measures the voltage and current supplied to the target device and then computes power and energy. For more information on Joulescope, see www.joulescope.com.
The purpose of using an energy monitor here was to understand how software changes may impact the overall energy usage of a device - which becomes ever more relevant with battery-powered devices.
The Joulescope™ multi-platform software is written in Python using the QT library and runs many major distributions. We successfully ran it on Debian by simply installing the software from the development repository.
The test job in this case is very simple: test the performance of the GPU using the vkmark Vulkan benchmarking suite. This suite shows various Vulkan scenes and measures the framerate. This can be used as a stress-test, to compare against different hardware, or as check to see if some regression has been introduced in your GPU driver.
08/10/2024
Having multiple developers work on pre-merge testing distributes the process and ensures that every contribution is rigorously tested before…
15/08/2024
After rigorous debugging, a new unit testing framework was added to the backend compiler for NVK. This is a walkthrough of the steps taken…
01/08/2024
We're reflecting on the steps taken as we continually seek to improve Linux kernel integration. This will include more detail about the…
27/06/2024
With each board running a mainline-first Linux software stack and tested in a CI loop with the LAVA test framework, the Farm showcased Collabora's…
26/06/2024
WirePlumber 0.5 arrived recently with many new and essential features including the Smart Filter Policy, enabling audio filters to automatically…
12/06/2024
Part 3 of the cmtp-responder series with a focus on USB gadgets explores several new elements including a unified build environment with…
Comments (0)
Add a Comment