Hello everyone,
[The below bug solving was done with the assistance of Lumo (Proton AI agent) the summary was also created with the support of Lumo.]
I'd like to share a fully documented suspend/resume issue that is kernel-related, not Zorin 18.1-related: Zorin OS 18.1 Pro itself runs flawlessly on my machine — but the 18.1 upgrade brought the HWE kernel line (7.0.0-34/38) with it, and that kernel series breaks resume on this hardware. Reverting to the GA kernel 6.8.0-146 while staying on Zorin 18.1 Pro fixed everything.
Hardware
- Lenovo ThinkPad X1 Carbon 6th Generation
- Intel Core i7-8550U, Intel UHD Graphics 620 (Kaby Lake, KBL GT2)
- Zorin OS 18.1 Pro (Ubuntu 24.04 base), Wayland
- Kernels tested: 7.0.0-34, 7.0.0-38, 6.8.0-146
Symptoms (only on 7.0.x)
On the 7.0.x kernels that shipped with the 18.1 upgrade:
- Internal eDP panel stays black after suspend/resume. The system does wake (external monitor works fine, GPU is alive) — only the internal panel never comes back.
- Initially also a black screen after the splash on boot, plus panel flickering during use.
On the same machine, same OS version, kernel 6.8.0-146: no symptoms whatsoever — clean boot and suspend/resume fully functional, verified over three consecutive wake cycles.
Debugging Trail (Tested and Falsified)
| Hypothesis | Test | Result |
|---|---|---|
| PSR race | i915.enable_psr=0 confirmed active during failure |
|
| DC-states | i915.enable_dc=0 |
|
| FBC | i915.enable_fbc=0 |
|
| C-states | intel_idle.max_cstate=2 |
|
| Suspend mode | deep (S3) vs s2idle |
|
| Hibernate workaround | 16 GB swapfile + resume= + resume_offset |
|
| Kernel 7.0.0-34 | Suspend test executed | |
| Kernel 7.0.0-38 | Current default | |
| Kernel 6.8.0-146 | GA kernel from ubuntu noble main |
All standard i915 workarounds failed without breaking boot. The regression spans the entire 7.0.x line on this hardware — not a regression between point releases, but a systemic issue in that kernel branch.
Solution
The GA kernel 6.8.0-146 (Ubuntu noble main) works flawlessly. No kernel parameters needed at all — just the kernel itself:
`# /etc/default/grub
GRUB_DEFAULT="Advanced options for Zorin OS>Zorin OS, with Linux 6.8.0-146-generic"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
sudo update-grub
sudo apt-mark hold linux-image-generic-hwe-24.04 # prevent silent jump back to 7.0.x`
The apt-mark hold is essential: without it, the HWE meta-package pulls the system back onto 7.0.x on the next upgrade.
Note for Others
If you're on 8th-gen Intel (Kaby Lake) graphics and your internal screen dies after suspend while an external monitor works — regardless of which distro version you're running — the root cause is very likely the 7.0.x i915 resume path.
This is not a Zorin 18.1 issue: 18.1 runs perfectly on the GA kernel. The problem is the HWE kernel line that came with the 18.1 upgrade. Switching the kernel line (not the distro) is the shortest path to a working machine.
Kernel logs from failing cycles can be pulled with:
journalctl -b -0 -k --grep "suspend|resume|eDP|link training|hotplug"
On my failing boots, notable signals included:
i915_hotplug_work_func [i915] hogged CPU for >13333uswarnings- GNOME Shell
meta_monitor_manager_get_logical_monitor_from_number: assertion 'logical_monitor != NULL' failed— consistent with the eDP connector dropping out of the monitor list after resume.
Recommendation
If you maintain Zorin OS 18.1 or Ubuntu-based systems with Kaby Lake graphics, consider:
- Documenting that kernel 7.0.x has known suspend/resume regressions on Intel UHD 620 (KBL GT2)
- Not shipping 7.0.x as the default HWE kernel for 18.1, or providing explicit downgrade instructions
- Users who encounter this: downgrade to the GA 6.8 kernel (
sudo apt install linux-image-generic) and pin it as shown above
