[EN/DE] Framework 16: Visual freezes on Cinnamon/X11 (Idle & Load) - SOLVED
The Solution (Quick Fix)
The root cause is unstable PCIe Link Power Management (ASPM/L1 Substates). To stabilize the system, specific kernel parameters are required:
- Edit
/etc/default/gruband update the boot line:
GRUB_CMDLINE_LINUX_DEFAULT="... amdgpu.gpu_recovery=1 pcie_port_pm=off amd_pstate=active iommu=pt" - Run
sudo update-gruband reboot.
Searchable Error Logs
If you see these errors in dmesg or journalctl, this fix is for you:
Scenario A: Video Stream / Idle (Flip Timeout)
Click to view Error Logs
[drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx_0.0.0 timeout
[drm:amdgpu_dm_atomic_commit_tail [amdgpu]] *ERROR* Waiting for fences timed out!
amdgpu 0000:c4:00.0: [drm] *ERROR* [CRTC:79:crtc-0] flip_done timed out
Scenario B: High Load / PCIe Sync
Click to view Error Logs
amdgpu: [drm] Skip scheduling IBs!
amdgpu 0000:03:00.0: amdgpu: GPU reset begin!
pcieport 0000:00:01.1: PCIe Bus Error: severity=Corrected, type=Physical Layer
Scenario C: General Display Hang
Click to view Error Logs
amdgpu 0000:03:00.0: amdgpu: [drm] Cannot find any crtc or sizes
Technical Specs / Technische Daten
- Laptop: Framework 16 (AMD Ryzen™ 7040 Series)
- OS: Debian 13 (Trixie) - Fresh install 2026-02-03
- Kernel: 6.12.63+deb13-amd64
- Desktop: Cinnamon (X11) / SDDM
- BIOS: 4.03 (Updated on 2026-02-12, coming from 3.05)
- Firmware: Latest upstream amdgpu binaries from kernel.org.
[EN] Detailed Report: 50 Days of Troubleshooting
Summary
Hello Framework Community,
I’ve been fighting random freezes for over a month. In my case, it was a combination of Cinnamon, X11, and PCIe Bus power management.
The Backstory: Thermals vs. Stability
It started on Debian 12. The system was stable but had thermal issues (emergency shutdowns under full load). After cleaning the device, the thermal shutdowns persisted. To better manage power states and implement a 90°C limit via the kernel/P-states, I switched to Debian 13 (Trixie) on 2026-02-03. The thermal issue was solved, but this is exactly when the freezing started.
The Symptoms
The screen would suddenly freeze, but the system remained “alive” in the background:
- Interaction: The mouse cursor often still moved and changed shape, and clicks still triggered actions. I could even blindly type messages into a Twitch chat and read them simultaneously on my phone.
- Background: SSH access was stable. Heavy terminal workloads continued to run and finished without errors.
- Variations: Sometimes the freeze happened during the screensaver – the frozen clock was a huge help for log analysis. Switching to TTY3 (CTRL+ALT+F3) was always possible.
The Desperate Search
- iGPU Thermal Load: Since the CPU was previously “boiling” at 100°C, I suspected iGPU failures. Setting a 90°C limit in BIOS didn’t help.
- GPU Sleep: I suspected the GPUs weren’t waking up fast enough from sleep modes.
- BIOS & Input Devices (2026-02-12): As a desperate measure, I updated the BIOS from 3.05 to 4.03 and updated the keyboard/numpad firmware. No effect.
The Breakthrough: The PCIe Bus
Since switching to TTY3 always worked, I could rule out a hardware defect. The focus shifted to the bridge between them: the PCIe bus.
Result
Since applying pcie_port_pm=off, amd_pstate=active, and iommu=pt, my system has been running absolutely stable for 4 days. Previously, a freeze within 24 hours was guaranteed.
[DE] Ausführlicher Bericht: 50 Tage Fehlersuche
Zusammenfassung
Hallo liebe Framework-Gemeinschaft,
ich habe über einen Monat lang gegen willkürliche Freezes gekämpft. In meinem Fall war es eine tückische Kombination aus Cinnamon, X11 und dem Power-Management des PCIe-Bus.
Die Vorgeschichte: Thermik vs. Stabilität
Angefangen hat alles unter Debian 12. Das System lief stabil, hatte aber thermische Notabschaltungen unter Volllast. Um das Power-Management besser zu verwalten und die 90°C-Bremse via Kernel umzusetzen, entschied ich mich am 03.02.2026 für den Wechsel auf Debian 13 (Trixie). Das thermische Problem war gelöst – doch genau hier begann das Freezing-Thema.
Die Symptome
Der Bildschirm fror ein, aber das System “lebte” weiter:
- Interaktion: Mauszeiger beweglich, Klicks lösten Aktionen aus. Ich konnte blind Nachrichten in einen Twitch-Chat tippen und am Handy mitlesen.
- Hintergrund: SSH stabil, Workloads liefen fehlerfrei weiter.
- Variationen: Freezes im Bildschirmschoner halfen durch die Uhrzeit bei der Log-Analyse. Wechsel auf TTY3 (STRG+ALT+F3) war immer möglich.
Die Fehlersuche
- iGPU Last: Vermutung von Aussetzern bei Hitze. Limitierung auf 90°C brachte keine Besserung.
- GPU-Sleep: Verdacht, dass Karten nicht schnell genug aufwachen.
- BIOS & Eingabegeräte (12.02.2026): Als Verzweiflungstat BIOS-Update von 3.05 auf 4.03 und Tastatur- sowie Nummernblock-Firmware eingespielt. Ohne Effekt.
Der Durchbruch: Der PCIe-Bus
Da TTY3 immer funktionierte, schloss ich einen Grafik-Hardwaredefekt aus. Der Fokus rückte auf die Kommunikation: den PCIe-Bus.
Ergebnis
Mit pcie_port_pm=off, amd_pstate=active und iommu=pt arbeitet mein System seit 4 Tagen absolut stabil. Zuvor war ein Freeze innerhalb von 24 Stunden garantiert – mal nach 2, mal nach 18 Stunden.
Technical Appendix / Technischer Anhang
Click to view Bridge Status & Reset Script
Bridge Status (sudo lspci -vv -s 00:01.1):
Verified disabled L1 substates (minus sign -):
L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
Emergency Reset Script (via TTY):
#!/bin/bash
# dGPU entfernen und neu einlesen
# Remove and re-read dGPU
echo 1 | sudo tee /sys/bus/pci/devices/0000:03:00.0/remove
sleep 2
echo 1 | sudo tee /sys/bus/pci/rescan
sudo systemctl restart sddm