# System configuration for Dell XPS 14/16 (Panther Lake) on Fedora: # - thermald: fix the boot race that leaves adaptive-only Panther Lake # without thermald # - kernel-install hook: sign *.dellptl* kernels with the akmods MOK key so # they boot with Secure Boot on # - power profiles: KDE's slider drives Dell thermal modes (dell-pc) and the # SoC power slider, which the legacy platform_profile can't reach # - camera: keep the CVS vision chip awake, it fails to resume from runtime # suspend and the camera then opens only once per boot # - display: a user service runs the panel at 120 Hz on AC and 60 Hz on # battery (settings in ~/.config/dell-xps-ptl/refresh.conf) # - IR camera: relay the HM1092 IR sensor (Y10, root only raw node) into # /dev/video42 as GREY for face login, sensor and IR LED on only while a # client streams Name: dell-xps-ptl-config Version: 1.7 Release: 1%{?dist} Summary: Fedora configuration for Dell XPS on Intel Panther Lake License: MIT URL: https://github.com/onuralpszr/xps-fedora BuildArch: noarch Source0: thermald-ptl-adaptive.conf Source1: 10-sign-dellptl.install Source3: platform-profile Source4: ppd-mapping Source5: tuned-xps-ptl-powersave.conf Source6: tuned-xps-ptl-balanced.conf Source7: tuned-xps-ptl-balanced-battery.conf Source8: tuned-xps-ptl-performance.conf Source9: 90-dell-xps-ptl-cvs.rules Source10: refresh-switch Source11: dell-xps-ptl-refresh.service Source12: ir-relay Source13: dell-xps-ptl-ir-relay.service Source14: 70-dell-xps-ptl-ir-relay.rules BuildRequires: systemd-rpm-macros BuildRequires: systemd-udev Requires: thermald # Signing hook tools; the key itself comes from `kmodgenca` (akmods) Requires: sbsigntools Requires: openssl # initramfs carried the old xe modprobe.d option Requires(posttrans): dracut Requires: tuned Requires: tuned-ppd Requires: python3 # refresh-switch: kscreen-doctor, busctl and gdbus Requires: libkscreen Requires: glib2 Requires: systemd # ir-relay: media-ctl and v4l2-ctl, numpy, v4l2loopback-ctl Requires: v4l-utils Requires: python3-numpy Requires: v4l2loopback %description thermald drop-in that waits for RAPL, coretemp and the INT3400 DPTF sensors before starting (Panther Lake is adaptive-only and otherwise ends up with no thermald), and a kernel-install plugin that re-signs locally built *.dellptl* kernels with the akmods MOK key for Secure Boot. Power profiles drive Dell's thermal modes and the SoC power slider through xps-ptl-* tuned profiles. A udev rule keeps the CVS camera vision chip awake so the camera opens more than once per boot. A user service switches the panel to 120 Hz on AC power and 60 Hz on battery. An IR camera relay turns the HM1092 IR sensor into /dev/video42 ("Dell IR Camera", 8-bit gray) for face login, with the sensor and IR LED on only while a client streams. %prep %build %install install -Dm644 %{SOURCE0} %{buildroot}%{_unitdir}/thermald.service.d/ptl-adaptive.conf install -Dm755 %{SOURCE1} %{buildroot}%{_prefix}/lib/kernel/install.d/10-sign-dellptl.install install -Dm755 %{SOURCE3} %{buildroot}%{_libexecdir}/dell-xps-ptl/platform-profile install -Dm755 %{SOURCE4} %{buildroot}%{_libexecdir}/dell-xps-ptl/ppd-mapping install -Dm644 %{SOURCE9} %{buildroot}%{_udevrulesdir}/90-dell-xps-ptl-cvs.rules install -Dm755 %{SOURCE10} %{buildroot}%{_libexecdir}/dell-xps-ptl/refresh-switch install -Dm644 %{SOURCE11} %{buildroot}%{_userunitdir}/dell-xps-ptl-refresh.service install -Dm755 %{SOURCE12} %{buildroot}%{_libexecdir}/dell-xps-ptl/ir-relay install -Dm644 %{SOURCE13} %{buildroot}%{_unitdir}/dell-xps-ptl-ir-relay.service install -Dm644 %{SOURCE14} %{buildroot}%{_udevrulesdir}/70-dell-xps-ptl-ir-relay.rules install -d %{buildroot}%{_userpresetdir} echo 'enable dell-xps-ptl-refresh.service' > %{buildroot}%{_userpresetdir}/80-dell-xps-ptl.preset # profile, Dell thermal mode, SoC power slider while read -r name dell soc; do d=%{buildroot}%{_prefix}/lib/tuned/profiles/xps-ptl-$name install -Dm644 %{_sourcedir}/tuned-xps-ptl-$name.conf $d/tuned.conf printf '#!/bin/bash\nexec %{_libexecdir}/dell-xps-ptl/platform-profile "$1" %s %s\n' \ "$dell" "$soc" > $d/platform.sh chmod 0755 $d/platform.sh done </dev/null 2>&1 || : %postun systemctl daemon-reload || : if [ $1 -eq 0 ]; then systemctl try-restart tuned.service tuned-ppd.service || : fi %files %{_unitdir}/thermald.service.d/ptl-adaptive.conf %{_prefix}/lib/kernel/install.d/10-sign-dellptl.install %{_libexecdir}/dell-xps-ptl/ %{_prefix}/lib/tuned/profiles/xps-ptl-*/ %{_udevrulesdir}/90-dell-xps-ptl-cvs.rules %{_userunitdir}/dell-xps-ptl-refresh.service %{_userpresetdir}/80-dell-xps-ptl.preset %{_unitdir}/dell-xps-ptl-ir-relay.service %{_udevrulesdir}/70-dell-xps-ptl-ir-relay.rules %changelog * Mon Oct 12 2026 Onuralp SEZER - 1.7-1 - Drop enable_psr2_sel_fetch=0: without the withdrawn fast wake quirk the LG OLED runs PSR2 with selective fetch and Early Transport without glitches * Sun Oct 11 2026 Onuralp SEZER - 1.6-1 - Add the dell-xps-ptl-ir-relay service: the HM1092 IR sensor as /dev/video42 "Dell IR Camera" (GREY 648x368) for face login, sensor and IR LED on only while a client streams; started by udev when hm1092 binds * Fri Oct 09 2026 Onuralp SEZER - 1.5-1 - Add the dell-xps-ptl-refresh user service: 120 Hz on AC power, 60 Hz on battery, configurable per user in ~/.config/dell-xps-ptl/refresh.conf * Thu Oct 08 2026 Onuralp SEZER - 1.4-1 - udev: keep the CVS camera vision chip out of runtime suspend; it fails to resume and the camera then opens only once per boot * Wed Oct 07 2026 Onuralp SEZER - 1.3-2 - Ship the tuned profiles as flat source files and generate their platform scripts, so the package builds in COPR * Tue Oct 06 2026 Onuralp SEZER - 1.3-1 - tuned-ppd: sysfs_acpi_monitor=false; its hotkey detection read the legacy platform_profile as "balanced" and undid every power-saver switch - platform-profile: no reset on stop * Tue Oct 06 2026 Onuralp SEZER - 1.2-1 - xps-ptl-* tuned profiles: power saver = Dell Quiet + SoC low-power, balanced = Optimized + balanced, performance = UltraPerformance + performance; tuned-ppd mapped to them (restored on removal) * Tue Oct 06 2026 Onuralp SEZER - 1.1-1 - xe: enable_psr2_sel_fetch=0 (PSR1) for the LG OLED; rebuild initramfs * Tue Oct 06 2026 Onuralp SEZER - 1.0-1 - thermald boot-race drop-in and dellptl kernel signing hook