The Wayback Machine - https://web.archive.org/web/20191003212802/https://github.com/raspberrypi/usbboot
Skip to content
Raspberry Pi USB booting code, moved from tools repository
C NSIS Makefile
Branch: master
Clone or download
ptesarik and ghollingworth Add support for Pi4 (#42)
The BCM2711 can also boot in USB device mode. Note that the boot ROM
code now sets the iSerialNumber to 3, but it does not expect the
second stage boot server, instead it downloads a single image over
USB.

Signed-off-by: Petr Tesarik <petr@tesarici.cz>
Latest commit ecb8797 Jul 16, 2019

Readme.md

USB boot code

This is the USB MSD boot code which should work on the Raspberry Pi model A, Compute Module, Compute module 3 and Raspberry Pi Zero.

This version of rpiboot has been modified to work from directories which contain the booting firmware. There is a default directory msd/ which contains bootcode.bin and start.elf to turn the Raspberry Pi device into a USB Mass Storage Device (MSD).

Building

Clone this on your Pi or an Ubuntu linux machine

$ git clone --depth=1 https://github.com/raspberrypi/usbboot
$ cd usbboot
$ sudo apt-get install libusb-1.0-0-dev
$ make
$ sudo ./rpiboot

Running your own (not MSD) build

If you would like to boot the Raspberry Pi with a standard build you just need to copy the FAT partition files into a subdirectory (it must have at the minimum bootcode.bin and start.elf). If you take a standard firmware release then this will at the very least boot the linux kernel which will then stop (and possibly crash!) when it looks for a filesystem. To provide a filesystem there are many options, you can build an initramfs into the kernel, add an initramfs to the boot directory or provide some other interface to the filesystem.

$ sudo ./rpiboot -d boot

This will serve the boot directory to the Raspberry Pi Device.

You can’t perform that action at this time.