RAUC open-source OTA update solution for embedded Linux ported to Rock Pi 4 SBC

RAUC OTA firmware update Rock Pi 4

RAUC open-source OTA update solution enabling A/B updates for embedded Linux images has recently been ported to the Radxa Rock Pi 4 Model B SBC powered by a Rockchip OP1 SoC by the project’s maintainer, Leon Anavi working for Konsulto Group. If you run a Linux distribution like Ubuntu, Debian, or Fedora, packages and OS images are taken care of automatically or by running a few commands. However, software engineers who build custom embedded Linux images with the Yocto Project or Buildroot must handle this themselves. Luckily, there are already open-source OTA firmware update solutions such as Mender, Balena, Torizon, OSTree, Snap, or RAUC, and we’ll look at the latter today. RAUC (Robust Auto-Update Controller) was started by Pengutronix in 2015 and eventually adopted by the community. It’s a lightweight update client that runs on an Embedded Linux device and controls the A/B update procedure when a new firmware revision […]

QEMU 9.0 released with Raspberry Pi 4 support and LoongArch KVM acceleration

QEMU 9.0

QEMU 9.0 open-source emulator just came out the other day, and it brings on board major updates and improvements to Arm, RISC-V, HPPA, LoongArch, and s390x emulation. But the most notable updates are in Arm and LoongArch emulation. The QEMU 9.0 emulator now supports the Raspberry Pi 4 Model B, meaning you can run the 64-bit Raspberry Pi OS for testing applications without owning the hardware. However, QEMU 9.0 has some limitations since Ethernet and PCIe are not supported for the Raspberry Pi board. According to the developers, these features will come on board in a future release. For now, the emulator supports SPI and I2C (BSC) controllers. Still on ARM, QEMU 9.0 provides board support for the mp3-an536 (MPS3 dev board + AN536 firmware) and B-L475E-IOT01A IoT node, plus architectural feature support for Nested Virtualization, Enhanced Counter Virtualization, and Enhanced Nested Virtualization. If you develop applications for the LoongArch […]

Yocto Project 5.0 “Scarthgap” released with Linux 6.6 and plenty of changes

Yocto Project 5.0

The Yocto Project 5.0 codenamed “Scarthgap” has just been released with Linux 6.6, glibc 2.39, LLVM 18.1, and over 300 other recipe upgrades. As a result of the release, the developers have made it available for download (bz2 tarball). The Yocto Project, or Yocto for shorts, is a popular framework used to create custom embedded Linux distributions, and we’ve played with it over the year showing how to create a minimal image for the Raspberry Pi, and last year, we used it again when reviewing two industrial development boards, namely the VOIPAC IMX8M and ADLINK i-Pi SMARC 1200. Yocto is quite a powerful framework/build system with plenty of options that make it highly customizable, but the learning curve is fairly steep. Some other changes in Yocto Project 5.0 include: New variables: CVE_DB_INCR_UPDATE_AGE_THRES: Configure the maximum age of the internal CVE database for incremental update (instead of a full redownload). RPMBUILD_EXTRA_PARAMS: […]

QEMU 7.0 released with support for RISC-V KVM, Intel AMX, and more

QEMU 7.0

QEMU (Quick EMUlator) is an open-source emulator used to run OS or programs on various architectures such as Arm, RISC-V, and many others when you don’t own specific hardware, or for quick testing. The developers have released QEMU 7.0 a few days ago with over 2500 commits from 225 developers. New features include support for RISC-V KVM and vector extensions, Intel AMX (Advanced Matrix Extension), improved flexibility for fleecing backups, various new features for Arm, and many more. QEMU 7.0 highlights listed by the developers: ACPI: support for logging guest events via ACPI ERST interface virtiofs: improved security label support block: improved flexibility for fleecing backups, including support for non-qcow2 images ARM: ‘virt’ board support for virtio-mem-pci, specifying guest CPU topology, and enabling PAuth when using KVM/hvf ARM: ‘xlnx-versal-virt’ board support for PMC SLCR and emulating the OSPI flash memory controller ARM: ‘xlnx-zynqmp’ now models the CRF and APU control […]

