linux

Windows 11 Arm VMs on a Raspberry Pi, with BVM

With the release of a Windows 11 for Arm ISO, it's easier than ever to get an officially-supported install of Windows on many different Arm PCs—now including a Raspberry Pi.

The Windows on R seems like it has run out of steam, as many open source initiatives do, after years of being bludgeoned with support requests being the only way to really get Windows going on a Pi.

But GitHub user (and high-schooler) Botspot just emailed me his BVM project, short for 'Botspot Virtual Machine'.

BVM installing Windows 11 on a Raspberry Pi

Progress on Intel and Nvidia GPUs on Raspberry Pi

GPUs Intel Arc B580 next to Raspberry Pi 5

Nvidia GPUs have been running fine on Arm for a while now—I just upgraded the System76 Thelio Astra to an RTX 4080 Super and am testing it now.

But Nvidia seems to have a partnership with Ampere, which probably leads to their drivers getting priority support, and likely a few special edge cases in code to work around a couple PCIe quirks on the Altra CPUs. Nvidia also builds their own Arm CPUs—a lot of them—so Arm support is definitely a priority for them.

Benchmarking multiple network interfaces at once in Linux with iperf3

Recently, I've been working on a Pi router build with multiple 2.5 Gbps Ethernet ports using Radxa's Dual 2.5G Router HAT.

I wanted a simple way to check on total network TCP throughput using both interfaces (or really, as many interfaces as possible) to multiple computers on my network, and I noticed iperf3's --bind option (like --bind [ip address of interface]) was not splitting the traffic on both interfaces—it would just route all traffic through one!

Luckily, I found the issue Failing to bind to interface when multiple interfaces are present, and in it, @bmah888 mentioned the --bind-dev option, which is new as of iperf 3.10+.

Using that option (like --bind-dev [interface name]), you can force an instance of iperf3 to bind to one particular device. For example, assuming I have two servers on my network running iperf3 -s, I can run the following on the Pi to saturate both connections as much as the Pi will allow:

SiFive's HiFive Premier P550 is a strange, powerful RISC-V board

SiFive HiFive Premier P550 leaning on case

SiFive's HiFive Premier P550 is a strange board. It's the fastest RISC-V development board I've tested—though I haven't tested a Milk-V Megrez. It's also Mini DTX, which is an ATX-adjacent standard board size that won't fit in many Mini ITX SFF PC cases, which might be why SiFive and ESWIN are releasing a custom case for it (pictured above, which they sent along with the board for my review).

How to Recompile Linux (on a Raspberry Pi)

Because I get the same question on every video where I recompile the Linux kernel on a Pi to work on GPU or other hardware driver support, I finally made a video answering it:

How do you recompile Linux?

In my case, since I mostly rebuild the kernel for the Pi, I rebuild Raspberry Pi's Linux kernel fork instead of 'mainline' linux (the upstream Linux kernel source).

Raspberry Pi publishes a very thorough guide covering building and cross-compiling the Pi Linux kernel, and my video today mostly goes through that (with a few little tips on making the experience more convenient):

How to build Ollama to run LLMs on RISC-V Linux

RISC-V is the new entrant into the SBC/low-end desktop space, and as I'm in possession of a HiFive Premier P550 motherboard, I am running it through my usual gauntlet of benchmarks—partly to see how fast it is, and partly to gauge how far along RISC-V support is in general across a wide swath of Linux software.

From my first tests on the VisionFive 2 back in 2023 to today, RISC-V has seen quite a bit of growth, fueled by economics, geopolitical wrangling, and developer interest.

The P550 uses the ESWIN EIC7700X SoC, and while it doesn't have a fast CPU, by modern standards, it is fast enough—and the system has enough RAM and IO—to run most modern Linux-y things. Including llama.cpp and Ollama!

Compiling Ollama for RISC-V Linux

I'm running Ubuntu 24.04.1 on my P550 board, and when I try running Ollama's simple install script, I get:

Top 10 ways to monitor Linux in the console

btop colorful Linux graph

top (pictured below... above is btop) is the first utility everyone recommends to monitor Linux (or any form of UNIX, including macOS) resource usage. It's efficient, available almost everywhere... but it's also a bit basic. It shows essential metrics, but looks like it's from the 80s. There are ways to brighten it up, like highlighting active processes or changing color schemes, but it's not the only game in town!

Top running in Linux

Nowadays, there are a lot of modern monitoring tools—and some not so modern, but immensely useful—to choose from. This blog post will run through some of the ones I rely on most often. Let me know in the comments if you use any others I didn't cover!

The Pi 500 is much faster, but lacks M.2

Raspberry Pi this morning launched the Pi 500 and a new 15.6" Pi Monitor, for $90 and $100, respectively.

Pi 500 setup with monitor on desk

They're also selling a Pi 500 Kit, complete with a Power Supply, Mouse, and micro HDMI to HDMI cable, for $120. This is the first time Raspberry Pi is selling a complete package, where every part of a desktop computer could be Pi-branded—and makes me wonder if uniting all these parts into one could result in an eventual Pi Laptop...

Before we get too deep, no, the Pi 500 does not include a built-in M.2 slot. Sort-of.

Pi 500 PCB top side