docs(ReadMe): Refactor of the ReadMe.MD
This commit is contained in:
@@ -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
|
## 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
|
| **Base** | Arch Linux (rolling release) |
|
||||||
- **Bureau installé** : XFCE + LightDM avec autologin du premier compte créé
|
| **Installeur** | Calamares (compilé depuis l'AUR) |
|
||||||
- **Boot** : BIOS (syslinux) + UEFI (systemd-boot)
|
| **Environnement live** | Xorg + Openbox — Calamares se lance automatiquement |
|
||||||
- **Compression** : squashfs (xz)
|
| **Bureaux installables** | XFCE, KDE Plasma, GNOME, Hyprland, CLI |
|
||||||
- **Build** : Windows + WSL (Arch) ou directement depuis Arch
|
| **Boot** | BIOS (syslinux) + UEFI (systemd-boot) |
|
||||||
|
| **Compression** | squashfs (xz) |
|
||||||
|
| **Build** | Windows + WSL (Arch) ou Arch Linux natif |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Prérequis
|
## Prérequis
|
||||||
|
|
||||||
### Côté Windows
|
### Depuis Windows
|
||||||
- Windows 10/11
|
- Windows 10/11 avec **WSL 2**
|
||||||
- WSL 2 avec une distribution **Arch Linux** installée (`Arch`, `ArchLinux`, `ArchWSL`…)
|
- Une distribution **Arch Linux** dans WSL (`Arch`, `ArchLinux`, `ArchWSL`…)
|
||||||
- Git Bash (pour exécuter les scripts depuis Windows)
|
- **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`).
|
Les scripts installent automatiquement les paquets nécessaires (`archiso`, `base-devel`, `git`, `reflector`, `dos2unix`).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Démarrage rapide
|
## Démarrage rapide
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Préparation : compile Calamares depuis l'AUR, crée le repo local,
|
# Étape 1 — Build des paquets AUR (calamares, winboat-bin) et création du repo local
|
||||||
# patche pacman.conf et configure les services systemd (Xorg + autostart).
|
|
||||||
./setup-calamares.sh
|
./setup-calamares.sh
|
||||||
|
|
||||||
# 2. Build de l'ISO via mkarchiso (fusionne configs/releng + configs/baseline)
|
# Étape 2 — Build de l'ISO
|
||||||
./build.sh
|
./build.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
L'ISO finale est générée dans `./out/`.
|
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
|
## Structure du projet
|
||||||
|
|
||||||
| Chemin | Rôle |
|
```
|
||||||
|--------|------|
|
FWS/
|
||||||
| `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
|
||||||
| `build.sh` | Build de l'ISO via `mkarchiso` (utilisable depuis Git Bash ou WSL) |
|
├── setup-calamares.sh # Build des paquets AUR + création du repo local
|
||||||
| `configs/releng/` | Profil principal (base ArchISO releng) |
|
├── configs/
|
||||||
| `configs/baseline/` | Overlay FWS appliqué par-dessus `releng` (prioritaire) |
|
│ ├── releng/ # Profil principal (base ArchISO releng)
|
||||||
| `local-repo/` | Repo pacman local généré (Calamares + dépendances AUR) |
|
│ │ ├── profiledef.sh # Métadonnées ISO (nom, label, bootmodes…)
|
||||||
| `out/` | ISOs générées |
|
│ │ ├── packages.x86_64 # Liste des paquets du live
|
||||||
| `fws/mkarchiso` | Binaire `mkarchiso` embarqué (fork) |
|
│ │ ├── 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`
|
2. `systemd` → autologin root sur `tty1`
|
||||||
3. `xorg-start.service` → `Xorg :0`
|
3. `xorg-start.service` → `Xorg :0`
|
||||||
4. `calamares.service` → `DISPLAY=:0 calamares`
|
4. `calamares.service` → `DISPLAY=:0 calamares`
|
||||||
5. **Fallback** : si les services échouent, `.zprofile` relance Xorg + Openbox + Calamares manuellement
|
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
|
```bash
|
||||||
./scripts/run_archiso.sh -i out/fws-*.iso # BIOS
|
./scripts/run_archiso.sh -i out/fws-*.iso # BIOS
|
||||||
./scripts/run_archiso.sh -u -i out/fws-*.iso # UEFI
|
./scripts/run_archiso.sh -u -i out/fws-*.iso # UEFI
|
||||||
```
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Personnalisation
|
## Personnalisation
|
||||||
|
|
||||||
- **Paquets** : éditer `configs/releng/packages.x86_64`
|
| Quoi | Où |
|
||||||
- **Overlay rootfs** : déposer les fichiers dans `configs/releng/airootfs/` ou `configs/baseline/airootfs/`
|
|------|----|
|
||||||
- **Modules / séquence Calamares** : `configs/baseline/airootfs/etc/calamares/`
|
| Paquets du live | `configs/releng/packages.x86_64` |
|
||||||
- **Branding ISO** : `configs/releng/profiledef.sh` (`iso_name`, `iso_label`, `iso_publisher`…)
|
| Overlay rootfs | `configs/releng/airootfs/` ou `configs/baseline/airootfs/` |
|
||||||
|
| Modules Calamares | `configs/baseline/airootfs/etc/calamares/modules/` |
|
||||||
## Dépannage
|
| Séquence Calamares | `configs/releng/airootfs/etc/calamares/settings.conf` |
|
||||||
|
| Branding ISO | `configs/releng/profiledef.sh` (`iso_name`, `iso_label`…) |
|
||||||
- **`pacman.conf introuvable`** : vérifier que `configs/releng/pacman.conf` existe.
|
| Branding Calamares | `configs/releng/airootfs/etc/calamares/branding/fws/branding.desc` |
|
||||||
- **Calamares ne démarre pas dans l'ISO** : se logger en tty (autologin root) et lancer `journalctl -u xorg-start -u calamares`.
|
| Paquets installés | `configs/releng/airootfs/etc/calamares/modules/packages.conf` |
|
||||||
- **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
|
## 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.
|
||||||
|
|||||||
Reference in New Issue
Block a user