- The installer is still W.I.P
10 KiB
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 conçu pour être construit depuis Windows via WSL (les scripts détectent Git Bash et basculent automatiquement dans WSL), mais fonctionne aussi directement depuis une Arch Linux native.
Aperçu
- Base : Arch Linux (rolling release)
- Installeur : Calamares 3.4.2 (compilé depuis l'AUR, servi via un repo pacman local)
- Affichage live : Xorg + Openbox, lancement automatique de Calamares
- Bureaux installables : XFCE, KDE Plasma, GNOME, Hyprland (choix à l'installation)
- Boot : BIOS (syslinux) + UEFI (systemd-boot)
- Compression : squashfs (xz)
Environnement requis — INSTALLATION ULTRA PRÉCISE
Côté Windows (machine hôte)
| Composant | Version / état requis | Commande de vérif |
|---|---|---|
| Windows | 10 (22H2+) ou 11 | winver |
| WSL | WSL 2 (pas WSL 1) | wsl --status |
| Virtualisation CPU | Activée dans le BIOS (VT-x / AMD-V) | Gestionnaire des tâches → Performance → CPU → "Virtualisation : Activé" |
| Git for Windows | ≥ 2.40 (fournit Git Bash) | git --version |
| Espace disque libre | ≥ 25 GB sur la partition WSL | — |
| RAM | ≥ 8 GB (16 GB recommandés) | — |
1. Activer WSL 2
Dans PowerShell administrateur :
wsl --install --no-distribution
wsl --set-default-version 2
wsl --update
Puis redémarrer Windows.
2. Installer Arch Linux dans WSL
Arch n'est pas dans le store Microsoft. Installer ArchWSL :
# Télécharger la dernière release
Invoke-WebRequest -Uri "https://github.com/yuk7/ArchWSL/releases/latest/download/Arch.zip" -OutFile "$env:TEMP\Arch.zip"
Expand-Archive "$env:TEMP\Arch.zip" -DestinationPath "$env:LOCALAPPDATA\ArchWSL"
& "$env:LOCALAPPDATA\ArchWSL\Arch.exe"
Au premier lancement, la distribution s'enregistre sous le nom Arch (ce nom est attendu par les scripts — il est paramétrable via ARCH_WSL_DISTRO si besoin).
Vérifier :
wsl -l -v
# Doit afficher :
# NAME STATE VERSION
# * Arch Stopped 2
3. Installer Git for Windows
Télécharger depuis https://git-scm.com/download/win et installer avec les options par défaut. Git Bash est inclus.
Côté WSL Arch (préparation système)
Le premier lancement de la WSL ouvre une session root. Effectuer une seule fois :
# 1. Initialiser le keyring (sinon pacman refuse tout install signé)
pacman-key --init
pacman-key --populate archlinux
# 2. Mettre à jour le keyring AVANT toute autre opération
# (les WSL fraîches ont un keyring périmé)
pacman -Sy --noconfirm archlinux-keyring
# 3. Mise à jour complète du système
pacman -Syu --noconfirm
# 4. Vérifier que /tmp est bien un tmpfs (sinon mkarchiso lent)
mount | grep '/tmp'
Note
: le script
setup-calamares.shdésactive automatiquement le sandbox landlock de pacman ≥ 7 (incompatible avec le kernel WSL) en ajoutantDisableSandboxdans/etc/pacman.conf. Tu n'as rien à faire.
Côté Arch Linux native (alternative)
Si tu build depuis une vraie Arch (pas WSL) :
sudo pacman -Syu
sudo pacman -S --needed base-devel git archiso reflector dos2unix
Les scripts détectent l'absence de WSL et s'exécutent en local. Il faut être root ou avoir sudo configuré.
Démarrage rapide
Depuis Git Bash sur Windows (à la racine du repo) :
# Étape 1 : compilation de Calamares + winboat depuis l'AUR
# → crée local-repo/ avec les .pkg.tar.zst signés
./setup-calamares.sh
# Étape 2 : build de l'ISO via mkarchiso
# → fusionne configs/releng + configs/baseline
# → injecte le repo local dans pacman.conf
# → sort l'ISO dans ./out/
./build.sh
L'ISO finale est générée dans ./out/FWS-YYYY.MM.DD-x86_64.iso.
Ce que fait setup-calamares.sh (étape par étape)
- Détection environnement : si lancé depuis Git Bash, bascule dans
wsl.exe -d Arch -u root. - Patch pacman : désactive landlock sur WSL (
DisableSandbox). - Refresh keyring :
pacman-key --init && --populate archlinux, mise à jourarchlinux-keyring. pacman -Syucomplet (obligatoire — sinonmakepkgplante sur les "conflicting files" lors des splits de paquets typegcc-libs).- Install des outils de build :
base-devel git. - Création d'un utilisateur
fwsbuildnon-root avecsudoNOPASSWD (makepkg refuse de tourner en root). - Clone + build AUR :
calamarespuiswinboat-binviamakepkg -s --noconfirm. - Création du repo local :
repo-add local-repo/fws-local.db.tar.gz. - Cleanup : suppression de l'utilisateur
fwsbuild.
Durée : 15–40 minutes (Calamares = ~12 dépendances Qt6 à compiler).
Ce que fait build.sh (étape par étape)
- Détection environnement : Git Bash → bascule dans WSL ; sinon exécution locale.
- Update miroirs :
reflector --latest 10 --sort rate. - Install
archiso. - Fusion configs :
cp -ar configs/releng/* /tmp/fws-build/releng/puis overlayconfigs/baseline/*par-dessus (baseline prioritaire). - Activation NetworkManager sur le live (symlink réel
multi-user.target.wants/). - Injection du repo local : ajoute
[fws-local](SigLevel = Optional TrustAll) en tête depacman.conf. dos2unixsur l'arborescence (au cas où tu as édité depuis Windows).mkarchiso -v -w /tmp/fws-build/work -o out/ /tmp/fws-build/releng.- Cleanup du workdir.
Durée : 5–15 minutes selon la machine et le cache pacman.
Test rapide en QEMU
./scripts/run_archiso.sh -i out/FWS-*.iso # BIOS
./scripts/run_archiso.sh -u -i out/FWS-*.iso # UEFI
Structure du projet
| Chemin | Rôle |
|---|---|
setup-calamares.sh |
Build Calamares + winboat depuis l'AUR, crée local-repo/ |
build.sh |
Build de l'ISO via mkarchiso |
configs/releng/ |
Profil principal (base ArchISO releng) |
configs/baseline/ |
Overlay FWS (Calamares, branding, scripts desktop-init) — prioritaire sur releng |
local-repo/ |
Repo pacman local (généré par setup-calamares.sh) |
out/ |
ISOs générées |
fws/mkarchiso |
Binaire mkarchiso embarqué (fork) |
scripts/run_archiso.sh |
Lanceur QEMU |
Séquence de boot de l'ISO
- Démarrage de l'ISO FWS (BIOS ou UEFI)
systemd→ autologin root surtty1.zprofile→startx.xinitrc→ Openbox + Calamares- Utilisateur choisit son bureau (XFCE / KDE / GNOME / Hyprland) via
packagechooser - Calamares installe le système →
shellprocessappelle/usr/local/bin/fws-desktop-init-<bureau>qui installe les paquets et configure le display manager - Reboot → connexion automatique sur le bureau choisi
Personnalisation
- Paquets du live :
configs/releng/packages.x86_64 - Paquets baseline :
configs/baseline/packages.x86_64 - Overlay rootfs :
configs/releng/airootfs/ouconfigs/baseline/airootfs/ - Modules / séquence Calamares :
configs/baseline/airootfs/etc/calamares/settings.conf - Choix des bureaux :
configs/baseline/airootfs/etc/calamares/modules/packagechooser.conf - Scripts d'install bureau :
configs/releng/airootfs/usr/local/bin/fws-desktop-init-* - Branding ISO :
configs/releng/profiledef.sh(iso_name,iso_label,iso_publisher) - Branding Calamares :
configs/baseline/airootfs/etc/calamares/branding/fws/
Dépannage
| Symptôme | Cause / fix |
|---|---|
Aucune distribution WSL Arch joignable |
Aucune distro Arch n'est installée/joignable. Les scripts auto-détectent désormais toute distro dont le nom contient « arch » (via wsl -l -q) ; installe ArchWSL (nom Arch) ou wsl --install -d archlinux, ou force ARCH_WSL_DISTRO=NomDeMaDistro. |
WSL introuvable |
WSL n'est pas installé. PowerShell admin : wsl --install, puis installe une distro Arch. |
pacman: signature unknown trust |
Keyring périmé → pacman -Sy --noconfirm archlinux-keyring puis relancer. |
makepkg: conflicting files |
pacman -Syu incomplet avant le build. Relancer setup-calamares.sh. |
mkarchiso plante sur [fws-local] |
Le repo local n'a pas été généré. Relancer setup-calamares.sh. |
| Calamares ne démarre pas dans l'ISO | Sur la VM, basculer en tty2 (autologin root) et lancer journalctl -b. |
Calamares Initialization Failed: desktop@desktop |
Module mal configuré dans settings.conf — vérifier que la séquence utilise packagechooser, pas desktop. |
Variables manquantes : DESKTOP |
Les $DESKTOP dans shellprocess.conf sont interprétés par Calamares — utiliser une command substitution $(cat /run/fws-desktop) à la place. |
| Écran noir après login Hyprland | Tu testes dans VirtualBox → pas d'accélération GPU. Utiliser QEMU/KVM avec virtio-gpu ou bare-metal. |
| Retours à la ligne CRLF | build.sh lance dos2unix automatiquement, mais si tu modifies pendant le build, relancer. |
Logs utiles
# Pendant le build
tail -f /tmp/fws-build/work/iso/arch/pkglist.x86_64.txt
# Dans l'ISO (autologin tty1)
journalctl -b
cat /var/log/Calamares.log
# Hyprland post-install
cat ~/.local/share/hyprland/hyprland.log
Variables d'environnement supportées
| Variable | Effet | Défaut |
|---|---|---|
ARCH_WSL_DISTRO |
Nom de la distro WSL Arch | Arch |
MSYS_NO_PATHCONV |
Désactive la conversion auto des chemins Git Bash | 1 (forcé dans les scripts) |
Licence & origine
FWS est un fork de archiso (Arch Linux), redistribué sous les termes de la GPL-3.0-or-later.
Voir LICENSE pour le texte complet, et 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.