fix(kiosk): laptop eDP corruption — i915 stability params + panel-sized Chromium window
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 <noreply@anthropic.com>
This commit is contained in:
parent
7a08ed6687
commit
7e996d6244
@ -2979,7 +2979,10 @@ if [ -d "$BOOT_MEDIA/archipelago/plymouth-theme" ]; then
|
|||||||
ln -sf /usr/share/plymouth/themes/archipelago/archipelago.plymouth \
|
ln -sf /usr/share/plymouth/themes/archipelago/archipelago.plymouth \
|
||||||
/mnt/target/etc/alternatives/default.plymouth 2>/dev/null || true
|
/mnt/target/etc/alternatives/default.plymouth 2>/dev/null || true
|
||||||
# Configure clean boot: splash, suppress kernel noise, hide cursor
|
# 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
|
/mnt/target/etc/default/grub 2>/dev/null || true
|
||||||
echo " Installed Archipelago Plymouth theme on target"
|
echo " Installed Archipelago Plymouth theme on target"
|
||||||
fi
|
fi
|
||||||
@ -3479,7 +3482,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
menuentry "Install Archipelago" --hotkey=i {
|
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
|
initrd ($root)/live/initrd.img
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3547,7 +3550,7 @@ DEFAULT install
|
|||||||
LABEL install
|
LABEL install
|
||||||
MENU LABEL Install Archipelago
|
MENU LABEL Install Archipelago
|
||||||
KERNEL /live/vmlinuz
|
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
|
MENU DEFAULT
|
||||||
|
|
||||||
LABEL install-verbose
|
LABEL install-verbose
|
||||||
|
|||||||
@ -25,6 +25,12 @@ fi
|
|||||||
KIOSK_SAFE_AREA_X_PX=${ARCHIPELAGO_KIOSK_SAFE_AREA_X_PX:-}
|
KIOSK_SAFE_AREA_X_PX=${ARCHIPELAGO_KIOSK_SAFE_AREA_X_PX:-}
|
||||||
KIOSK_SAFE_AREA_Y_PX=${ARCHIPELAGO_KIOSK_SAFE_AREA_Y_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() {
|
configure_display() {
|
||||||
command -v xrandr >/dev/null 2>&1 || return 0
|
command -v xrandr >/dev/null 2>&1 || return 0
|
||||||
|
|
||||||
@ -65,6 +71,8 @@ configure_display() {
|
|||||||
width=${mode%x*}
|
width=${mode%x*}
|
||||||
height=${mode#*x}
|
height=${mode#*x}
|
||||||
case "$width:$height" in *[!0-9:]*|:*) width=1920; height=1080 ;; esac
|
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
|
# Browser safe-area fallback for TVs that crop edges. Driver underscan is
|
||||||
# preferable, but many Intel HDMI outputs do not expose that property.
|
# preferable, but many Intel HDMI outputs do not expose that property.
|
||||||
@ -116,7 +124,7 @@ while true; do
|
|||||||
--disable-component-update \
|
--disable-component-update \
|
||||||
$GPU_FLAGS \
|
$GPU_FLAGS \
|
||||||
--renderer-process-limit=2 \
|
--renderer-process-limit=2 \
|
||||||
--window-size=1920,1080 \
|
--window-size=${KIOSK_MODE_W},${KIOSK_MODE_H} \
|
||||||
--window-position=0,0 \
|
--window-position=0,0 \
|
||||||
--start-fullscreen \
|
--start-fullscreen \
|
||||||
--force-device-scale-factor=1 \
|
--force-device-scale-factor=1 \
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user