/images/bear.png

embear GmbH

From Hardware to Linux

This blog post is a collection of methods and ideas for doing hardware bringups. It is based on the presentation given at the Open Source Summit 2024. Introduction Bringing a new piece of custom hardware to life with an embedded Linux system is a challenging yet rewarding process known as “hardware bring-up.” “At its core, hardware bring-up is the process of bringing new hardware to life. When a hardware team finalizes a design and the first prototypes arrive, these are typically lifeless, and it’s the bring-up process that breathes life into them.

Using SWUpdate with Qt

In a previous article about software update, we gave a general overview of different update strategies. In this new article, we will take a closer look at SWUpdate and demonstrate how it can be used in conjunction with Qt to implement a partition swapping mechanism. Yocto Image In this article, we will create a Yocto image for the Toradex Verdin iMX8M Plus using the meta-embear layer. To create the image, we will need to follow these steps:

Concepts for updating embedded systems

If we build an embedded system we must have software updates in mind. There are a lot of reasons why we need to provide updates. It can be a bug that we didn’t catch during testing, it can be because there is a security issue in a third-party application or it can be because we want to provide new features. To keep embedded devices up to date we can use different update concepts which this article focuses on without seeing an actual implementation.

Accessing a DRM Framebuffer to display an image

When doing bring-ups on embedded devices a useful way to test if a display interface is working is this command: Apalis iMX6 $ dd if=/dev/urandom of=/dev/fb0 This shows random data on the display and a lot of gray, red, blue, and green dots appear. This doesn’t tell us if everything is working as expected because maybe the resolution is wrong or some timings are too tight but it gives already an indication if the display controller works and if the display gets some understandable data.

Booting RAM disk images over Ethernet

Using RAM disk images is useful in different stages of a project/product. When doing bring-ups we might want to use a RAM disks to initially boot Linux and then use Linux to partition the storage (eMMC, NAD-Flash). The advantage of using Linux instead of U-Boot is that we have more drivers available and often better read/write support for the media where we want to install our final image. But what is a RAM disk?

Why did my remote device reboot?

Imagine a remote system hundreds of kilometers away from civilization. A customer reports that their system sometimes reboots without any interaction and is then not reachable for several minutes. What was the trigger for the reboot? In this article, we look at a concept which uses reserved memory. It is quite generic and benefits from the fact that RAM does not lose data on a restart as long as it is not turned off and there are no other hardware/software mechanisms to clear the memory.