# FWS **FWS** est une distribution Linux live/installable basée sur **Arch Linux**, livrée sous forme d'ISO bootable BIOS/UEFI avec l'installeur graphique **Calamares** lancé automatiquement au démarrage. Le projet est construit avec une chaîne `mkarchiso` adaptée pour fonctionner **depuis Windows via WSL** (Git Bash → WSL Arch), sans nécessiter de machine Linux dédiée. --- ## Aperçu - **Base** : Arch Linux (rolling release) - **Installeur** : Calamares (compilé depuis l'AUR, servi via un repo local pacman) - **Affichage live** : Xorg + Openbox, lancement automatique de Calamares - **Bureau installé** : XFCE + LightDM avec autologin du premier compte créé - **Boot** : BIOS (syslinux) + UEFI (systemd-boot) - **Compression** : squashfs (xz) - **Build** : Windows + WSL (Arch) ou directement depuis Arch ## Prérequis ### Côté Windows - Windows 10/11 - WSL 2 avec une distribution **Arch Linux** installée (`Arch`, `ArchLinux`, `ArchWSL`…) - Git Bash (pour exécuter les scripts depuis Windows) ### Côté Arch (WSL ou natif) Les scripts installent automatiquement les paquets nécessaires (`archiso`, `base-devel`, `git`, `reflector`, `dos2unix`). ## Démarrage rapide ```bash # 1. Préparation : compile Calamares depuis l'AUR, crée le repo local, # patche pacman.conf et configure les services systemd (Xorg + autostart). ./setup-calamares.sh # 2. Build de l'ISO via mkarchiso (fusionne configs/releng + configs/baseline) ./build.sh ``` L'ISO finale est générée dans `./out/`. Les deux scripts détectent automatiquement s'ils sont lancés depuis **Git Bash** (et basculent dans WSL en root) ou directement depuis **WSL/Arch**. ## Structure du projet | Chemin | Rôle | |--------|------| | `setup-calamares.sh` | Préparation one-shot : build Calamares (AUR), repo local, services systemd, autostart Xorg + Calamares | | `build.sh` | Build de l'ISO via `mkarchiso` (utilisable depuis Git Bash ou WSL) | | `configs/releng/` | Profil principal (base ArchISO releng) | | `configs/baseline/` | Overlay FWS appliqué par-dessus `releng` (prioritaire) | | `local-repo/` | Repo pacman local généré (Calamares + dépendances AUR) | | `out/` | ISOs générées | | `fws/mkarchiso` | Binaire `mkarchiso` embarqué (fork) | ## Séquence de boot de l'ISO 1. Démarrage de l'ISO FWS (BIOS ou UEFI) 2. `systemd` → autologin root sur `tty1` 3. `xorg-start.service` → `Xorg :0` 4. `calamares.service` → `DISPLAY=:0 calamares` 5. **Fallback** : si les services échouent, `.zprofile` relance Xorg + Openbox + Calamares manuellement 6. Après installation, le système démarre sur LightDM puis ouvre automatiquement la session XFCE du compte installé ## Test rapide en QEMU ```bash ./scripts/run_archiso.sh -i out/fws-*.iso # BIOS ./scripts/run_archiso.sh -u -i out/fws-*.iso # UEFI ``` ## Personnalisation - **Paquets** : éditer `configs/releng/packages.x86_64` - **Overlay rootfs** : déposer les fichiers dans `configs/releng/airootfs/` ou `configs/baseline/airootfs/` - **Modules / séquence Calamares** : `configs/baseline/airootfs/etc/calamares/` - **Branding ISO** : `configs/releng/profiledef.sh` (`iso_name`, `iso_label`, `iso_publisher`…) ## Dépannage - **`pacman.conf introuvable`** : vérifier que `configs/releng/pacman.conf` existe. - **Calamares ne démarre pas dans l'ISO** : se logger en tty (autologin root) et lancer `journalctl -u xorg-start -u calamares`. - **Erreurs de retours à la ligne** : `build.sh` lance `dos2unix` sur l'arborescence ; si vous éditez des fichiers depuis Windows, ce n'est pas un problème. - **`mkarchiso` échoue sur un paquet AUR** : relancer `./setup-calamares.sh` pour reconstruire le repo local. --- ## Licence & origine FWS est un fork de **[archiso](https://gitlab.archlinux.org/archlinux/archiso)** (Arch Linux), redistribué sous les termes de la **GPL-3.0-or-later**. Voir [LICENSE](LICENSE) pour le texte complet, et [AUTHORS.rst](AUTHORS.rst) pour la liste des auteurs originaux d'archiso. Les modifications spécifiques à FWS (scripts `build.sh`, `setup-calamares.sh`, overlay `configs/baseline/`, intégration Calamares + Xorg autostart, chaîne de build WSL) sont également distribuées sous GPL-3.0-or-later.