Aller au contenu principal

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 :

VariableDéfautRôle
BUILDROOT_VERSION2025.02.16Version de Buildroot téléchargée.
DEFCONFIGleukos_rpi02w_defconfigConfiguration 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

  1. Contrôle des outils et en-têtes de l'hôte.
  2. Téléchargement de buildroot-<version>.tar.gz dans .build/.
  3. Câblage de nodes/os comme arbre externe (BR2_EXTERNAL).
  4. Application du defconfig choisi.
  5. Compilation croisée complète (toolchain, noyau, paquets leukos-node, leukos-ui…).
  6. 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

DefconfigCible
leukos_rpi02w_defconfigRaspberry Pi Zero 2 W (défaut)
leukos_rpi3bplus_defconfigRaspberry Pi 3 B+
leukos_rpi4_defconfigRaspberry Pi 4
leukos_rpi5_defconfigRaspberry Pi 5
leukos_intel_nuc_defconfigIntel NUC
leukos_amd64_defconfigPC x86-64
leukos_arm64_defconfigARM64 générique