Ubuntu 20.04/21.04 64-bit RISC-V released for QEMU, HiFive boards

Ubuntu RISC-V HiFive QEMU

Let’s a lot of excitement around RISC-V open architecture, but a lot of work still needs to be done to bring the ecosystem to level with Arm or x86 architecture from the silicon to the software. Progress is made step-by-step and one of these steps is Canonical released Ubuntu 64-bit RISC-V (RISCV64) images for some of SiFive HiFive boards, as well as QEMU open-source emulator. Specifically, Canonical released an Ubuntu 20.04.2 LTS image for HiFive Unleashed & QEMU, and an Ubuntu 21.04 image for HiFive Unleashed, HiFive Unmatched, and QEMU. Note those are only server images, and there’s no desktop image yet like for Ubuntu 21.04 on Raspberry Pi 2/3/4. It’s been possible to run RISC-V Linux in QEMU for at least three years, but when I tried it was a minimal system based on Busybox, so let’s try again with Ubuntu 21.04 following the instructions provided on Discourse. I […]

QEMU 5.0 Supports Recent Armv8.x Features, Cortex-M7 CPU, Host Directory Access, and More

Qemu 5.0

QEMU (Quick EMUlator) is an open-source emulator that’s great to run programs on various architectures such as Arm, RISC-V, and many others when you don’t own proper hardware. The developers have now released QEMU 5.0.0 will plenty of new features and such as support for Armv8.1 to Armv8.4 architectures, Arm Cortex-M7 processor, various changes to MIPS, PowerPC, RISC-V, s390… architectures, support for accessing a directory on the host filesystem from the guest using virtiofsd and more. There have been over 2800+ commits from 232 developers, so the list of changes to too long to write here, but some of the highlights include: Support for passing host filesystem directory to guest via virtiofsd Support for ARMv8.1 VHE/VMID16/PAN/PMU, ARMv8.2 UAO/DCPoP/ATS1E1/TTCNP, ARMv8.3 RCPC/CCIDX,  ARMv8.4 PMU/RCPC Added ARM Cortex-M7 CPU support New Arm boards: tacoma-bmc, Netduino Plus 2, and Orange Pi PC Allwinner SoC model now wires up the USB ports TPM support for […]

Getting Started with Embedded Linux on RISC-V in QEMU

RISC-V Linux QEMU Buildroot

RISC-V is getting more and more popular, but if you want to run Linux on actual hardware it’s currently fairly expensive since you either need to rely on HiFive Unleashed SBC ($999), or expensive FPGAs. Another solution is running Linux RISC-V via QEMU emulator,  and I showed how to do this using BBL (Berkeley Boot Loader),  Linux 4.14, and busybear rootfs. If you check the comments section of that earlier post you could also try out Fedora RISC-V images in QEMU. Bootlin has now published a presentation showing how to run embedded Linux on RISC-V in QEMU with many of the same components as in the previous instructions, but with a more up-to-date Linux kernel (5.4), and using Buildroot to build everything from scratch including the toolchain, BBL, the Linux kernel, and a Busybox based root file system. They explain each step in detail in the 45-page presentation to allow […]

Pantahub Enables Seamless, Remote Linux Firmware Updates Over-the-Air

Pantahub

Let’s say you’re running Raspbian on your Raspberry Pi 4 board, but would like to check out the latest Ubuntu 19.10 for the board. What would you normally have to do? After downloading the firmware and turning off your Raspberry Pi 4, you’d normally need physical access to your Raspberry Pi 4 to remove the MicroSD card, insert it into your computer and start balenaEtcher or other utility to flash the image. Once it’s done remove the MicroSD card from your PC and insert it back into the Raspberry Pi SBC, before booting it up. That’s fine for experimentation, but time-consuming if you had to do this for multiple boards that may be placed in various locations. That’s where Pantacor’s PantaHub, PantaVisor, and PVR utility come in. Pantahub is a web dashboard used for registration, to monitor your devices, and documentation, Pantavisor is an Alpine Linux based  device init system […]

UP 7000 x86 SBC