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 you to customize your final firmware to your requirements for …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

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 that turns all the runtime into a set of container …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

FreeRTOS Kernel Now Supports RISC-V Architecture

FreeRTOS RISC-V

FreeRTOS is one of the most popular operating systems found in embedded systems, and RISC-V open architecture is getting more and more traction, so it should come as no surprise that Amazon has now added RISC-V to their recently acquired FreeRTOS kernel. Jeff Barr, Chief Evangelist for AWS, explains both 32-bit and 64-bit RISC-V cores are supported, and several RISC-V boards are already supported out of the box: The kernel supports the RISC-V I profile (RV32I and RV64I) and can be extended to support any RISC-V microcontroller. It includes preconfigured examples for the OpenISA VEGAboard, QEMU emulator for SiFive’s HiFive board, and Antmicro’s Renode emulator for the Microchip M2GL025 Creative Board. There’s no a lot of information on Amazon announcement post, but FreeRTOS website has plenty of resources to help you get started with RISC-V. The page also lists some of the key features of the RISC-V port: Supports machine mode integer execution on 32-bit RISC-V cores only, but is …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

QEMU 2.12 Released with Raspberry Pi 3, RISC-V Support

QEMU is open source machine emulator and virtualizer, which I used in the past at a time when Arm boards were more expensive or hard to get than today, and more recently I tested RISC-V Linux using QEMU (fork). QEMU 2.12 has now been released with some interesting new features including RISC-V support, and initial support for Raspberry Pi 3 machine model. The Changelog is rather long, but some other notable changes include: Cortex-M33 Armv8-M emulation, used by the new mps2-an505 board. Support for various AArch64 v8.1/v8.2/v8.3 extensions. Initial support for Raspberry Pi 3 machine model i.MX7 SoC and i.MX7 Sabre board emulation. Spectre/Meltdown mitigation support for x86/pseries/s390 guest Intel IOMMU support for 48-bit addresses Many SD card emulation cleanups and bugfixes. Etc.. You can get the source code and build instructions in the download page. If you are interested in running Debian on RPI 3 model, or/and want to find out more about RISC-V support, you may want to …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

How to Run Linux on RISC-V with QEMU Emulator

RISC-V open source architecture is starting to become more and more interesting thanks the growing RISC-V hardware & software ecosystem, and with the recent release of HiFive Unleashed, we even have a board capable of running Linux. The only problem: it costs $999. But luckily, it’s possible to experiment with Linux on RISC-V without extra hardware, just using your current PC. Imperas offers a commercial solution working on both Windows and Linux that relies on busybear-linux RISC-V Linux root filesystem comprised of busybox and dropbear SSH server. The rootfs also works with QEMU, so I tried it in Ubuntu 16.04. The instructions on Github are quite easy to follow. My computer is powered by an AMD FX8350 processor coupled with 16GB RAM, and the whole process took around 2 hours, so better use the fastest computer possible. It also requires around 26 GB of storage on your build machine. First, let’s create a working directory, and retrieve the RISC-V toolchain: …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

How to Run Ubuntu 16.04 Aarch64 (64-bit ARM) Cloud Images on Your Intel/AMD Linux Computer with QEMU

With the recent launch of several low cost Cortex A53 development boards, 64-bit ARM hardware is now pretty common and inexpensive, but if you want to run 64-bit ARM code on your x86 Linux computer, Riku Voipio, a software engineer working for Linaro, wrote some instructions to run Ubuntu 16.04 Aarch64 Cloud image in QEMU. Ubuntu cloud images are “the official Ubuntu images and are pre-installed disk images that have been customized by Ubuntu engineering to run on public clouds that provide Ubuntu Certified Images, Openstack, LXD, and more. ”  So the instructions are also useful if you want to easily try such packages on 64-bit ARM platform. I’ve tried those instructions myself on my Ubuntu 14.04 machine with and AMD FX8350 processor, and they worked pretty well, and the only things I had to find out by myself was to install a recent version of qemu. First, we’ll need to install qemu & cloud-utils, and download QEMU EFI firmware  …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Run x86 Linux and Windows Applications in Raspberry Pi and other ARM Linux Devices with Exagear

A few weeks ago, I finally decided to buy a Raspberry Pi 2 board as it could always be useful for some testing, at least for comparison purpose. I ended up buying it from Ebay for $40, as it’s more $3 to $5 more expensive locally. Nevertheless I was not sure what I’ll use it first for, but after seeing a tweet for Exagear Desktop software that allows ARM boards to run x86 Linux or Windows applications, the later through wine. The program is available for Raspberry Pi, Raspberry Pi 2, and ARMv7 devices for $19.95 to $29.95. I asked for version for testing purpose, and I was given a Google Drive link to download Exagear for Raspberry Pi 2, as well as a 3-month trial key. Installation is very easy. I started by downloading and installing Raspbian Jessie the usual way on a 32GB micro SD card. It went pretty smoothly, and after installation I had to run raspi-config …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

How to Build and Run Android L 64-bit ARM in QEMU

[Nov, 2014 Update: The method below does not seem to work anymore, but a 64-bit ARM emulator “emulator64-arm64” has now landed in AOSP, and updated instructions are available here]. Most people can’t afford Juno Cortex A57/A53 development board, and mobile processors based on the latest 64-bit ARM cores are only expected by early 2015. But thanks to a small team at Linaro, you can now build and run Android L 64-bit ARM in the latest version of QEMU that supports Aarch64. Alex Bennée, an engineer working for Linaro, wrote a blog post in Linaro’s Core Dump blog explaining the Android emulator is actually based on QEMU,  the differences compared to mainline QEMU, the work they’ve done on Android L at Linaro, and most importantly, provided the basic steps showing how to build and try Android L 64-bit ARM (ARMv8) in QEMU. I’ve just done that, but unfortunately, albeit the builds complete, I could not manage to start Android L in …

Support CNX Software – Donate via PayPal or become a Patron on Patreon