134 lines
3.1 KiB
Markdown
134 lines
3.1 KiB
Markdown
# Config
|
|
|
|
`build.sh` sources the file `config` in the current working directory at startup. It can also be specified explicitly:
|
|
|
|
```bash
|
|
sudo ./build.sh -c build_amd64
|
|
```
|
|
|
|
## Variables
|
|
|
|
### Core
|
|
|
|
* `IMG_NAME` (Default: `vesperos-$RELEASE-$ARCH`)
|
|
|
|
Base name for output files.
|
|
|
|
* `RELEASE` (Default: `trixie`)
|
|
|
|
Debian release to build against.
|
|
|
|
* `ARCH` (Default: `arm64`)
|
|
|
|
Target architecture. One of: `arm64`, `armhf`, `amd64`.
|
|
|
|
### Directories
|
|
|
|
* `WORK_DIR` (Default: `$BASE_DIR/work`)
|
|
|
|
Where stage rootfs directories are built. Should be on a Linux filesystem — NTFS will not work.
|
|
|
|
* `DEPLOY_DIR` (Default: `$BASE_DIR/deploy`)
|
|
|
|
Where finished images and archives are placed.
|
|
|
|
### Network / SSH
|
|
|
|
* `ENABLE_SSH` (Default: `0`)
|
|
|
|
Set to `1` to enable the SSH server in the built image.
|
|
|
|
* `PUBKEY_SSH_FIRST_USER` (Default: unset)
|
|
|
|
If set, written to `~/.ssh/authorized_keys` for the first user.
|
|
|
|
* `PUBKEY_ONLY_SSH` (Default: `0`)
|
|
|
|
Set to `1` to disable password auth and require public key auth for SSH.
|
|
|
|
* `APT_PROXY` (Default: unset)
|
|
|
|
Apt proxy URL (e.g. `http://192.168.1.1:3142`). Not included in the final image.
|
|
|
|
* `TEMP_REPO` (Default: unset)
|
|
|
|
Additional temporary apt repo used only during the build. Supports `RELEASE` substitution.
|
|
|
|
### Locale / Keyboard
|
|
|
|
* `LOCALE_DEFAULT` (Default: `en_US.UTF-8`)
|
|
|
|
* `KEYBOARD_KEYMAP` (Default: `en`)
|
|
|
|
* `KEYBOARD_LAYOUT` (Default: `English (US)`)
|
|
|
|
* `TIMEZONE_DEFAULT` (Default: `America/Los Angeles`)
|
|
|
|
### Cloud-init
|
|
|
|
* `ENABLE_CLOUD_INIT` (Default: `1`)
|
|
|
|
Set to `1` to install and configure cloud-init. On RPi, seed files go to `/boot/firmware/`. On amd64, they go to `/var/lib/cloud/seed/nocloud/`.
|
|
|
|
### Other
|
|
|
|
* `USE_QEMU` (Default: `0`)
|
|
|
|
Set to `1` to produce a QEMU-compatible image (adds `-qemu` suffix).
|
|
|
|
* `SETFCAP` (Default: unset)
|
|
|
|
Set to `1` to preserve Linux capabilities in the rootfs. Only needed for NFS or capability-sensitive deployments.
|
|
|
|
* `STAGE_LIST` (Default: `stage*`)
|
|
|
|
Override the list of stages to run. Example: `"stage0 stage1 mystage stage2"`.
|
|
|
|
* `EXPORTS` (Default: unset)
|
|
|
|
Space-separated list of `stage:type` pairs declaring what to export and from which stage. Supported types: `squashfs`, `img`, `noobs`. Example:
|
|
|
|
```bash
|
|
EXPORTS="stage3:squashfs"
|
|
EXPORTS="stage3:squashfs stage2:img"
|
|
```
|
|
|
|
### Live boot (squashfs only)
|
|
|
|
* `LIVEBOOT` (Default: `0`)
|
|
|
|
Set to `1` to produce a second `-live` squashfs alongside the raw one. Installs `live-boot`, configures GDM autologin, and rebuilds the initramfs. Only applies to `amd64`.
|
|
|
|
* `LIVE_USERNAME` (Default: `vesperos`)
|
|
* `LIVE_USER_FULLNAME` (Default: `Live User`)
|
|
* `LIVE_USER_PASSWORD` (Default: `vesperos`)
|
|
|
|
### NOOBS
|
|
|
|
* `NOOBS_NAME` — Display name shown in the NOOBS menu.
|
|
* `NOOBS_DESCRIPTION` — Short description shown in the NOOBS menu.
|
|
|
|
Both must be set in the config when using `noobs` in `EXPORTS`.
|
|
|
|
## Example Config Files
|
|
|
|
### amd64 with live boot
|
|
|
|
```bash
|
|
ARCH='amd64'
|
|
EXPORTS="stage3:squashfs"
|
|
DEPLOY_COMPRESSION="none"
|
|
LIVEBOOT=1
|
|
LIVE_USERNAME="vesper"
|
|
LIVE_USER_PASSWORD="vesper"
|
|
```
|
|
|
|
### Raspberry Pi (arm64)
|
|
|
|
```bash
|
|
ARCH='arm64'
|
|
EXPORTS="stage3:squashfs"
|
|
DEPLOY_COMPRESSION="none"
|
|
ENABLE_CLOUD_INIT=1
|
|
```
|