Skip to content

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>.
  • gdm or display-manager remains active.
  • The X11 session is still active.
  • The HDMI display is detected, for example, xrandr shows HDMI-0 connected.
  • The local HDMI output is black; the GNOME desktop fails to render properly.

Diagnostics Commands ​

Log in to the device via SSH:

bash
ssh nvidia@192.168.1.221

Check system version:

bash
cat /etc/nv_tegra_release
uname -a

Check graphics service status:

bash
systemctl status gdm --no-pager
systemctl status display-manager --no-pager
loginctl list-sessions

Check HDMI output status:

bash
export DISPLAY=:0
export XAUTHORITY=/run/user/1000/gdm/Xauthority
xrandr --current

Check suspend/resume and graphics stack logs:

bash
journalctl -b --no-pager | egrep -i "suspend|resume|PM:|gnome-shell|mutter|Xorg|nvgpu|semaphore|error notifier" | tail -n 200

If 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.

text
nvgpu ... semaphore acquire timeout
nvgpu ... error notifier set to 24 ... owned by gnome-shell
gnome-shell / mutter DisplayConfig timeout

Cause ​

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:

Temporary Solution One: Manually restart gdm ​

After black screen, if SSH login is still possible, manually restart the graphical login service:

bash
sudo systemctl restart gdm

A general service name can also be used:

bash
sudo systemctl restart display-manager

This 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:

bash
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-resume

Delete this temporary plan:

bash
sudo rm -f /lib/systemd/system-sleep/restart-gdm-after-resume

Note: 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:

bash
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Verification:

bash
systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target

Sleep recovery capability:

bash
sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target

Long-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.