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.
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!)
We offer prebuilt versions of the images per each commit:
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-toolsAdditionally, 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-toolsLastly, you may need to install a cross-compile gcc. For example:
gcc-aarch64-linux-gnuSimply 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- Clean up kernel configs