Skip to content

Commit 7be42ba

Browse files
committed
chore(docs): reorganize setup guides
1 parent 8a6f4dc commit 7be42ba

6 files changed

Lines changed: 50 additions & 26 deletions

File tree

README.md

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ existing UEFI bootloader or booted by the hardware directly.
1818

1919
Sprout is licensed under Apache 2.0 and is open to modifications and contributions.
2020

21+
**NOTE**: Sprout is still in beta. Some features may not work as expected.
22+
Please [report any bugs you find](https://github.com/edera-dev/sprout/issues/new/choose).
23+
2124
## Background
2225

2326
At [Edera] we make compute isolation technology for a wide variety of environments, often ones we do not fully control.
@@ -37,11 +40,21 @@ simplify installation and usage.
3740

3841
## Documentation
3942

40-
- [Ubuntu Secure Boot Setup Guide]
41-
- [Fedora Setup Guide]
42-
- [Generic Linux Setup Guide]
43-
- [Alpine Edge Setup Guide]
44-
- [Windows Setup Guide]
43+
### Setup Guides
44+
45+
Some guides support Secure Boot and some do not.
46+
We recommend running Sprout without Secure Boot for development, and with Secure Boot for production.
47+
48+
| Operating System | Secure Boot Enabled | Link |
49+
|------------------|---------------------|-------------------------------------------------------|
50+
| Ubuntu || [Setup Guide](./docs/setup/signed/ubuntu.md) |
51+
| Fedora || [Setup Guide](./docs/setup/unsigned/fedora.md) |
52+
| Alpine Edge || [Setup Guide](./docs/setup/unsigned/alpine-edge.md) |
53+
| Generic Linux || [Setup Guide](./docs/setup/unsigned/generic-linux.md) |
54+
| Windows || [Setup Guide](./docs/setup/unsigned/windows.md) |
55+
56+
### Project Documentation
57+
4558
- [Development Guide]
4659
- [Contributing Guide]
4760
- [Sprout License]
@@ -50,8 +63,6 @@ simplify installation and usage.
5063

5164
## Features
5265

53-
**NOTE**: Sprout is still in beta.
54-
5566
### Current
5667

5768
- [x] Loadable driver support
@@ -148,11 +159,6 @@ autoconfigure = true
148159
```
149160

150161
[Edera]: https://edera.dev
151-
[Ubuntu Secure Boot Setup Guide]: ./docs/ubuntu-secure-boot-setup.md
152-
[Fedora Setup Guide]: ./docs/fedora-setup.md
153-
[Generic Linux Setup Guide]: ./docs/generic-linux-setup.md
154-
[Alpine Edge Setup Guide]: ./docs/alpine-edge-setup.md
155-
[Windows Setup Guide]: ./docs/windows-setup.md
156162
[Development Guide]: ./DEVELOPMENT.md
157163
[Contributing Guide]: ./CONTRIBUTING.md
158164
[Sprout License]: ./LICENSE
Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
1-
# Ubuntu Secure Boot Setup
1+
# Setup Sprout for Ubuntu with Secure Boot
22

3-
## Generate and Install Secure Boot Key
3+
## Prerequisites
4+
5+
- Modern Ubuntu release: tested on Ubuntu 25.10 on ARM64
6+
- EFI System Partition mounted on `/boot/efi` (the default)
7+
- ext4 or FAT32/exFAT formatted `/boot` partition
8+
9+
## Step 1: Generate and Install Secure Boot Key
410

511
```bash
612
# Create a directory to store the Secure Boot MOK key and certificates.
@@ -28,7 +34,7 @@ $ mokutil --import mok.cer
2834
# Select "Reboot" to boot back into your Operating System.
2935
```
3036

31-
## Prepare Secure Boot Environment
37+
## Step 2: Prepare the Secure Boot Environment
3238

3339
```bash
3440
# Create a directory for Sprout EFI artifacts.
@@ -45,13 +51,13 @@ $ cp /usr/lib/shim/mmaa64.efi /boot/efi/EFI/sprout/mmaa64.efi
4551
$ cp /usr/lib/shim/fbaa64.efi /boot/efi/EFI/sprout/fbaa64.efi
4652
```
4753

48-
## Install Unsigned Sprout
54+
## Step 3: Install Unsigned Sprout
4955

5056
Download the latest sprout.efi release from the [GitHub releases page](https://github.com/edera-dev/sprout/releases).
5157
For x86_64 systems, download the `sprout-x86_64.efi` file, and for ARM64 systems, download the `sprout-aarch64.efi` file.
5258
Copy the downloaded `sprout.efi` file to `/boot/efi/EFI/sprout/sprout.unsigned.efi` on your EFI System Partition.
5359

54-
## Sign Sprout for Secure Boot
60+
## Step 4: Sign Sprout for Secure Boot
5561

5662
```bash
5763
# For x86_64, sign the unsigned Sprout artifact and name it grubaa64.efi which is what the shim will call.
@@ -69,7 +75,14 @@ $ sbsign \
6975
/boot/efi/EFI/sprout/sprout.unsigned.efi
7076
```
7177

72-
## Sign EFI Drivers
78+
## Step 5: Install and Sign EFI Drivers
79+
80+
You will need a filesystem EFI driver if `/boot` is not FAT32 or ExFAT.
81+
If `/boot` is FAT32 or ExFAT, you can skip this step.
82+
83+
Most Ubuntu systems use an ext4 filesystem for `/boot`.
84+
You can download an EFI filesystem driver from [EfiFs releases](https://github.com/pbatard/EfiFs/releases).
85+
For ext4, download the `ext2` file for your platform. It will work for ext4 filesystems too.
7386

7487
If you have an EFI driver, copy the driver to `/boot/efi/EFI/sprout/DRIVER_NAME.unsigned.efi` for signing.
7588

@@ -86,7 +99,7 @@ $ sbsign \
8699
/boot/efi/EFI/sprout/ext4.unsigned.efi
87100
```
88101

89-
## Create Sprout Configuration
102+
## Step 6: Create Sprout Configuration
90103

91104
Write the following to the file `/boot/efi/sprout.toml`:
92105

@@ -100,6 +113,8 @@ version = 1
100113
linux-options = "root=UUID=MY_ROOT_UUID"
101114

102115
# load an ext4 EFI driver.
116+
# skip this if you do not have an filesystem driver.
117+
# if your filesystem driver is not named ext4, change accordingly.
103118
[drivers.ext4]
104119
path = "\\EFI\\sprout\\ext4.efi"
105120

@@ -113,14 +128,17 @@ autoconfigure = true
113128
Ensure you add the signed driver paths to the configuration, not the unsigned ones.
114129
If you do not have any drivers, exclude the drivers section entirely.
115130

116-
## Configure Sprout Boot Entry
131+
## Step 7: Configure Sprout Boot Entry
117132

118-
```bash
119-
# In the following commands, replace /dev/ESP_PARTITION with the actual path to the ESP partition block device.
133+
In the following commands, replace /dev/ESP_PARTITION with the actual path to the ESP partition block device.
120134

135+
```bash
121136
# For x86_64, run this command to add Sprout as the default boot entry.
122137
$ efibootmgr -d /dev/ESP_PARTITION -c -L 'Sprout' -l '\EFI\sprout\shimx64.efi'
123138

124139
# For aarch64, run this command to add Sprout as the default boot entry.
125140
$ efibootmgr -d /dev/ESP_PARTITION -c -L 'Sprout' -l '\EFI\sprout\shimaa64.efi'
126141
```
142+
143+
Reboot your machine and it should boot into Sprout.
144+
If Sprout fails to boot, it should boot into the original bootloader.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Setup Sprout on Alpine Edge
1+
# Setup Sprout for Alpine Edge without Secure Boot
22

33
## Prerequisites
44

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Setup Sprout on Fedora
1+
# Setup Sprout for Fedora without Secure Boot
22

33
## Prerequisites
44

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Setup Sprout to boot Linux
1+
# Setup Sprout for Linux without Secure Boot
22

33
## Prerequisites
44

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Setup Sprout to boot Windows
1+
# Setup Sprout for Windows without Secure Boot
22

33
## Prerequisites
44

0 commit comments

Comments
 (0)