From 23699cfab73e4513cc4742c811deb855a175d2aa Mon Sep 17 00:00:00 2001 From: CyberMind-FR Date: Fri, 27 Mar 2026 07:37:49 +0100 Subject: [PATCH] Add AZERTY keyboard, fix network on live boot build-installer-iso.sh: - Add French AZERTY keyboard layout (/etc/default/keyboard) - Add keyboard-configuration, console-setup, kbd, locales packages - Fix netplan to match all interface patterns (en*, eth*, ens*, enp*) - Enable systemd-networkd service - Load keyboard with loadkeys fr on live-init preseed-apply.sh: - Skip network config on live boot (use DHCP instead) - Network config from preseed only applied after installation Co-Authored-By: Claude Opus 4.5 --- image/build-installer-iso.sh | 59 ++++++++++++++++++++++++++++++++---- image/preseed-apply.sh | 31 +++++++++++-------- 2 files changed, 72 insertions(+), 18 deletions(-) diff --git a/image/build-installer-iso.sh b/image/build-installer-iso.sh index e35a5b10..6b4cdcab 100755 --- a/image/build-installer-iso.sh +++ b/image/build-installer-iso.sh @@ -151,6 +151,7 @@ INCLUDE_PKGS+=",iproute2,iputils-ping,ethtool,net-tools,wireguard-tools" INCLUDE_PKGS+=",sudo,less,vim-tiny,logrotate,cron,rsync,jq,dnsmasq" INCLUDE_PKGS+=",linux-image-amd64,live-boot,live-config,live-config-systemd" INCLUDE_PKGS+=",grub-efi-amd64,grub-pc-bin,efibootmgr,pciutils,usbutils,parted,dosfstools" +INCLUDE_PKGS+=",keyboard-configuration,console-setup,kbd,locales" # Firmware for real hardware support INCLUDE_PKGS+=",firmware-linux-free" @@ -206,27 +207,66 @@ sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' "${ROOTFS}/etc echo "Europe/Paris" > "${ROOTFS}/etc/timezone" chroot "${ROOTFS}" dpkg-reconfigure -f noninteractive tzdata 2>/dev/null || true -# Locale -chroot "${ROOTFS}" bash -c "locale-gen en_US.UTF-8 || true" -chroot "${ROOTFS}" bash -c "update-locale LANG=en_US.UTF-8 || true" +# Locale - French +chroot "${ROOTFS}" bash -c "locale-gen en_US.UTF-8 fr_FR.UTF-8 || true" +chroot "${ROOTFS}" bash -c "update-locale LANG=fr_FR.UTF-8 || true" -# Netplan - DHCP by default +# Keyboard - AZERTY French +mkdir -p "${ROOTFS}/etc/default" +cat > "${ROOTFS}/etc/default/keyboard" </dev/null || true + +# Console keymap for virtual terminals +mkdir -p "${ROOTFS}/etc/console-setup" +cat > "${ROOTFS}/etc/default/console-setup" < "${ROOTFS}/etc/vconsole.conf" + +# Netplan - DHCP on ALL ethernet interfaces mkdir -p "${ROOTFS}/etc/netplan" cat > "${ROOTFS}/etc/netplan/00-live.yaml" </dev/null || true + ok "Base configuration complete" # Disable network-wait-online to prevent boot hang @@ -588,6 +628,13 @@ cat > "${ROOTFS}/usr/bin/secubox-live-init" <<'LIVESCRIPT' # SecuBox Live System Initialization set -e +# Load French AZERTY keyboard +loadkeys fr 2>/dev/null || true +setupcon 2>/dev/null || true + +# Apply network configuration +netplan apply 2>/dev/null || true + # Wait for network sleep 3 diff --git a/image/preseed-apply.sh b/image/preseed-apply.sh index c3c3ffed..ddb6c31a 100755 --- a/image/preseed-apply.sh +++ b/image/preseed-apply.sh @@ -71,19 +71,26 @@ fi # ============================================ log "[2/7] Applying network configuration..." -# Netplan -if [ -d "${PRESEED_DIR}/network/netplan" ]; then - mkdir -p /etc/netplan - cp -a "${PRESEED_DIR}/network/netplan/"* /etc/netplan/ 2>/dev/null || true - log " - Netplan configs restored" -fi +# Skip network config on live boot - use DHCP instead +# Network config will be applied after installation to disk +if [ -f /run/live/medium ] || [ -d /run/live ]; then + log " - Live boot: skipping network config (using DHCP)" + log " - Network config will be applied after installation" +else + # Netplan - only on installed systems + if [ -d "${PRESEED_DIR}/network/netplan" ]; then + mkdir -p /etc/netplan + cp -a "${PRESEED_DIR}/network/netplan/"* /etc/netplan/ 2>/dev/null || true + log " - Netplan configs restored" + fi -# WireGuard -if [ -d "${PRESEED_DIR}/network/wireguard" ]; then - mkdir -p /etc/wireguard - cp "${PRESEED_DIR}/network/wireguard/"*.conf /etc/wireguard/ 2>/dev/null || true - chmod 600 /etc/wireguard/*.conf 2>/dev/null || true - log " - WireGuard configs restored" + # WireGuard - only on installed systems + if [ -d "${PRESEED_DIR}/network/wireguard" ]; then + mkdir -p /etc/wireguard + cp "${PRESEED_DIR}/network/wireguard/"*.conf /etc/wireguard/ 2>/dev/null || true + chmod 600 /etc/wireguard/*.conf 2>/dev/null || true + log " - WireGuard configs restored" + fi fi # ============================================