This directory provides a bootloader image that loads a Linux initramfs that exports common block devices (EMMC, NVMe) as USB mass storage devices using the Linux gadget-fs drivers.
This allows Raspberry Pi Imager to be run on the host computer and write OS images to the Raspberry Pi or Compute Module block devices.
To run load the USB MSD device drivers via RPIBOOT run
cd mass-storage-gadget64
../rpiboot -d .
N.B. This takes a few seconds longer to initialise than the previous mass storage implementation. However, the write speed should be much faster now that all of the file-system code is running on the ARM processors.
The mass-storage-gadget image automatically enables a UART console for debugging (user root
empty password).
If secure-boot is enabled then boot.img
must be signed with the customer private key file.
KEY_FILE=$HOME/private.pem
../tools/rpi-eeprom-digest -i boot.img -o boot.sig -k "${KEY_FILE}"
The buildroot configuration and supporting patches is available on the mass-storage-gadget64 branch of the Raspberry Pi buildroot repo.
git clone --branch mass-storage-gadget [email protected]:raspberrypi/buildroot.git
cd buildroot
make raspberrypi64-mass-storage-gadget_defconfig
make
The output is written to output/target/images/sdcard.img
and can be copied
to boot.img