Compilation de l'OS
L'image se construit avec Buildroot piloté par le script scripts/build.sh. Ce script
télécharge Buildroot, y branche le dépôt comme arbre externe et lance la construction.
Prérequis (hôte Debian/Ubuntu)
sudo apt-get install -y build-essential wget rsync bc cpio unzip file \
python3 git libssl-dev libelf-dev
Le script vérifie automatiquement la présence de ces outils et en-têtes
(make, gcc, g++, wget, rsync, bc, cpio, unzip, file, python3, sed,
ainsi que libssl-dev et libelf-dev).
Construire l'image
# Depuis la racine du dépôt
./scripts/build.sh
Équivalent via la commande unifiée du package.json racine :
npm run os:build
Paramètres par variables d'environnement :
| Variable | Défaut | Rôle |
|---|---|---|
BUILDROOT_VERSION | 2025.02.16 | Version de Buildroot téléchargée. |
DEFCONFIG | leukos_rpi02w_defconfig | Configuration de plateforme. |
JOBS | $(nproc) | Parallélisme de compilation. |
Exemple pour cibler un Raspberry Pi 4 :
DEFCONFIG=leukos_rpi4_defconfig ./scripts/build.sh
Équivalent :
npm run os:build:rpi4
Étapes réalisées par le script
- Contrôle des outils et en-têtes de l'hôte.
- Téléchargement de
buildroot-<version>.tar.gzdans.build/. - Câblage de
nodes/oscomme arbre externe (BR2_EXTERNAL). - Application du defconfig choisi.
- Compilation croisée complète (toolchain, noyau, paquets
leukos-node,leukos-ui…). - Assemblage de l'image via
genimage(FAT32 boot + ext4 root).
Sortie
.build/buildroot/output/images/openautomation.img
Flasher sur carte SD
# Remplacez /dev/sdX par votre carte (ATTENTION : efface la cible)
sudo dd if=.build/buildroot/output/images/openautomation.img \
of=/dev/sdX bs=4M conv=fsync status=progress
:::danger Attention
dd écrit sans confirmation. Vérifiez soigneusement /dev/sdX : une erreur peut écraser un
disque système.
:::
Nettoyage
./scripts/clean.sh
Plateformes supportées
| Defconfig | Cible |
|---|---|
leukos_rpi02w_defconfig | Raspberry Pi Zero 2 W (défaut) |
leukos_rpi3bplus_defconfig | Raspberry Pi 3 B+ |
leukos_rpi4_defconfig | Raspberry Pi 4 |
leukos_rpi5_defconfig | Raspberry Pi 5 |
leukos_intel_nuc_defconfig | Intel NUC |
leukos_amd64_defconfig | PC x86-64 |
leukos_arm64_defconfig | ARM64 générique |