We have recently developed and now maintain the meta-morello Yocto layer for ARM’s Morello board which has now became part of the official software stack. The layer is capable of providing the firmware image that goes on the SD card and a bootable image with Linux that goes on the USB stick, these two images …
Category: Linux
ARM Morello with Linux
ARM has recently made their Morello development on the Linux kernel public and since we are lucky enough to have access to the Morello board we decided to give this a spin. This is in contrast to our last blog post which used an Android stack and ran in a simulator. Kernel development in the …
Understanding why USB Isochronous Bandwidth Errors Occur
A recent customer asked us to make sense of USB bandwidth errors that prevented them from streaming multiple USB audio and video streams simultaneously. Their GStreamer pipelines would fail and a “uvcvideo: Failed to submit URB 0 (-28).” message would be seen in dmesg. The interesting part is that the errors would only occur if …
PCIe DMA Attack against a secured Jetson Nano (CVE-2022-21819)
Congratulations! Your Jetson Nano (T210) product is finished and ready to ship worldwide. Secure boot is enabled, Linux and it’s bootloaders are locked down and the file system holding your precious IP is encrypted. Even JTAG is disabled with an OTP (One-Time-Programmable) security fuse. Yet, lurking in the Jetson Nano’s Linux kernel is a PCIe …
Edge AI: Image Classification on a Coral Dev Board
There are many benefits in moving artificial intelligence from the cloud to the local device – these include improvements to privacy, security, speed and reliability. However, device local AI (Edge AI and Endpoint AI) has only become possible thanks to improvements in both the computing abilities of embedded devices and improvements in the field of …
Reducing Boot Time with systemd
It’s no surprise that systemd has become the init system of choice for both embedded and desktop Linux distributions – it’s modern, packed full of features and is able to replace an ever increasing number of ancient utilities and daemons. When compared to it’s predecessor (SysVinit) – it also provides a much greater scope for …
Stop using /sys/class/gpio – it’s deprecated
The well known /sys/class/gpio interface has been around since version 2.6.27 of the kernel – way back in 2008. It provides an easy to use, file-based means of accessing GPIO from user-space. In the embedded Linux space it’s commonly used by applications to directly interact with hardware and most engineers can probably recount times where …
Linux Ethernet phy-mode Bindings Explained
Whilst on the user side Ethernet is a pretty easy to grasp standard, most people’s experience is either the now ubiquitous 8pin RJ45 interface or at a higher end of the speed scale possibly SPF/QSFP and fibre optic links. However on the other side of the simple connector, inside the box, there are a multitude …
Keeping Track of Time with Systemd
Nearly all smart devices obtain and keep track of time – it’s something that ‘just works’ and something which we often take for granted. Yet under-the-hood there is a surprising amount of complexity – software needs to obtain an accurate external source of time (e.g. NTP), it needs to handle drift and gradual synchronisation between …
Filesystem Encryption on a Jetson Nano
NVIDIA’s Jetson Nano (NVIDIA X1 CPU) platform is one of the most popular embedded systems for any application that involves video processing. The standard development environment for it is a Ubuntu based system, whilst this is fine for simple development and prototyping, it is not really ideal for a serious production ready embedded device based …