Jetson Suspend After HDMI Black Screen
Phenomenon
After the AI Pod enters suspend mode, the device can be restored over the network. SSH and system services function normally, but the Ubuntu desktop on the HDMI display remains black. The screen does not recover.
Typical symptoms:
- The device can be accessed using
ssh nvidia@<设备 IP>. gdmordisplay-managerremainsactive.- The X11 session is still active.
- The HDMI display is detected, for example,
xrandrshowsHDMI-0 connected. - The local HDMI output is black; the GNOME desktop fails to render properly.
Diagnostics Commands
Log in to the device via SSH:
ssh nvidia@192.168.1.221Check system version:
cat /etc/nv_tegra_release
uname -aCheck graphics service status:
systemctl status gdm --no-pager
systemctl status display-manager --no-pager
loginctl list-sessionsCheck HDMI output status:
export DISPLAY=:0
export XAUTHORITY=/run/user/1000/gdm/Xauthority
xrandr --currentCheck suspend/resume and graphics stack logs:
journalctl -b --no-pager | egrep -i "suspend|resume|PM:|gnome-shell|mutter|Xorg|nvgpu|semaphore|error notifier" | tail -n 200If logs show content similar to this, it typically indicates that the system has recovered, but the NVIDIA graphics stack or GNOME Shell has not properly resumed.
nvgpu ... semaphore acquire timeout
nvgpu ... error notifier set to 24 ... owned by gnome-shell
gnome-shell / mutter DisplayConfig timeoutCause
This issue is not about the system failing to wake up from suspend; it is a graphics stack recovery failure.
In the Jetson Linux R36.4.3 / JetPack 6.2 environment, after suspend/resume, NVIDIA nvgpu, Xorg, GNOME Shell / Mutter may enter an inconsistent state. The system, network, and services recover correctly, but the HDMI desktop fails to re-render, resulting in a black screen.
There are known issues reported on the NVIDIA Developer Forum regarding HDMI black screen after resume on Jetson Linux R36.4.3 / JetPack 6.2. The long-standing recommendation is to upgrade to Jetson Linux R36.5 / JetPack 6.2.2 or later versions.
References:
- https://forums.developer.nvidia.com/t/orin-nano-8g-hdmi-blank-when-resume/337317
- https://forums.developer.nvidia.com/t/after-suspend-wakeup-hdmi-can-not-display/353817
- https://developer.nvidia.com/embedded/jetson-linux-r365
Temporary Solution One: Manually restart gdm
After black screen, if SSH login is still possible, manually restart the graphical login service:
sudo systemctl restart gdmA general service name can also be used:
sudo systemctl restart display-managerThis operation will restart the local graphical session over HDMI, interrupting the current desktop applications.
Temporary Solution Two: Automatically restart gdm after resume
If system upgrades are not currently possible but you want the desktop to automatically restart after resuming from suspend, you can add a systemd sleep hook:
sudo tee /lib/systemd/system-sleep/restart-gdm-after-resume >/dev/null <<'EOF'
#!/bin/sh
case "$1" in
post)
systemctl restart gdm
;;
esac
EOF
sudo chmod +x /lib/systemd/system-sleep/restart-gdm-after-resumeDelete this temporary plan:
sudo rm -f /lib/systemd/system-sleep/restart-gdm-after-resumeNote: This solution only temporarily works around the issue. Each resume will restart the local graphical session.
Temporary Solution Three: Disable Sleep
If the device is primarily used as a service device and does not rely on the local HDMI desktop, the most stable temporary fix is to disable sleep/suspend to avoid re-triggering the black screen:
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.targetVerification:
systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.targetSleep recovery capability:
sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.targetLong-term Plan
Upgrade to Jetson Linux R36.5 / JetPack 6.2.2 or later versions, and re-verify whether the HDMI desktop recovers after suspend/resume.