From 40fd289a9ff2831791a9bd2ebb9a933e90c83538 Mon Sep 17 00:00:00 2001 From: fkDeath Date: Thu, 28 May 2026 01:03:30 +0200 Subject: [PATCH] docs(ReadMe): Refactor of the ReadMe.MD --- README.md | 166 ++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 119 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index dd3dd62..b244d4c 100644 --- a/README.md +++ b/README.md @@ -1,94 +1,166 @@ -# FWS +# FWS Linux -**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. +**FWS Linux** est une distribution live/installable basée sur **Arch Linux**, livrée sous forme d'ISO bootable BIOS/UEFI avec l'installeur graphique **Calamares**. -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. +Le projet se construit depuis **Windows via WSL** (ou directement depuis Arch Linux) avec `mkarchiso`. --- ## 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 +| | | +|---|---| +| **Base** | Arch Linux (rolling release) | +| **Installeur** | Calamares (compilé depuis l'AUR) | +| **Environnement live** | Xorg + Openbox — Calamares se lance automatiquement | +| **Bureaux installables** | XFCE, KDE Plasma, GNOME, Hyprland, CLI | +| **Boot** | BIOS (syslinux) + UEFI (systemd-boot) | +| **Compression** | squashfs (xz) | +| **Build** | Windows + WSL (Arch) ou Arch Linux natif | + +--- ## 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) +### Depuis Windows +- Windows 10/11 avec **WSL 2** +- Une distribution **Arch Linux** dans WSL (`Arch`, `ArchLinux`, `ArchWSL`…) +- **Git Bash** pour lancer les scripts -### Côté Arch (WSL ou natif) +### Depuis Arch Linux (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). +# Étape 1 — Build des paquets AUR (calamares, winboat-bin) et création du repo local ./setup-calamares.sh -# 2. Build de l'ISO via mkarchiso (fusionne configs/releng + configs/baseline) +# Étape 2 — Build de l'ISO ./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**. +Les deux scripts détectent automatiquement s'ils tournent depuis **Git Bash** (bascule automatique 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) | +``` +FWS/ +├── build.sh # Build de l'ISO via mkarchiso +├── setup-calamares.sh # Build des paquets AUR + création du repo local +├── configs/ +│ ├── releng/ # Profil principal (base ArchISO releng) +│ │ ├── profiledef.sh # Métadonnées ISO (nom, label, bootmodes…) +│ │ ├── packages.x86_64 # Liste des paquets du live +│ │ ├── pacman.conf # Config pacman pour le build +│ │ └── airootfs/ # Overlay rootfs du profil releng +│ │ ├── etc/calamares/ # Config et modules Calamares +│ │ └── usr/local/bin/ # Scripts fws-desktop-init-* +│ └── baseline/ # Overlay FWS appliqué par-dessus releng (prioritaire) +│ └── airootfs/etc/calamares/ # Branding et modules surchargés +├── local-repo/ # Repo pacman local généré (calamares, winboat-bin) +├── out/ # ISOs générées +└── scripts/ + └── run_archiso.sh # Test rapide en QEMU +``` -## Séquence de boot de l'ISO +--- -1. Démarrage de l'ISO FWS (BIOS ou UEFI) +## Environnements de bureau + +Calamares propose le choix du bureau à l'installation. Chaque option est gérée par un script `fws-desktop-init-*` qui installe les paquets, configure le display manager et supprime ce qui ne sert pas. + +| Bureau | Display Manager | Script | +|--------|-----------------|--------| +| **XFCE** | LightDM | `fws-desktop-init-xfce` | +| **KDE Plasma** | SDDM | `fws-desktop-init-kde` | +| **GNOME** | GDM | `fws-desktop-init-gnome` | +| **Hyprland** | SDDM | `fws-desktop-init-hyprland` | +| **CLI** | — | `fws-desktop-init-cli` | + +Tous les bureaux installent un socle commun : **Firefox**, **LibreOffice**, **MariaDB**, **Wine**, **Podman** et **WinBoat** (avec support KVM). + +--- + +## Séquence de boot de l'ISO live + +1. Démarrage (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 +--- + +## Séquence Calamares + +``` +welcome → locale → keyboard → partition → users → desktop environement → summary + → [installation] → + partition · mount · unpackfs · machineid · fstab · locale · + keyboard · localecfg · users · networkcfg · hwclock · + services-systemd · packages · initcpiocfg · initcpio · desktop environement · + grubcfg · bootloader · umount + → finished +``` + +--- + +## Test 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. +| Quoi | Où | +|------|----| +| Paquets du live | `configs/releng/packages.x86_64` | +| Overlay rootfs | `configs/releng/airootfs/` ou `configs/baseline/airootfs/` | +| Modules Calamares | `configs/baseline/airootfs/etc/calamares/modules/` | +| Séquence Calamares | `configs/releng/airootfs/etc/calamares/settings.conf` | +| Branding ISO | `configs/releng/profiledef.sh` (`iso_name`, `iso_label`…) | +| Branding Calamares | `configs/releng/airootfs/etc/calamares/branding/fws/branding.desc` | +| Paquets installés | `configs/releng/airootfs/etc/calamares/modules/packages.conf` | --- -## Licence & origine +## Dépannage -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**. +**`pacman.conf` introuvable** +: Vérifier que `configs/releng/pacman.conf` existe. -Voir [LICENSE](LICENSE) pour le texte complet, et [AUTHORS.rst](AUTHORS.rst) pour la liste des auteurs originaux d'archiso. +**Calamares ne démarre pas dans l'ISO** +: Se logger sur tty (autologin root) et consulter : +```bash +journalctl -u xorg-start -u calamares +``` -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. +**Erreurs de retours à la ligne (CRLF)** +: `build.sh` exécute `dos2unix` automatiquement sur tout le profil. Éditer depuis Windows ne pose pas de problème. + +**`mkarchiso` échoue sur un paquet AUR** +: Relancer `./setup-calamares.sh` pour reconstruire le repo local. + +**WSL — `DisableSandbox` manquant** +: `setup-calamares.sh` l'ajoute automatiquement à `/etc/pacman.conf` si WSL est détecté (pacman ≥ 7 utilise landlock, non supporté par le kernel WSL). + +--- + +## Licence + +FWS est un fork d'**[archiso](https://gitlab.archlinux.org/archlinux/archiso)** (Arch Linux), redistribué sous **GPL-3.0-or-later**. + +Voir [LICENSE](LICENSE) pour le texte complet et [AUTHORS.rst](AUTHORS.rst) pour les auteurs originaux d'archiso. + +Les ajouts spécifiques à FWS (`build.sh`, `setup-calamares.sh`, `configs/baseline/`, scripts `fws-desktop-init-*`, intégration Calamares + WinBoat, chaîne WSL) sont également distribués sous GPL-3.0-or-later.