How to flash Raspberry Pi OS onto the Compute Module 4 eMMC with usbboot

The Raspberry Pi Compute Module 4 comes in two main flavors: one with built-in eMMC storage, and one without it. If you opt for a Compute Module 4 with built-in eMMC storage, and you want to write a new OS image to the Compute Module, or manually edit files on the boot volume, you can do that just the same as you would a microSD card—but you need to first make the eMMC storage mountable on another computer.

This blog post shows how to mount the eMMC storage on another computer (in my case a Mac, but the process is very similar on Linux), and then how to flash a new OS image to it.

Video Instructions

In addition to the tutorial below, I published a video version of this post covering installation and usage of rpiboot for flashing the eMMC on Windows, Ubuntu, Raspberry Pi OS, or macOS:

The fastest USB storage options for Raspberry Pi

For years, I've been maintaining benchmarks for microSD cards on the Raspberry Pi, but I only spent a little time testing external USB storage, due to historic limitations with the Pi's USB 2.0 bus.

But the Pi 4 cleared away the limitations with a full-speed USB 3.0 bus offering much better performance, so I've done a lot of testing with USB boot, and with all the USB SSDs I had at my disposal. You can see some of those results in this blog post and video on booting a Pi 4 via USB.

After posting my tests concerning UASP support in USB SATA adapters, I got an email from Rob Logan mentioning the performance of some other types of drives he had with him. And he even offered to ship a few drives to me for comparisons!

There's also a video that accompanies this blog post, for the more visually-inclined:

Flashing a Raspberry Pi Compute Module on macOS with usbboot

I recently got to play around with a Turing Pi, which uses Raspberry Pi Compute Modules to build a cluster of up to 7 Raspberry Pi nodes.

Turing Pi Raspberry Pi 7 nodes of Compute Modules

Interested in learning more about building a Turing Pi cluster? Subscribe to my YouTube channel—I'm going to be posting a series on the Turing Pi and Rasbperry Pi clustering in the next few weeks!

You can buy Compute Modules with or without onboard eMMC memory. If you don't have memory, you can attach a microSD card and boot from it, just like you would on any Raspberry Pi model B or model A. But if you have the eMMC memory, it's nice to be able to 'flash' that memory with an OS, so the compute module uses the onboard storage and doesn't require a separate boot device (either microSD card or USB disk).

How to overclock the microSD card reader on a Raspberry Pi 3

Late last year, I published a blog post with comprehensive benchmarks of various microSD cards used with the internal Raspberry Pi 2 reader, based on the comprehensive (and always-up-to-date Raspberry Pi microSD card benchmark page I maintain for the Pi Dramble project). After publishing the blog post, a few different readers pointed me to some overclocking tweaks that could help boost the speeds further for UHS microSD cards, allowing large file I/O speed to double, and random I/O to get a solid boost as well.

Mounting a Raspberry Pi's ext4 SD card on Ubuntu 14.04 inside VirtualBox on Mac OS X

Since I'm running a Mac, and don't have a spare linux-running machine that can mount ext4-formatted partitions (like those used by default for official Raspberry Pi distributions like Raspbian on SD cards), I don't have a simple way to mount the boot partition on my Mac to tweak files on the Pi; this is a necessity if, for example, you break some critical configuration and the Pi no longer boots cleanly.

To mount an ext4-formatted SD or microSD card on a Mac, the easiest option is to use VirtualBox (and, in my case, Vagrant with one of Midwestern Mac's Ubuntu boxes). Boot a new linux VM (any kind will do, as long as it's modern enough to support ext4), shut it down, go into Settings for the VM inside VirtualBox and enable USB, then reboot.

Follow these steps once the VM is booted, to mount the flash drive:

Running a Windows XP VM in Parallels (Mac) from a USB Flash Drive

I thought I'd post my experience here, for the benefit of others, because I couldn't find a whole lot of information about this specific use of an external USB flash drive.

I have a MacBook Air with a dainty 128GB SSD drive, so I try to keep large files that I rarely use on external drives. I have plenty of external USB and FireWire storage (over 6 TB), and running VMs in either Parallels or VMWare Fusion works great (very highly performant) off any of these external drives.

However, there's no way I'm going to lug around an external hard drive and USB cable (and maybe power adapter) just so I can test things in Internet Explorer (basically, the only use I have for Windows).

Flash Drive to the Rescue!

I found a cheap 32GB USB flash drive that only sticks out of my MacBook Air half an inch, and copies at a consistent rate of 30MB/second (which is quite sufficient for most tasks). Also, the little drive should have very good read performance, since it's not a spinning platter. Write speed wouldn't be anything to brag about, but writing shouldn't happen all that often when simply opening up Internet Explorer—I hope!

How to Stream from Tricaster Broadcast/Pro to Ustream.tv or Watershed

How to Stream from Tricaster Broadcast/Pro to Ustream.tv

The following instructions are based on this video, embedded below:

Preliminary Notes:

  •  You need at least version 2.5 of Tricaster software.
  •  Download 2.5 or later at register.newtek.com (go to my downloads).
  •  For Watershed, the process is similar, but you need to get the Flash XML file from Watershed directly.

First, you'll need to turn on the Tricaster, and make sure it's connected to the Internet. You should also try to make sure you have a relatively decent (and stable) Internet connection, for obvious reasons. Some problems may be caused by a restrictive firewall, as well, so watch out for that. (Check your Internet upload speed using Speedtest.net - you should have at least 300-500 kbps upload).

A Good Reason to Not Use Flash

Flash resource hogging bytes

Need I say more? This is from a cookie-cutter Wordpress site with some flash mixed in with a template. The flash was only added to make a little transitional animation for the navigation bar.

HTML5, and heck, even CSS3 or simple JavaScript (using jQuery) would enable the above-mentioned site to quickly and easily enable the same animations and transitions, using only a few hundred bytes of code. Seeing that jQuery was already loaded on the site, it makes a heck of a lot more sense than using Flash.

We need to educate web designers on how they can break free from their Flash comfort zone, save a few hundred bucks in software licenses every year, and make their websites load two to three times faster (not to mention, more quickly and without requiring buggy third party extensions).

95% of Flash use is avoidable and unnecessary, in my opinion.

Take Better Photos of Inanimate Objects

Forks with Flash and Ambient Light

Ever wonder why your pictures of little items like statues, money, a speaker set, a glass of water, or pretty much anything else in the world that doesn't move often look so washed out and flat? I'm betting that the reason is that you are setting your camera to 'nuke' mode (i.e. blast everything with light from the flash).

Well, I have a quick, and most likely free (if you own a tripod) solution to this problem. And it's pretty darn easy to implement. Here's how you do it: