75 lines
2.0 KiB
Markdown
75 lines
2.0 KiB
Markdown
# Getting Started
|
|
|
|
ChillcraftOS is a Debian Trixie-based OS for Raspberry Pi (arm64/armhf) and amd64, built using a modified pi-gen pipeline.
|
|
|
|
## Supported Architectures
|
|
|
|
| Arch | Target | Output |
|
|
|---------|-------------------------------|----------------|
|
|
| `arm64` | Raspberry Pi 3/4/5 (64-bit) | `.img` |
|
|
| `armhf` | Raspberry Pi 2/3 (32-bit) | `.img` |
|
|
| `amd64` | x86_64 PCs | `.iso` / `.squashfs` |
|
|
|
|
## Build Host Requirements
|
|
|
|
The build must run on a Debian-based Linux host. Ubuntu 22.04+ or Debian Bookworm/Trixie are recommended.
|
|
|
|
Install dependencies:
|
|
|
|
```bash
|
|
sudo apt-get install coreutils quilt parted qemu-user-static debootstrap zerofree zip \
|
|
dosfstools libarchive-tools libcap2-bin grep rsync xz-utils file git curl bc \
|
|
gpg pigz xxd arch-test squashfs-tools xorriso grub-common
|
|
```
|
|
|
|
The `depends` file in the repo root lists all required tools in `<tool>[:<debian-package>]` format.
|
|
|
|
## Cloning
|
|
|
|
```bash
|
|
git clone https://github.com/oxmc/ChillcraftOS.git
|
|
cd ChillcraftOS
|
|
```
|
|
|
|
Do not clone to a path containing spaces — `debootstrap` does not support them.
|
|
|
|
## Configuration
|
|
|
|
Copy or create a config file:
|
|
|
|
```bash
|
|
cp config.example config
|
|
# Edit config as needed
|
|
```
|
|
|
|
See [config.md](config.md) for all available options. At minimum set:
|
|
|
|
```bash
|
|
IMG_NAME='chillcraftos'
|
|
RELEASE='trixie'
|
|
ARCH='amd64' # or arm64 / armhf
|
|
```
|
|
|
|
## Building
|
|
|
|
```bash
|
|
sudo ./build.sh -c config
|
|
```
|
|
|
|
Output files are placed in `deploy/`.
|
|
|
|
- RPi builds produce a `.img` file you can flash with Balena Etcher or `dd`.
|
|
- amd64 builds produce a `.iso` (bootable live image) and/or `.squashfs`.
|
|
|
|
## Skipping Stages (Faster Iteration)
|
|
|
|
Add a `SKIP` file to stages you don't want to re-run, and `SKIP_IMAGES` to stages that would otherwise trigger an export:
|
|
|
|
```bash
|
|
# Skip stages 0-2 to iterate on stage3 only
|
|
touch stage0/SKIP stage1/SKIP stage2/SKIP
|
|
sudo CLEAN=1 ./build.sh -c config
|
|
```
|
|
|
|
Remove the `SKIP` files before a full clean build.
|