[WORKAROUND] HDMI Expandsion card prevents shutdown/reboot if still connected to external display

Hi all, I have a Framework 13 12th gen Intel running Pop OS!

OS: Pop!_OS 22.04 LTS x86_64 
Host: Laptop (12th Gen Intel Core) A4 
Kernel: 6.1.0-1029-oem 
Uptime: 10 mins 
Packages: 2228 (dpkg), 25 (flatpak) 
Shell: zsh 5.8.1 
Resolution: 2256x1504 
DE: GNOME 42.5 
WM: Mutter 
WM Theme: Pop 
Theme: Orchis-Red-Dark-Compact [GTK2/3] 
Icons: BeautySolar [GTK2/3] 
Terminal: tilix 
CPU: 12th Gen Intel i5-1240P (16) @ 4.400GHz 
GPU: Intel Alder Lake-P 
Memory: 2443MiB / 15696MiB 

Modules
USB-C =>[Rear Left] [Right Rear]<= USB-C
USB-A =>[Front Left] [Front Right]<= HDMI

Monitor is Samsung U something running at 4k 60Hz
Rear left USB-C has a dock connected for additional USB and power in using the official FW charger, but does not affect the issue if disconnected.

My issue at the moment is that whilst the HDMI expansion card is connected to a monitor, the laptop fails to reboot or shutdown. On both instances, the session will exit, go to a black screen, briefly show the framework branding on the laptop screen only, before showing it again and getting stuck. At this point, the external monitor will also show the framework branding. The laptop will sit indefinitely in this state it seems with no way to switch to TTY (not sure it’s available at this stage).

The fact this also happens with shutdown tells me the device doesn’t even get to POST as it’s still technically on its way down.

I can confirm the device will reboot and shutdown normally if no monitor is connected to the HDMI card.

I have tried the general kernel which is the default for Pop OS (believe current is 6.6.10) and the OEM kernel (6.1.0-1028/1029), the issue occurs on both.

I still need to try a live fedora session.

When the framework logo is showing during the stuck reboot/shutdown, hit Esc. It should drop to the text console and hopefully show something informative about what is holding things up.

It doesn’t appear to drop to console, it doesn’t respond to escape.

Ah, just now it eventually actually completed the reboot. Rebooting again I immediately hit escape.
Sits on the following it seems…
A stop job is running for Make remote CUPS printers available locally (X/1min 30s)
But that only lasts for 15 seconds. And doesn’t always show.

Seems now it will reboot after a while, it does eventually move to to console output, but none of what I see shows in the journalctl.

This is what I was able to capture of it before:

The display driver is featured in that stack trace, so yeah it’s starting to look like the HDMI expansion card might have something to do with this. I assume this problem goes away if the card is not installed?

If so, looks like time to contact support.

The problem went away whilst the card was still connected but the hdmi cable was unplugged. However, it seems to have stopped doing it for the moment and reboots fine. Will keep an eye on it, will be using it again for 12 hours a day from Tuesday so will be interesting if it starts happening again.

Do let us know if fedora 39 live session exhibits the same behavior. :slight_smile:

I will try tomorrow. Annoyingly I don’t think a quick session is enough to encounter it. It’s usually after it has been on for the day.

Edit: forgot to do this so will have to do it Friday.

I’ve sorted the shutdown/reboot when the CUPS service holds the process for nearly 90 seconds, disabled the service with sudo systemctl stop cups-browsed and sudo systemctl disable cups-browsed.service. But struggling to get the full output when it’s hanging on the other screen.

I am currently testing with the Fedora live environment.

Okay, the Kernel panics do not appear to happen with the Fedora Live. They seem to be always i915 related and only happens with an external monitor connected.

Doing some research with i915 and flip_done timeout errors and found the following


Random freezes - i915 flip_done - kerenl 6.2.0 and newer : pop_os (reddit.com)

I cannot see that this was actually released though.

The additional lines I see:

i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] flip_done timed out
i915 0000:00:02.0: [drm] *ERROR* [CRTC:131:pipe B] flip_done timed out
i915 0000:00:02.0: [drm] *ERROR* flip_done timed out
i915 0000:00:02.0: [drm] *ERROR* [CRTC:80:pipe A] commit wait timed out
i915 0000:00:02.0: [drm] *ERROR* [CRTC:131:pipe B] commit wait timed out
i915 0000:00:02.0: [drm] *ERROR* [CONNECTOR:236:eDP-1] commit wait timed out
i915 0000:00:02.0: [drm] *ERROR* [CONNECTOR:258:DP-2] commit wait timed out
i915 0000:00:02.0: [drm] *ERROR* [PLANE:31:plane 1A] commit wait timed out
i915 0000:00:02.0: [drm] *ERROR* [PLANE:82:plane 1B] commit wait timed out
i915 0000:00:02.0: [drm] *ERROR* [ENCODER:235:DDI A/PHY A] PPS 0 panel status timeout: PP_STATUS: 0x80000008 PP_CONTROL: 0x80000867

Keeping an eye on this issue too: System freezes until force reset reason unknown · Issue #3130 · pop-os/pop (github.com)

More similar reports: Alder Lake-UP3 GT2 Screens Freeze, System responsive (#8421) · Issues · drm / intel · GitLab

I think I have a work around. Slight change to the kernelstub entry as I misunderstood it’s use. By setting kernelstub -a i915.dmc_firmware_path="" the hang on reboot/shutdown appears to no longer happen. So there is an issue with the files it usually loads.