Expand USB/NVMe boot docs with EEPROM reference and boot order table
+55
-16
@@ -17,33 +17,72 @@ sudo apt install gcc-aarch64-linux-gnu build-essential flex bison libssl-dev bc
|
|||||||
|
|
||||||
## Build Modes
|
## Build Modes
|
||||||
|
|
||||||
| Command | Description | Time |
|
| Build Flag | Target | Use Case | Time |
|
||||||
|---------|-------------|------|
|
|---|---|---|---|
|
||||||
| `./build/build.sh` | Full build with PREEMPT_RT kernel | 30-45 min |
|
| (none) | SD Card (default) | Development / testing | 30-45 min |
|
||||||
| `./build/build.sh --skip-kernel` | Quick build, stock kernel | 10-15 min |
|
| `--skip-kernel` | SD Card (stock kernel) | Quick iteration | 10-15 min |
|
||||||
| `./build/build.sh --target usb` | Build for USB SSD boot | 30-45 min |
|
| `--target usb` | USB 3.0 SSD | Portable, shares USB with audio | 30-45 min |
|
||||||
| `./build/build.sh --target nvme` | Build for NVMe HAT (NVMe driver included) | +1 min |
|
| `--target nvme` | NVMe HAT | **Production** — PCIe, no bus contention | 30-45 min |
|
||||||
| `./build/build.sh --kernel-only` | Only build RT kernel | 10-15 min |
|
| `--kernel-only` | Kernel only | Custom RT kernel builds | 10-15 min |
|
||||||
|
|
||||||
## Flashing
|
## Flashing
|
||||||
|
|
||||||
### SD Card
|
### Linux
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
# SD Card:
|
||||||
sudo dd if=build/out/rpi-audio-mixer-*.img of=/dev/mmcblk0 bs=4M status=progress conv=fsync
|
sudo dd if=build/out/rpi-audio-mixer-*.img of=/dev/mmcblk0 bs=4M status=progress conv=fsync
|
||||||
```
|
|
||||||
|
|
||||||
### USB SSD
|
# USB SSD:
|
||||||
```bash
|
|
||||||
sudo dd if=build/out/rpi-audio-mixer-*.img of=/dev/sda bs=4M status=progress conv=fsync
|
sudo dd if=build/out/rpi-audio-mixer-*.img of=/dev/sda bs=4M status=progress conv=fsync
|
||||||
# Then on Pi: sudo rpi-eeprom-config --edit → BOOT_ORDER=0xf41
|
|
||||||
|
# NVMe HAT:
|
||||||
|
sudo dd if=build/out/rpi-audio-mixer-*.img of=/dev/nvme0n1 bs=4M status=progress conv=fsync
|
||||||
```
|
```
|
||||||
|
|
||||||
### NVMe HAT
|
### macOS
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo dd if=build/out/rpi-audio-mixer-*.img of=/dev/nvme0n1 bs=4M status=progress conv=fsync
|
xz -d build/out/rpi-audio-mixer-*.img.xz
|
||||||
# Then on Pi: sudo rpi-eeprom-config --edit → BOOT_ORDER=0xf614
|
diskutil list
|
||||||
|
diskutil unmountDisk /dev/diskX
|
||||||
|
sudo dd if=build/out/rpi-audio-mixer-*.img of=/dev/rdiskX bs=4m status=progress
|
||||||
|
diskutil eject /dev/diskX
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
Use [Raspberry Pi Imager](https://www.raspberrypi.com/software/) or [balenaEtcher](https://www.balena.io/etcher/).
|
||||||
|
|
||||||
|
## Configuring EEPROM Boot Order
|
||||||
|
|
||||||
|
The RPi4B boots from SD card by default. To boot from USB or NVMe, configure the EEPROM once:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Check current
|
||||||
|
sudo rpi-eeprom-config
|
||||||
|
|
||||||
|
# Edit
|
||||||
|
sudo rpi-eeprom-config --edit
|
||||||
|
```
|
||||||
|
|
||||||
|
| Boot Order | Sequence |
|
||||||
|
|---|---|
|
||||||
|
| `BOOT_ORDER=0xf41` | USB → SD → Restart |
|
||||||
|
| `BOOT_ORDER=0xf614` | NVMe → USB → SD → Restart |
|
||||||
|
|
||||||
|
### First-Boot Bootstrap
|
||||||
|
|
||||||
|
Without a working SD card, flash RPiOS Lite to a temporary SD, boot, configure EEPROM, then switch to your USB/NVMe drive.
|
||||||
|
|
||||||
|
### Boot Device Codes
|
||||||
|
|
||||||
|
- `0x0` = SD Card (SDIO)
|
||||||
|
- `0x1` = USB Mass Storage
|
||||||
|
- `0x2` = NVMe (PCIe)
|
||||||
|
- `0x6` = Network (PXE)
|
||||||
|
- `0xf` = Stop/Restart
|
||||||
|
|
||||||
## First Boot
|
## First Boot
|
||||||
|
|
||||||
The setup wizard runs automatically and configures:
|
The setup wizard runs automatically and configures:
|
||||||
@@ -52,4 +91,4 @@ The setup wizard runs automatically and configures:
|
|||||||
3. Hostname
|
3. Hostname
|
||||||
4. API key
|
4. API key
|
||||||
5. JACK buffer/latency
|
5. JACK buffer/latency
|
||||||
6. **EEPROM boot order** (USB/NVMe option)
|
6. EEPROM boot order (USB/NVMe option)
|
||||||
|
|||||||
+28
-7
@@ -3,7 +3,7 @@
|
|||||||
## Raspberry Pi
|
## Raspberry Pi
|
||||||
|
|
||||||
| Model | Status |
|
| Model | Status |
|
||||||
|-------|--------|
|
|---|---|
|
||||||
| Pi 4B (8GB) | ✅ Primary target |
|
| Pi 4B (8GB) | ✅ Primary target |
|
||||||
| Pi 4B (4GB) | ✅ Supported |
|
| Pi 4B (4GB) | ✅ Supported |
|
||||||
| Pi 5 | ⚠️ Untested |
|
| Pi 5 | ⚠️ Untested |
|
||||||
@@ -11,25 +11,31 @@
|
|||||||
|
|
||||||
## Storage / Boot Media
|
## Storage / Boot Media
|
||||||
|
|
||||||
| Media | Target | Bus | Recommendation |
|
| Media | Build Flag | Bus | Recommendation |
|
||||||
|-------|--------|-----|----------------|
|
|---|---|---|---|
|
||||||
| A2 SD Card | `--target sd` | SDIO | Dev/testing |
|
| A2 SD Card | `--target sd` (default) | SDIO | Dev/testing |
|
||||||
| USB 3.0 SSD | `--target usb` | USB 3.0 | Portable use |
|
| USB 3.0 SSD | `--target usb` | USB 3.0 | Portable use |
|
||||||
| NVMe SSD + HAT | `--target nvme` | PCIe | **Production** |
|
| NVMe SSD + HAT | `--target nvme` | PCIe | **Production** |
|
||||||
|
|
||||||
### NVMe HATs
|
### NVMe HATs
|
||||||
|
|
||||||
| HAT | Size | Price |
|
| HAT | Size | Price |
|
||||||
|-----|------|-------|
|
|---|---|---|
|
||||||
| Official RPi NVMe Base | 2230/2242 | ~€15 |
|
| Official RPi NVMe Base | 2230/2242 | ~€15 |
|
||||||
| Pimoroni NVMe Base | 2230/2242 | ~€15 |
|
| Pimoroni NVMe Base | 2230/2242 | ~€15 |
|
||||||
| Geekworm X1001 | 2230 | ~€12 |
|
| Geekworm X1001 | 2230 | ~€12 |
|
||||||
| Geekworm X1002 | 2242/2280 | ~€15 |
|
| Geekworm X1002 | 2242/2280 | ~€15 |
|
||||||
|
|
||||||
|
### USB SSD Considerations
|
||||||
|
|
||||||
|
- Shares the USB 3.0 bus with audio interface — test for xruns under load
|
||||||
|
- Self-powered USB 3.0 enclosure recommended
|
||||||
|
- Run at 48kHz/128-frame buffer minimum
|
||||||
|
|
||||||
## USB Audio Interfaces
|
## USB Audio Interfaces
|
||||||
|
|
||||||
| Interface | I/O | Status |
|
| Interface | I/O | Status |
|
||||||
|-----------|-----|--------|
|
|---|---|---|
|
||||||
| Behringer UMC1820 | 18/20 | ✅ Verified |
|
| Behringer UMC1820 | 18/20 | ✅ Verified |
|
||||||
| Behringer UMC404HD | 4/4 | ✅ Verified |
|
| Behringer UMC404HD | 4/4 | ✅ Verified |
|
||||||
| Focusrite Scarlett 18i20 (3rd Gen) | 18/20 | ✅ Verified |
|
| Focusrite Scarlett 18i20 (3rd Gen) | 18/20 | ✅ Verified |
|
||||||
@@ -41,7 +47,7 @@
|
|||||||
## Displays
|
## Displays
|
||||||
|
|
||||||
| Display | Connection | Status |
|
| Display | Connection | Status |
|
||||||
|---------|-----------|--------|
|
|---|---|---|
|
||||||
| Official RPi 7" Touch | DSI | ✅ Verified |
|
| Official RPi 7" Touch | DSI | ✅ Verified |
|
||||||
| Waveshare 5" HDMI | HDMI + USB touch | ✅ Verified |
|
| Waveshare 5" HDMI | HDMI + USB touch | ✅ Verified |
|
||||||
| Waveshare 7" HDMI | HDMI + USB touch | ✅ Verified |
|
| Waveshare 7" HDMI | HDMI + USB touch | ✅ Verified |
|
||||||
@@ -53,3 +59,18 @@ All USB class-compliant MIDI controllers work. Tested with:
|
|||||||
- FaderFox UC4
|
- FaderFox UC4
|
||||||
- Arturia BeatStep Pro
|
- Arturia BeatStep Pro
|
||||||
- Korg nanoKONTROL2
|
- Korg nanoKONTROL2
|
||||||
|
|
||||||
|
## EEPROM Boot Config (Quick Reference)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# SD boot (default)
|
||||||
|
BOOT_ORDER=0xf41 # SD → USB → Restart
|
||||||
|
|
||||||
|
# USB SSD boot
|
||||||
|
BOOT_ORDER=0xf41 # USB → SD → Restart
|
||||||
|
|
||||||
|
# NVMe HAT boot
|
||||||
|
BOOT_ORDER=0xf614 # NVMe → USB → SD → Restart
|
||||||
|
```
|
||||||
|
|
||||||
|
See the [[Build-Instructions]] wiki page for detailed setup steps.
|
||||||
|
|||||||
+6
-8
@@ -22,12 +22,10 @@
|
|||||||
|
|
||||||
## Boot Options
|
## Boot Options
|
||||||
|
|
||||||
The same image supports three boot targets:
|
The same image supports three boot targets. See [[Build-Instructions]] for flash commands and EEPROM configuration.
|
||||||
|
|
||||||
| Media | Build Flag | Recommendation |
|
| Media | Build Flag | Performance | Reliability |
|
||||||
|-------|-----------|----------------|
|
|---|---|---|---|
|
||||||
| SD Card | `--target sd` (default) | Development/testing |
|
| SD Card | `--target sd` (default) | Good — SDIO bus, some latency variation | Moderate — limited write endurance |
|
||||||
| USB SSD | `--target usb` | Portable, but shares USB bus with audio |
|
| USB SSD | `--target usb` | Good — shares USB with audio interface | Medium — test for xruns |
|
||||||
| NVMe HAT | `--target nvme` | **Production** — PCIe, no bus contention |
|
| NVMe HAT | `--target nvme` | **Best** — PCIe 2.0 x1 dedicated bus | **Best** — no bus contention |
|
||||||
|
|
||||||
See [[Build-Instructions]] for full build and flash guide.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user