build(calamares): update calamares configuration and enable networkmanager on live

This commit is contained in:
2026-05-26 15:05:12 +02:00
parent 2d135ed06b
commit c50db7a5bf
39 changed files with 486 additions and 900 deletions
@@ -5,17 +5,17 @@
componentName: fws
strings:
productName: "FWS Linux"
productName: "FWS"
shortProductName: "FWS"
version: "1.0"
shortVersion: "1.0"
versionedName: "FWS Linux 1.0"
versionedName: "FWS 1.0"
shortVersionedName: "FWS 1.0"
bootloaderEntryName: "FWS Linux"
productUrl: "https://fws-linux.org"
supportUrl: "https://fws-linux.org/support"
releaseNotesUrl: "https://fws-linux.org/release-notes"
donateUrl: "https://fws-linux.org/donate"
bootloaderEntryName: "FWS"
productUrl: ""
supportUrl: ""
releaseNotesUrl: ""
donateUrl: ""
images:
productLogo: "logo.png"
@@ -1,22 +1,18 @@
# ============================================================
# FWS Linux — modules/bootloader.conf
# ============================================================
---
efiBootLoader: "grub"
# Bootloader à utiliser
# Options: grub, systemd-boot, refind
efiBootLoader: "grub"
kernel: "/vmlinuz-linux"
img: "/initramfs-linux.img"
fallback: "/initramfs-linux-fallback.img"
timeout: "5"
# Paramètres GRUB
grubInstall: "grub-install"
grubMkconfig: "grub-mkconfig"
grubCfg: "/boot/grub/grub.cfg"
grubInstall: "grub-install"
grubMkconfig: "grub-mkconfig"
grubCfg: "/boot/grub/grub.cfg"
grubProbe: "grub-probe"
efiBootMgr: "efibootmgr"
# Chemin EFI
efiDirectory: "/boot/efi"
efiDirectory: "/boot/efi"
efiBootloaderId: "FWS"
# ID pour l'entrée EFI
efiBootEntryName: "FWS Linux"
# Menu GRUB
grubTimeout: 5
grubQuiet: false
installEFIFallback: true
@@ -1,11 +1,6 @@
# ============================================================
# FWS Linux — modules/finished.conf
# ============================================================
---
restartNowEnabled: true
restartNowChecked: false
restartNowCommand: "systemctl -i reboot"
# Redémarrer automatiquement après l'installation
restartNowEnabled: true
restartNowChecked: false
restartNowCommand: "systemctl reboot"
# Message de fin affiché à l'utilisateur
notifyOnFinished: true
notifyOnFinished: true
@@ -0,0 +1,13 @@
---
mountOptions:
default: defaults,noatime
btrfs: defaults,noatime,compress=zstd,space_cache=v2
ssdExtraMountOptions:
ext4: discard
jfs: discard
xfs: discard
swap: discard
btrfs: discard=async
crypttabOptions: luks,keyscript=/bin/cat
@@ -1,28 +1,13 @@
# ============================================================
# FWS Linux — modules/grubcfg.conf
# Paramètres passés à grub-mkconfig
# ============================================================
---
overwrite: true
# Nom de l'entrée dans le menu GRUB
defaultEntry: "FWS Linux"
kernel_params:
- "quiet"
defaults:
GRUB_ENABLE_CRYPTODISK: true
# Paramètres kernel supplémentaires
kernel_params: ""
# Désactiver l'écran splash (mettre false pour debug)
splash: true
# Thème GRUB (laisse vide pour le thème par défaut)
theme: ""
# Timeout du menu GRUB (en secondes)
timeout: 5
# Activer les entrées des autres OS détectés (os-prober)
enable_osprober: true
# Écrire /etc/default/grub
writeEtcDefaultGrub: true
GRUB_TIMEOUT: 5
GRUB_DEFAULT: "saved"
GRUB_DISABLE_SUBMENU: true
GRUB_TERMINAL_OUTPUT: "console"
GRUB_DISABLE_RECOVERY: true
GRUB_DISTRIBUTOR: "FWS"
@@ -0,0 +1,6 @@
---
location: EtcFile
writeHostsFile: true
setSystemdHostname: EtcFile
template: "fws-${first}"
@@ -0,0 +1 @@
---
@@ -1,24 +1,19 @@
# ============================================================
# FWS Linux — modules/initcpiocfg.conf
# Configure /etc/mkinitcpio.conf sur le système cible
# ============================================================
# Modules à inclure dans le initramfs
---
# Hooks par défaut Arch + support clavier/LUKS avant block/filesystems.
modules: []
# Binaires supplémentaires
binaries: []
# Fichiers supplémentaires
files: []
# Hooks — ordre important !
hooks:
- base
- udev
- autodetect
- microcode
- modconf
- kms
- keyboard
- keymap
- consolefont
- block
- filesystems
- keyboard
- fsck
@@ -1,17 +1,6 @@
# ============================================================
# FWS Linux — modules/keyboard.conf
# ============================================================
# Disposition clavier par défaut
xorgConfigFileName: "/etc/X11/xorg.conf.d/00-keyboard.conf"
# Clavier par défaut
keyboardLayout: "fr"
keyboardVariant: ""
keyboardModel: "pc105"
# Permettre à l'utilisateur de choisir son clavier
guiTimezone: true
# Conversions vc (console virtuelle) → X11
convertedKeymapPath: "/lib/kbd/keymaps/xkb"
---
xOrgConfFileName: "00-keyboard.conf"
convertedKeymapPath: "/usr/share/X11/xkb/symbols/pc"
keyboardLayout: "fr"
keyboardVariant: ""
keyboardModel: "pc105"
@@ -1,18 +1,6 @@
# ============================================================
# FWS Linux — modules/locale.conf
# ============================================================
# Région/timezone par défaut
region: "Europe"
zone: "Paris"
# Langue par défaut
locale: "fr_FR.UTF-8"
# Format des nombres, dates, monnaie
# Laisse vide pour utiliser la même valeur que locale
---
region: "Europe"
zone: "Paris"
localeGenPath: "/etc/locale.gen"
# Timezone GeoIP (détection auto basée sur l'IP)
geoipStyle: "json"
geoipUrl: "https://geoip.kde.org/v1/calamares"
@@ -0,0 +1 @@
---
@@ -0,0 +1,4 @@
---
systemd: true
dbus: true
dbus-symlink: true
@@ -0,0 +1,25 @@
---
extraMounts:
- device: proc
fs: proc
mountPoint: /proc
- device: sys
fs: sysfs
mountPoint: /sys
- device: /dev
mountPoint: /dev
options: [bind]
- device: /dev/pts
fs: devpts
mountPoint: /dev/pts
- device: tmpfs
fs: tmpfs
mountPoint: /run
- device: /run/udev
mountPoint: /run/udev
options: [bind]
extraMountsEfi:
- device: efivarfs
fs: efivarfs
mountPoint: /sys/firmware/efi/efivars
@@ -0,0 +1,2 @@
---
# Copie /etc/NetworkManager du live vers le système cible (NM gérera le réseau).
@@ -1,54 +1,16 @@
# ============================================================
# FWS Linux — modules/packages.conf
# Paquets installés via pacman pendant l'installation
# ============================================================
---
# Étape post-unpackfs : on retire les paquets qui ne servent que dans
# l'ISO live (installeur + outils archiso). Les paquets utiles sont déjà
# présents sur le système cible parce qu'unpackfs a copié tout le live.
# Gestionnaire de paquets
backend: pacman
# Ne pas mettre à jour la base de données pacman (déjà dans le live)
update_db: false
update_system: false
operations:
- install:
# Base système
- base
- base-devel
- linux
- linux-headers
- linux-firmware
# Bootloader
- grub
- efibootmgr
- os-prober
- mkinitcpio-openswap
# Réseau
- networkmanager
- network-manager-applet
- wpa_supplicant
- dhcpcd
# Outils essentiels
- sudo
- nano
- vim
- git
- curl
- wget
- htop
- bash-completion
# Locale & timezone
- tzdata
# Optionnel — retire ce qui ne correspond pas à FWS
- pipewire
- pipewire-pulse
- wireplumber
# Paquets à retirer du système live (pas nécessaires après install)
# - remove:
- remove:
- calamares
- calamares-config
- kpmcore
- archinstall
- livecd-sounds
- mkinitcpio-archiso
@@ -1,34 +1,22 @@
# ============================================================
# FWS Linux — modules/partition.conf
# ============================================================
# Backend de partitionnement
backend: kpmcore
# Autoriser le partitionnement manuel
allowManualPartitioning: true
# Schéma de partition par défaut (pour install automatique)
# Options: mbr, gpt
defaultPartitionTableType: gpt
# Swap
# Options: none, small, suspend, file
defaultSwapType: small
# Taille minimale des partitions en MiB
defaultFileSystemType: "ext4"
# Partitions EFI (pour UEFI)
---
efiSystemPartition: "/boot/efi"
efiSystemPartitionSize: 300
efiSystemPartitionSize: 300M
efiSystemPartitionName: EFI
# Point de montage racine
requiredStorage: 20.0
userSwapChoices:
- none
- small
- suspend
- file
# Systèmes de fichiers proposés à l'utilisateur
drawNestedPartitions: true
alwaysShowPartitionLabels: true
initialPartitioningChoice: replace
initialSwapChoice: small
defaultFileSystemType: "ext4"
availableFileSystemTypes: ["ext4", "btrfs", "xfs", "f2fs"]
# Chiffrement
# Activer le chiffrement LUKS
allowZfs: true
enableLuksAutomatedPartitioning: true
allowManualPartitioning: true
@@ -1,23 +1,15 @@
# ============================================================
# FWS Linux — modules/services-systemd.conf
# Services systemd activés sur le système installé
# ============================================================
---
services:
# Réseau
- name: NetworkManager
mandatory: true
# DHCP
- name: dhcpcd
mandatory: false
- name: systemd-resolved
mandatory: true
# Heure synchronisée
- name: systemd-timesyncd
mandatory: true
# Ajoute ici tes services FWS supplémentaires
# - name: mon-service-fws
# mandatory: false
- name: sshd
mandatory: false
targets: []
@@ -1,16 +1,9 @@
# ============================================================
# FWS Linux — modules/unpackfs.conf
# Copie le système live vers le disque cible
# ============================================================
---
# Copie le squashfs du live vers le disque cible.
# Le chemin /run/archiso/bootmnt/<install_dir>/<arch>/airootfs.sfs
# doit correspondre à `install_dir` dans configs/releng/profiledef.sh ("fws").
unpack:
# Source : le squashfs de l'ISO FWS
# Adapte "FWS" selon la valeur de iso_name dans profiledef.sh
- source: /run/archiso/bootmnt/FWS/x86_64/airootfs.sfs
sourcefs: squashfs
- source: "/run/archiso/bootmnt/fws/x86_64/airootfs.sfs"
sourcefs: "squashfs"
destination: ""
# Alternative si tu utilises erofs au lieu de squashfs :
# - source: /run/archiso/bootmnt/FWS/x86_64/airootfs.erofs
# sourcefs: erofs
# destination: ""
@@ -1,39 +1,24 @@
# ============================================================
# FWS Linux — modules/users.conf
# ============================================================
# Nom d'hôte par défaut
---
defaultGroups:
- users
- lp
- wheel
- audio
- video
- network
- storage
- wheel
- audio
- optical
- scanner
- power
- lp
- scanner
# Autoriser le login automatique
autologinGroup: autologin
# Sudoers — donne les droits sudo au groupe wheel
sudoersGroup: wheel
# Shell par défaut pour les nouveaux utilisateurs
setRootPassword: true
doAutologin: false
userShell: /bin/bash
# Hostname par défaut
hostname:
location: EtcFile
template: "fws-${first}"
# Règles pour les mots de passe
passwordRequirements:
minLength: 6
maxLength: -1
nonempty: true
minLength: 6
maxLength: -1
nonempty: true
# Permet de définir le même mot de passe pour root et user
allowWeakPasswords: false
allowWeakPasswords: false
allowWeakPasswordsDefault: false
@@ -1,29 +1,20 @@
# ============================================================
# FWS Linux — modules/welcome.conf
# ============================================================
---
showSupportUrl: true
showKnownIssuesUrl: true
showReleaseNotesUrl: false
showDonateUrl: false
# Afficher les conditions requises avant l'installation
showSupportUrl: true
showKnownIssuesUrl: true
showReleaseNotesUrl: false
showDonateUrl: false
# Vérifications système requises
requirements:
# Espace disque minimum en MiB
requiredStorage: 20.0
# RAM minimum en MiB
requiredRam: 2.0
# Vérifier la connexion internet (optionnel)
checkInternet: false
# Vérifier si on tourne en live (pas déjà installé)
checkForRoot: true
# Vérifier l'alimentation (AC power)
checkPower: true
# Ne bloque pas l'install si pas connecté
internetCheckUrl: "https://cloudflare.com"
requiredStorage: 8.0
requiredRam: 1.5
internetCheckUrl: "https://archlinux.org"
check:
- storage
- ram
- power
- root
- screen
required:
- storage
- ram
- root
@@ -1,21 +1,45 @@
---
componentName: fws
# ============================================================
# FWS — Calamares settings
# ============================================================
strings:
productName: FWS
shortProductName: FWS
version: 2026.03
versionedName: FWS 2026.03
bootloaderEntryName: FWS
productUrl: https://github.com/ton-repo/fws
supportUrl: https://github.com/ton-repo/fws/issues
knownIssuesUrl: https://github.com/ton-repo/fws/issues
releaseNotesUrl: https://github.com/ton-repo/fws
modules-search: [ local, /usr/lib/calamares/modules ]
images:
productLogo: logo.png
productIcon: logo.png
productWelcome: logo.png
sequence:
- show:
- welcome
- locale
- keyboard
- partition
- users
- summary
- exec:
- partition
- mount
- unpackfs
- machineid
- fstab
- locale
- keyboard
- localecfg
- users
- hostname
- hwclock
- networkcfg
- initcpiocfg
- initcpio
- grubcfg
- bootloader
- packages
- services-systemd
- umount
- show:
- finished
slideshow: show.qml
slideshowAPI: 2
branding: fws
prompt-install: true
dont-chroot: false
oem-setup: false
disable-cancel: false
disable-cancel-during-exec: false
@@ -1,11 +0,0 @@
[Match]
Type=ether
# Exclude virtual Ethernet interfaces
Kind=!*
[Link]
RequiredForOnline=routable
[Network]
DHCP=yes
MulticastDNS=yes
@@ -1,2 +0,0 @@
[Network]
IPv6PrivacyExtensions=yes
@@ -1,16 +0,0 @@
[Unit]
Description=Calamares Installer
After=xorg-start.service
Requires=xorg-start.service
[Service]
Type=simple
User=root
Environment=DISPLAY=:0
ExecStartPre=/bin/sleep 2
ExecStart=/usr/bin/calamares
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
@@ -1 +0,0 @@
/usr/lib/systemd/system/cloud-config.service
@@ -1 +0,0 @@
/usr/lib/systemd/system/cloud-final.service
@@ -1 +0,0 @@
/usr/lib/systemd/system/cloud-init-local.service
@@ -1 +0,0 @@
/usr/lib/systemd/system/cloud-init-main.service
@@ -1 +0,0 @@
/usr/lib/systemd/system/cloud-init-network.service
@@ -1 +0,0 @@
/usr/lib/systemd/system/systemd-networkd-wait-online.service
@@ -1 +0,0 @@
/usr/lib/systemd/system/systemd-networkd.socket
@@ -1,6 +0,0 @@
# Allow systemd-networkd-wait-online to succeed with one interface, otherwise, if multiple network interfaces exist,
# network-online.target gets needlessly delayed.
# See https://wiki.archlinux.org/title/systemd-networkd#systemd-networkd-wait-online
[Service]
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any
@@ -1,14 +0,0 @@
[Unit]
Description=Xorg Display Server
After=systemd-logind.service
Wants=systemd-logind.service
[Service]
Type=simple
User=root
ExecStart=/usr/bin/Xorg :0 vt1 -nolisten tcp
Restart=on-failure
RestartSec=2
[Install]
WantedBy=multi-user.target
+2
View File
@@ -1,4 +1,6 @@
#!/bin/sh
# Lancé par startx (cf. /root/.zprofile)
xsetroot -solid "#1a1a2e"
openbox &
sleep 1
exec calamares
+4 -7
View File
@@ -1,8 +1,5 @@
# Fallback si les services systemd n'ont pas démarré Calamares
if [ "$(tty)" = "/dev/tty1" ] && [ -z "$DISPLAY" ]; then
Xorg :0 vt1 &
sleep 2
DISPLAY=:0 openbox &
sleep 1
DISPLAY=:0 calamares
# Démarrage automatique de Xorg + Calamares sur tty1 (autologin root).
# La session X exécute /root/.xinitrc qui lance Openbox + Calamares.
if [[ "$(tty)" == "/dev/tty1" && -z "$DISPLAY" ]]; then
exec startx -- vt1
fi