Skip to content

An experimental bootloader for ChomeOS's depthcharge

License

Notifications You must be signed in to change notification settings

FyraLabs/submarine

Repository files navigation

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!)

📦 Builds

We offer prebuilt versions of the images per each commit:

🛠️ Dependencies

Please make sure you have these dependencies first before building.

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, you can dnf install them). To install the latest versions:

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:

gcc-aarch64-linux-gnu

🏗️ Building

Simply clone this repo with submodules, so pass --recurse-submodules to git clone, then:

make -j$(nproc) <x86_64|arm64>

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:

sudo dd if=build/submarine.bin of=/dev/sdX

🗒️ Todos

  • Clean up kernel configs