From 7e996d62441ba41dc691a227bd599f5f78d95550 Mon Sep 17 00:00:00 2001 From: Dorian Date: Mon, 13 Jul 2026 21:59:41 +0100 Subject: [PATCH] =?UTF-8?q?fix(kiosk):=20laptop=20eDP=20corruption=20?= =?UTF-8?q?=E2=80=94=20i915=20stability=20params=20+=20panel-sized=20Chrom?= =?UTF-8?q?ium=20window?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ThinkPad X250 (Broadwell HD 5500) internal panels show horizontal corruption bands at the kiosk; known i915 eDP power-feature issue. Boot installed and live systems with i915.enable_ips=0 enable_psr=0 enable_fbc=0 (no-ops off Intel, nothing lost on a kiosk). Debug boot entries stay stock for A/B. Also size the Chromium kiosk window from the detected mode instead of a hardcoded 1920x1080 that clips on 1366x768 panels. Co-Authored-By: Claude Fable 5 --- image-recipe/_archived/build-auto-installer-iso.sh | 9 ++++++--- image-recipe/configs/archipelago-kiosk-launcher.sh | 10 +++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/image-recipe/_archived/build-auto-installer-iso.sh b/image-recipe/_archived/build-auto-installer-iso.sh index 9e88e2bf..c793e31c 100755 --- a/image-recipe/_archived/build-auto-installer-iso.sh +++ b/image-recipe/_archived/build-auto-installer-iso.sh @@ -2979,7 +2979,10 @@ if [ -d "$BOOT_MEDIA/archipelago/plymouth-theme" ]; then ln -sf /usr/share/plymouth/themes/archipelago/archipelago.plymouth \ /mnt/target/etc/alternatives/default.plymouth 2>/dev/null || true # Configure clean boot: splash, suppress kernel noise, hide cursor - sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT=".*"/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash loglevel=0 rd.systemd.show_status=false vt.global_cursor_default=0 acpi=force"/' \ + # i915.enable_ips/psr/fbc=0: Broadwell-era eDP panels (e.g. ThinkPad X250 + # HD 5500) show horizontal corruption bands with these power features on; + # a kiosk box gains nothing from them. Harmless no-ops on non-Intel. + sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT=".*"/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash loglevel=0 rd.systemd.show_status=false vt.global_cursor_default=0 acpi=force i915.enable_ips=0 i915.enable_psr=0 i915.enable_fbc=0"/' \ /mnt/target/etc/default/grub 2>/dev/null || true echo " Installed Archipelago Plymouth theme on target" fi @@ -3479,7 +3482,7 @@ else fi menuentry "Install Archipelago" --hotkey=i { - linux ($root)/live/vmlinuz boot=live components quiet splash loglevel=0 rd.systemd.show_status=false vt.global_cursor_default=0 acpi=force console=ttyS0,115200 console=tty0 + linux ($root)/live/vmlinuz boot=live components quiet splash loglevel=0 rd.systemd.show_status=false vt.global_cursor_default=0 acpi=force i915.enable_ips=0 i915.enable_psr=0 i915.enable_fbc=0 console=ttyS0,115200 console=tty0 initrd ($root)/live/initrd.img } @@ -3547,7 +3550,7 @@ DEFAULT install LABEL install MENU LABEL Install Archipelago KERNEL /live/vmlinuz - APPEND initrd=/live/initrd.img boot=live components quiet loglevel=0 rd.systemd.show_status=false vt.global_cursor_default=0 acpi=force + APPEND initrd=/live/initrd.img boot=live components quiet loglevel=0 rd.systemd.show_status=false vt.global_cursor_default=0 acpi=force i915.enable_ips=0 i915.enable_psr=0 i915.enable_fbc=0 MENU DEFAULT LABEL install-verbose diff --git a/image-recipe/configs/archipelago-kiosk-launcher.sh b/image-recipe/configs/archipelago-kiosk-launcher.sh index 1e227760..bbd27c90 100644 --- a/image-recipe/configs/archipelago-kiosk-launcher.sh +++ b/image-recipe/configs/archipelago-kiosk-launcher.sh @@ -25,6 +25,12 @@ fi KIOSK_SAFE_AREA_X_PX=${ARCHIPELAGO_KIOSK_SAFE_AREA_X_PX:-} KIOSK_SAFE_AREA_Y_PX=${ARCHIPELAGO_KIOSK_SAFE_AREA_Y_PX:-} +# Actual mode of the kiosk output — configure_display overwrites these so +# Chromium's window matches the panel instead of assuming 1080p (a 1366x768 +# laptop panel otherwise gets a clipped oversized window). +KIOSK_MODE_W=1920 +KIOSK_MODE_H=1080 + configure_display() { command -v xrandr >/dev/null 2>&1 || return 0 @@ -65,6 +71,8 @@ configure_display() { width=${mode%x*} height=${mode#*x} case "$width:$height" in *[!0-9:]*|:*) width=1920; height=1080 ;; esac + KIOSK_MODE_W=$width + KIOSK_MODE_H=$height # Browser safe-area fallback for TVs that crop edges. Driver underscan is # preferable, but many Intel HDMI outputs do not expose that property. @@ -116,7 +124,7 @@ while true; do --disable-component-update \ $GPU_FLAGS \ --renderer-process-limit=2 \ - --window-size=1920,1080 \ + --window-size=${KIOSK_MODE_W},${KIOSK_MODE_H} \ --window-position=0,0 \ --start-fullscreen \ --force-device-scale-factor=1 \