https://github.com/fyralabs/submarine
An experimental bootloader for ChomeOS's depthcharge
https://github.com/fyralabs/submarine
bootloader chromeos linux
Last synced: 9 months ago
JSON representation
An experimental bootloader for ChomeOS's depthcharge
- Host: GitHub
- URL: https://github.com/fyralabs/submarine
- Owner: FyraLabs
- License: gpl-3.0
- Created: 2023-12-02T00:24:45.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-23T02:28:36.000Z (12 months ago)
- Last Synced: 2025-07-19T05:29:28.770Z (9 months ago)
- Topics: bootloader, chromeos, linux
- Language: Makefile
- Homepage:
- Size: 209 KB
- Stars: 60
- Watchers: 8
- Forks: 7
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Submarine
An experimental bootloader for ChomeOS's depthcharge.
> [!WARNING]
> Submarine is currently beta software. Please exercise care with your system and report any issues you encounter.
## 📕 Explainer
Submarine provides a minimal Linux environmemt that lives in a small partition (16mb) on the disk. We use this environment to bootstrap a full Linux system (or a different system if you're brave.)
[Additional documention can be found on Fyra Developer (under construction!)](https://developer.fyralabs.com/submarine)
## 📦 Builds
We offer prebuilt versions of the images per each commit:
- [Latest x86_64 build](https://nightly.link/FyraLabs/submarine/workflows/build/main/submarine-x86_64.zip)
- [Latest arm64 build](https://nightly.link/FyraLabs/submarine/workflows/build/main/submarine-arm64.zip)
## 🛠️ Dependencies
Please make sure you have these dependencies first before building.
```bash
make
gcc
ccache
flex
bison
elfutils-devel
parted
vboot-utils
golang
xz
bc
tar
openssl-devel
python3-pip
uboot-tools
```
Additionally, you'll need to install `u-root` and `depthcharge-tools` (if you have the [Terra repository](https://terra.fyralabs.com/), you can `dnf install` them).
To install the latest versions:
```bash
go install github.com/u-root/u-root@latest
pip3 install depthcharge-tools
```
Lastly, you may need to install a cross-compile gcc. For example:
```bash
gcc-aarch64-linux-gnu
```
## 🏗️ Building
Simply clone this repo with submodules, so pass `--recurse-submodules` to `git clone`, then:
```bash
make -j$(nproc)
```
Please note that you **must** pass an architecture target.
The build output is located in `build/`.
For testing, an image is built at `build/submarine.bin` which you can directly flash onto an external drive.
So, for example, replace `/dev/sdX` with the device file of the external drive:
```bash
sudo dd if=build/submarine.bin of=/dev/sdX
```
## 🗒️ Todos
- Clean up kernel configs