Commit 314a141dbcdfe6b977a7ca83a0ab54630fb1e7f4
Committed by
GitHub
1 parent
02f4e89a
Copy edit
Ensure consistency within repo and with style guide.
Showing
1 changed file
with
13 additions
and
13 deletions
Readme.md
| 1 | -# USB device boot code | |
| 1 | +# USB Device Boot Code | |
| 2 | 2 | |
| 3 | -This is the USB MSD boot code which should work on the Raspberry Pi model A, Compute Module, Compute | |
| 3 | +This is the USB MSD boot code which supports the Raspberry Pi 1A, Compute Module, Compute | |
| 4 | 4 | Module 3, Compute Module 4 and Raspberry Pi Zero. |
| 5 | 5 | |
| 6 | 6 | The default behaviour when run with no arguments is to boot the Raspberry Pi with |
| 7 | 7 | special firmware so that it emulates USB Mass Storage Device (MSD). The host OS |
| 8 | -will treat this as a normal USB mass storage device allowing the file-system | |
| 8 | +will treat this as a normal USB mass storage device allowing the file system | |
| 9 | 9 | to be accessed. If the storage has not been formatted yet (default for Compute Module) |
| 10 | 10 | then the [Raspberry Pi Imager App](https://www.raspberrypi.com/software/) can be |
| 11 | 11 | used to install a new operating system. |
| 12 | 12 | |
| 13 | -Since `RPIBOOT` is a generic firmware loading interface it is possible to load | |
| 13 | +Since `RPIBOOT` is a generic firmware loading interface, it is possible to load | |
| 14 | 14 | other versions of the firmware by passing the `-d` flag to specify the directory |
| 15 | 15 | where the firmware should be loaded from. |
| 16 | 16 | E.g. The firmware in the [msd](msd/README.md) can be replaced with newer/older versions. |
| 17 | 17 | |
| 18 | -For more information run `rpiboot -h` | |
| 18 | +For more information run `rpiboot -h`. | |
| 19 | 19 | |
| 20 | 20 | ## Building |
| 21 | 21 | |
| 22 | 22 | ### Linux / Cygwin / WSL |
| 23 | -Clone this on your Pi or a Linux machine. | |
| 23 | +Clone this repository on your Pi or other Linux machine. | |
| 24 | 24 | Make sure that the system date is set correctly, otherwise Git may produce an error. |
| 25 | 25 | |
| 26 | 26 | ``` |
| ... | ... | @@ -31,7 +31,7 @@ make |
| 31 | 31 | sudo ./rpiboot |
| 32 | 32 | ``` |
| 33 | 33 | |
| 34 | -sudo isn't required if you have write permissions for the `/dev/bus/usb` device. | |
| 34 | +`sudo` isn't required if you have write permissions for the `/dev/bus/usb` device. | |
| 35 | 35 | |
| 36 | 36 | ### macOS |
| 37 | 37 | From a macOS machine, you can also run usbboot, just follow the same steps: |
| ... | ... | @@ -63,7 +63,7 @@ Otherwise, the SPI EEPROM bootloader image will be loaded instead. |
| 63 | 63 | |
| 64 | 64 | |
| 65 | 65 | <a name="extensions"></a> |
| 66 | -## Compute Module 4 extensions | |
| 66 | +## Compute Module 4 Extensions | |
| 67 | 67 | In addition to the MSD functionality, there are a number of other utilities that can be loaded |
| 68 | 68 | via RPIBOOT on Compute Module 4. |
| 69 | 69 | |
| ... | ... | @@ -79,7 +79,7 @@ via RPIBOOT on Compute Module 4. |
| 79 | 79 | **The `secure-boot-msd`, `rpi-imager-embedded` and `mass-storage-gadget` extensions require that the `2022-04-26` (or newer) bootloader EEPROM release has already been written to the EEPROM using `recovery.bin`** |
| 80 | 80 | |
| 81 | 81 | ## Booting Linux |
| 82 | -The `RPIBOOT` protocol provides a virtual file-system to the Raspberry Pi bootloader and GPU firmware. It's therefore possible to | |
| 82 | +The `RPIBOOT` protocol provides a virtual file system to the Raspberry Pi bootloader and GPU firmware. It's therefore possible to | |
| 83 | 83 | boot Linux. To do this, you will need to copy all of the files from a Raspberry Pi boot partition plus create your own |
| 84 | 84 | initramfs. |
| 85 | 85 | On Raspberry Pi 4 / CM4 the recommended approach is to use a `boot.img` which is a FAT disk image containing |
| ... | ... | @@ -92,12 +92,12 @@ WARNING: If the `revoke_devkey` option is used to revoke the ROM development key |
| 92 | 92 | not be possible to downgrade to a bootloader older than 2022-01-06 OR disable secure-boot mode. |
| 93 | 93 | |
| 94 | 94 | ### Tutorial |
| 95 | -Creating a secure-boot system from scratch can be quite complex. The [secure-boot tutorial](secure-boot-example/README.md) uses a minimal example OS image to demonstrate how the Raspberry Pi specific aspects of secure-boot work. | |
| 95 | +Creating a secure boot system from scratch can be quite complex. The [secure boot tutorial](secure-boot-example/README.md) uses a minimal example OS image to demonstrate how the Raspberry Pi-specific aspects of secure boot work. | |
| 96 | 96 | |
| 97 | -### Host setup | |
| 97 | +### Host Setup | |
| 98 | 98 | Secure boot require a 2048 bit RSA asymmetric keypair and the Python `pycrytodomex` module to sign the EEPROM config and boot image. |
| 99 | 99 | |
| 100 | -#### Install Python Crypto support (the pycryptodomex module) | |
| 100 | +#### Install Python Crypto Support (the pycryptodomex module) | |
| 101 | 101 | ```bash |
| 102 | 102 | python3 -m pip install pycryptodomex |
| 103 | 103 | # or |
| ... | ... | @@ -130,7 +130,7 @@ package supports secure boot. To download the firmware files directly. |
| 130 | 130 | A helper script (`make-boot-image`) is provided to automate the image creation process. This |
| 131 | 131 | script depends upon the `mkfs.fat` and `losetup` tools and only runs on Linux. |
| 132 | 132 | |
| 133 | -### Root file-system | |
| 133 | +### Root File System | |
| 134 | 134 | Normally, the Kernel modules and overlays for a secure-boot system would be provided |
| 135 | 135 | in an [initramfs](https://www.raspberrypi.com/documentation/computers/config_txt.html#initramfs) |
| 136 | 136 | and built with [buildroot](https://buildroot.org/) or [yocto](https://www.yoctoproject.org/). | ... | ... |