Flashing Pi Compute Module 4 with eMMC memory from a Mac

I have been using the Raspberry Pi since it was 1st generation.  But I bought my very first Raspberry Pi Compute Module 4 along with a cheap Carrier Board  .  There are all manner of cool carrier boards.  Just there is one problem.  You can’t actually buy any of them.  Supply Chain issues and stuff.  LGB.

And that extends to the Pi Compute Module as well.  There are a bunch of them……..but you can’t get ’em.

About the only one you CAN get right now is the CM4102032 with 2GB of Memory.  Here is the data sheet for the CM4’s.

While it has an SD card slot (TF card slot, actually)………you can’t boot from it.  Well, that’s new.

The eMMC memory has to be written to directly.  Let me show you how.

As with most things……….I didn’t discover this.  I am however documenting the steps I did for my own benefit here because I see more of this coming for me on the horizon.  If you stumble across this and it helps………Great!

The directions come from this web site.  If you click that link and never come back here………I get it.  Jeff Geerling is a Pi guru and a half.  His YouTube channel is a must see for Pi experimenters.  I’ve learned tons there.

Anyway I’m doing this from a Mac. You need to power your Carrier board and be able to hook your Mac to your Carrier board via USB.

A jumper must be set on the board.  nRPIBOOT must be hooked to ground.  Here’s what it looks like on the board I am using.

Pinheader 6.jpg

Then you have to go to your Mac terminal and type the following commands.  (HomeBrew needs to be installed first).

 brew install libusb


git clone --depth=1 https://github.com/raspberrypi/usbboot

Then cd into the usbboot directory and issue a make command.

cd usbboot

Then finally run

sudo ./rpiboot

Now provided you are hooked to your computer via USB your eMMC memory space will appear as an external disk and can be selected in Raspberry Pi Imager.

Done. Bob = Uncle.

2 thoughts on “Flashing Pi Compute Module 4 with eMMC memory from a Mac

  1. Russell

    I am using the same carrier board as you – the router board and there is an additional step that needs to happen with the jumper on nRPIBOOT and that is the jumper for “host” or “device” – it needs to be on “device” for that specific board. I was having a hell of a time trying to figure that one out. Thanks for the write up!

  2. Peter

    This procedure does not work with macOS 13 & 14. See the comment under the mentioned article by Jeff:
    “On macOS Monterey, before running make in usbboot, run ‘brew install pkg-config’.”
    Otherwise you will run into an error.


Leave a Reply

Your email address will not be published. Required fields are marked *