Files
command-center/omp-docs/research/Alienware-M16a2-Linux-sleep-wake-issues.md
T
Frank 82dd0c7d09 docs(power): reclaim the sleep docs from the sold box; fix AGENTS.md machine facts
The sleep/wake saga (Alienware-M16a2 research + Sleep-Fix-Guide) framed a
machine sold on 2026-09-28 as 'this system' — the 2026-09-28 identifier
purge missed both because they name no hostname. blankpad probed live:
Lenovo, AMD Ryzen 5 PRO 5650U / Cezanne, unified memory, s2idle only,
no NVIDIA, no ~/GitPackages/llama.cpp.

- research/Sleep-Fix-Guide.md -> .AGENTTRASH (verbatim restatement of the
  research doc's fix steps; PowerCluster overlap census)
- Alienware doc: archive banner, 'this system' -> retired dankware
- linux-power-management.md: scope note (blankpad s2idle-only; NVIDIA
  section is dankware/future-NVIDIA territory), boilerplate AGENTS.md
  cross-ref dropped
- cachyos.md: de-pinned rolling-release kernel versions (7.1.4 doc vs
  7.2.9 live), repo list confirmed verbatim against pacman.conf, SDDM
  confirmed live, verified: 2026-10-19
- AGENTS.md: dev-workstation row rewritten for blankpad; Gitea gotcha
  corrected — remote URLs carry NO token (credential-store file, verified)

Refs #29
2026-10-19 03:46:02 -07:00

578 lines
19 KiB
Markdown

---
type: reference
title: Alienware M16a2 Linux Sleep/Wake Issues
description: "Sleep/wake research on the Alienware m16 R2 (dankware, sold 2026-09-28): NVIDIA driver state corruption during suspend/resume on Dell hardware. Kept as class-level Dell/Alienware + NVIDIA knowledge."
tags:
- research
- sleep-wake
- nvidia
- alienware
timestamp: 2026-01-15
---
# Alienware M16a2 Linux Sleep/Wake Issues — Comprehensive Research
> **Machine archive (2026-10-19).** "This system" throughout is **dankware**,
> the Alienware m16 R2 client workstation sold 2026-09-28 (see `log.md`). The
> current dev workstation (`blankpad` — AMD Ryzen 5 PRO 5650U / Cezanne APU,
> s2idle only, no NVIDIA GPU) is not this machine. Hardware inventory and
> driver versions are historical; the class-level Dell/Alienware + NVIDIA
> suspend research is retained as durable knowledge.
## Executive Summary
The symptom — **screen stays black after waking from sleep (lid close)** — is a well-documented class of issues on Dell/Alienware laptops with NVIDIA GPUs running Linux. The root cause is almost always **NVIDIA GPU driver state corruption during suspend/resume**, compounded by ACPI/sleep state selection issues and BIOS/firmware settings.
---
## 1. Known Issues with Alienware M16a2 + Linux Sleep States
### 1.1 Model Context
The Alienware m16 R2 (the retired **dankware** box) is equipped with:
- **Intel Core Ultra 7 155H** (Meteor Lake, 6p+8e cores, 22 threads)
- **Intel Arc Graphics** (Meteor Lake-P iGPU)
- **NVIDIA GeForce RTX 4070 Laptop GPU** (AD106M, Max-Q/Mobile)
- **NVIDIA Driver:** 610.43.03
- **OS:** CachyOS Linux, kernel 7.1.4-1-cachyos
- **Hybrid graphics** (Intel Arc iGPU drives displays, NVIDIA dGPU available for compute)
### 1.2 Known Issues from Community Reports
**GitHub Issue: NVIDIA/open-gpu-kernel-modules#922** (Closed, Sep 2025)
- **Title:** "580.76.05 / 580.82.07 (& 09) - Suspend & Hibernate Fails on Nvidia / Intel Hybrid Laptop"
- **Symptoms:** Suspend wakes itself up in ~15 seconds (s2idle); hibernate fails on reboot
- **Hardware:** RTX 5000 Laptop GPU, hybrid mode
- **Root cause:** s2idle (Modern Standby) incompatibility with NVIDIA hybrid GPUs
- **Key log:** `PM: suspend entry (s2idle)` — the system enters s2idle which is fundamentally broken for hybrid NVIDIA setups
**GitHub Issue: NVIDIA/open-gpu-kernel-modules#1160** (Open, May 2026)
- **Title:** "Bug: Lenovo LOQ 15ARP9 S4 Hibernation / Suspend Failure (pci_pm_freeze returns -5)"
- **Symptoms:** `pci_pm_freeze returns -5` on suspend/hibernate
- **Hardware:** AMD Ryzen 7435HS + RTX 4060 (dGPU only mode)
- **Relevance:** Same NVIDIA GPU class, same suspend failure pattern
**GitHub Issue: NVIDIA/open-gpu-kernel-modules#662** (Open)
- **Title:** "Suspend sometimes causes a crash when using the open 555.52.04 drivers"
- **Symptoms:** Machine gets stuck on a black screen after suspend, requires hard reset
- **Hardware:** RTX 3090
- **Key finding:** Crash call trace in NVIDIA driver during suspend
**GitHub Issue: pop-os/pop#1539** (Closed, Feb 2021)
- **Title:** "Alienware Aurora R7 suspend and start-up issues"
- **Symptoms:** Suspend hangs, side lights do not turn off, black screen, mouse glitches on restart
- **Workaround:** `initcall_blacklist=dw_i2c_init_driver` kernel parameter
**GitHub Issue: pop-os/linux#438** (Open)
- **Title:** "Regression: 100% s2idle resume hang on kernel 7.0.9-76070009 (AMD Strix Point + NVIDIA hybrid); 6.18.7 works"
- **Relevance:** Direct proof that s2idle is broken with NVIDIA hybrid GPUs in recent kernels
### 1.3 Dell/Alienware-Specific Patterns
From the Arch Wiki Dell laptop database:
- Dell laptops with NVIDIA GPUs consistently show "Partial" or "Untested" power management
- Known issue: "Does not wake up after closing the screen lid" (Dell Inspiron 13 7370)
- Dell BIOS often defaults to "Windows 10" / "Modern Standby" mode which maps to s2idle — known problematic for Linux
---
## 2. GPU-Related Sleep Problems (NVIDIA Drivers)
### 2.1 Primary Cause: NVIDIA GPU State Corruption
When the system suspends, the NVIDIA GPU enters a low-power state. Upon resume:
1. The NVIDIA driver attempts to restore GPU state
2. If the driver module was not properly suspended or VRAM preservation failed, the GPU remains in a non-functional state
3. The display controller (connected to the NVIDIA GPU via PRIME) never receives the signal to re-enable the display
4. Result: **System is awake (you can SSH in, disk is accessible) but screen is black**
### 2.2 NVIDIA Driver Suspend/Resume Architecture
**Pre-595 drivers (430-590 series):**
- Use `NVreg_PreserveVideoMemoryAllocations=1` to save/restore VRAM
- Require systemd services: `nvidia-suspend.service`, `nvidia-hibernate.service`, `nvidia-resume.service`
- These services handle GPU state preservation during suspend
**595+ drivers (including current 575/580/590 series):**
- Use `NVreg_UseKernelSuspendNotifiers=1` instead
- Video memory preservation is handled by kernel suspend notifiers
- The `nvidia-suspend.service` etc. are **disabled by default**
- **This is a critical change** — if kernel suspend notifiers do not work on your hardware, suspend will fail
**Verification:**
```bash
# Check if video memory preservation is enabled
sort /proc/driver/nvidia/params | grep -i "usekernelsuspend\|preservevideo"
# Should show: UseKernelSuspendNotifiers: 1 (595+)
# Or: PreserveVideoMemoryAllocations: 1 (pre-595)
```
### 2.3 nvidiafb Module Conflict
From Arch Wiki [234646]:
- The `nvidiafb` (NVIDIA framebuffer) module can cause black screen on resume
- **Fix:** Blacklist `nvidiafb` in `/etc/modprobe.d/blacklist-nvidiafb.conf`
```
blacklist nvidiafb
```
### 2.4 NVIDIA Open Kernel Modules
The open GPU kernel modules (555+) have known suspend issues:
- Issue #662: "Suspend sometimes causes a crash when using the open 555.52.04 drivers"
- Issue #1064: "GSP heartbeat stuck at 0 since boot with S0ix power management on RTX PRO 1000 Blackwell laptop"
- **Recommendation:** If using open kernel modules and experiencing suspend issues, try the proprietary driver (same version)
---
## 3. Kernel Parameters and Boot Options
### 3.1 Critical Kernel Parameters for Dell/Alienware + NVIDIA
#### Sleep State Selection
```
# Force S3 (deep sleep) instead of s2idle (Modern Standby)
mem_sleep_default=deep
```
Add to GRUB: `GRUB_CMDLINE_LINUX_DEFAULT="... mem_sleep_default=deep"`
#### ACPI Parameters
```
# Disable NVIDIA's ACPI GSP firmware interface (can cause suspend issues)
nvidia.NVreg_PreserveVideoMemoryAllocations=1
nvidia.NVreg_UseKernelSuspendNotifiers=1
# Force ACPI backlight control (fixes black screen on some Dell laptops)
acpi_backlight=vendor
acpi_backlight=native
# Allow ACPI resource enforcement (fixes some Dell-specific issues)
acpi_enforce_resources=lax
# Override ACPI OS identification (can help with Dell BIOS compatibility)
acpi_osi=linux
acpi_osi="!Windows 2012"
acpi_osi="!Windows 2029"
```
#### NVIDIA-Specific Parameters
```
# In /etc/modprobe.d/nvidia.conf:
options nvidia NVreg_PreserveVideoMemoryAllocations=1
options nvidia NVreg_UseKernelSuspendNotifiers=1
options nvidia NVreg_InitializeSystemMemoryAllocations=1
```
#### PCIe and Device Power Management
```
# Disable PCIe ASPM (can cause wake issues)
pcie_aspm=off
# Disable USB autosuspend (prevents USB devices from waking the system)
usbcore.autosuspend=-1
# Disable specific wakeup triggers
# Check /proc/acpi/wakeup to see which devices can wake the system
```
#### DRM/KMS Parameters
```
# For Intel iGPU (if applicable):
i915.enable_dc=0
i915.enable_fbc=0
# For AMD iGPU (if applicable):
amdgpu.siips=0
```
### 3.2 Complete Recommended GRUB Line for Alienware M16a2
```
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash mem_sleep_default=deep acpi_backlight=vendor acpi_enforce_resources=lax nvidia-drm.modeset=1 pcie_aspm=off"
```
Then: `sudo update-grub` (or `grub2-mkconfig -o /boot/grub2/grub.cfg` on Fedora)
### 3.3 NVIDIA Module Parameters
Create `/etc/modprobe.d/nvidia-power.conf`:
```
options nvidia NVreg_PreserveVideoMemoryAllocations=1
options nvidia NVreg_UseKernelSuspendNotifiers=1
options nvidia NVreg_InitializeSystemMemoryAllocations=1
options nvidia NVreg_RuntimePeer=1
```
Then regenerate initramfs:
```bash
# Arch:
sudo mkinitcpio -P
# Ubuntu:
sudo update-initramfs -u
# Fedora:
sudo dracut --force
```
---
## 4. BIOS/Firmware Settings
### 4.1 Dell/Alienware BIOS Settings That Affect Sleep
Access BIOS by pressing F2 at boot. Key settings:
#### Sleep State Configuration
| Setting | Recommended Value | Notes |
|---------|------------------|-------|
| **Sleep State** | **S3 (Deep Sleep)** | Avoid "Auto" or "Windows 10" (maps to s2idle) |
| **Modern Standby** | **Disabled** | Modern Standby = s2idle, known broken with NVIDIA |
| **Windows 10/11 Boot** | **Disabled** | Forces Linux-compatible ACPI |
| **S3 Sleep Support** | **Enabled** | If available as explicit option |
#### Power Management
| Setting | Recommended Value | Notes |
|---------|------------------|-------|
| **Deep Sleep** | **Disabled** | Conflicts with proper suspend |
| **USB Wake Support** | **Disabled** (or selectively enabled) | Prevents USB devices from causing wake |
| **Wake on LAN** | **Disabled** | Prevents network from waking the system |
| **Thunderbolt Wake** | **Disabled** | Prevents TB devices from waking |
#### Display/Graphics
| Setting | Recommended Value | Notes |
|---------|------------------|-------|
| **Primary Display** | **Auto** (or dGPU if always plugged in) | Affects which GPU drives the display |
| **Hybrid Graphics** | **Disabled** (if using dGPU only mode) | Removes iGPU/dGPU handoff complexity |
### 4.2 BIOS Update
**CRITICAL:** Dell frequently releases BIOS updates that fix ACPI/suspend issues.
Check current BIOS version:
```bash
sudo dmidecode -s bios-version
sudo dmidecode -s bios-release-date
```
Check for updates:
```bash
# Via fwupd (Linux Vendor Firmware Service)
fwupdmgr get-updates
fwupdmgr refresh
fwupdmgr update
```
Or download from Dell Support: https://www.dell.com/support/home/en-us/product-support/product/alienware-m16-product/support-drivers
### 4.3 Dell Command Configure (cctk)
For advanced BIOS configuration from Linux:
```bash
# Install from AUR: yay -S dell-command-configure
# Check current sleep state:
sudo cctk --sleepstate
# Set to S3:
sudo cctk --sleepstate=s3
```
---
## 5. Power Management Tools and Configurations
### 5.1 TLP (Recommended for Dell/Alienware)
TLP is the most comprehensive power management tool for Linux laptops.
**Installation:**
```bash
# Arch: sudo pacman -S tlp tlp-rdw
# Ubuntu: sudo apt install tlp tlp-rdw
# Fedora: sudo dnf install tlp tlp-rdw
```
**Key TLP settings for Alienware M16a2 with NVIDIA:**
`/etc/tlp.conf`:
```ini
# Disable TLP's power management for NVIDIA (let NVIDIA driver handle it)
RUNTIME_PM_DRIVER_DENYLIST="nouveau nvidia"
# OR enable runtime PM for NVIDIA if using PRIME:
# RUNTIME_PM_ENABLE="01:00.0" # Get PCI ID with: lspci -d 10de::03xx
# Disable USB autosuspend (prevents unexpected wake)
USB_AUTOSUSPEND=0
# Use balanced power profile
POWER_SAVE_ON_AC=0
POWER_SAVE_ON_BATTERY=1
# Disable Wi-Fi power saving (prevents wake issues)
WIFI_PWR_ON_AC=off
WIFI_PWR_ON_BAT=on
# Disable Bluetooth power saving
BLUETOOTH_PWR=0
```
**Enable and start:**
```bash
sudo systemctl enable tlp.service tlp-sleep.service
sudo systemctl start tlp.service
sudo tlp start
```
### 5.2 NVIDIA Suspend/Resume Services
**For drivers < 595:**
```bash
# Ensure NVIDIA suspend services are enabled
sudo systemctl enable nvidia-suspend.service
sudo systemctl enable nvidia-hibernate.service
sudo systemctl enable nvidia-resume.service
```
**For drivers >= 595:**
- Services are disabled by default (kernel suspend notifiers handle it)
- If suspend fails, manually enable:
```bash
sudo systemctl enable nvidia-suspend.service
```
### 5.3 systemd Sleep Configuration
`/etc/systemd/sleep.conf.d/mem-deep.conf`:
```ini
[Sleep]
MemorySleepMode=deep
```
`/etc/systemd/system-sleep/nvidia-fix.sh`:
```bash
#!/bin/bash
# Fix for NVIDIA black screen on resume
case "$1" in
post)
# Post-suspend: reload NVIDIA modules if needed
if lsmod | grep -q nvidia; then
# Try to reload the display
/usr/bin/nvidia-smi -pm 1 2>/dev/null
fi
;;
esac
```
### 5.4 Auto-cpufreq
Alternative to TLP that also handles NVIDIA:
```bash
# Install from AUR: yay -S auto-cpufreq
sudo auto-cpufreq --install
sudo auto-cpufreq --force-performance # On AC
sudo auto-cpufreq --force-balanced # On battery
```
### 5.5 power-profiles-daemon
If using GNOME/KDE, power-profiles-daemon may conflict with TLP:
```bash
# Disable if using TLP
sudo systemctl disable --now power-profiles-daemon
```
### 5.6 Dell-Specific Tools
**smbios utilities:**
```bash
# Set thermal profile (affects power/heat/sleep)
sudo smbios-thermal-ctl performance
sudo smbios-thermal-ctl balanced
sudo smbios-thermal-ctl cool-bottom
sudo smbios-thermal-ctl quiet
# Set battery charge threshold
sudo smbios-battery-ctl --threshold=80
```
**platform_profiles (kernel >= 6.1):**
```bash
# Check available profiles
cat /sys/firmware/acpi/platform_profile_choices
# Set profile
echo performance | sudo tee /sys/firmware/acpi/platform_profile
```
---
## 6. Community Reports and References
### 6.1 GitHub Issues (Most Relevant)
| Issue | Repository | Description | Status |
|-------|-----------|-------------|--------|
| #922 | NVIDIA/open-gpu-kernel-modules | Suspend/Hibernate fails on NVIDIA/Intel hybrid laptop (RTX 5000) | Closed |
| #1160 | NVIDIA/open-gpu-kernel-modules | S4 Hibernation/Suspend failure (pci_pm_freeze returns -5) | Open |
| #662 | NVIDIA/open-gpu-kernel-modules | Suspend crash with open 555.52.04 drivers | Open |
| #1064 | NVIDIA/open-gpu-kernel-modules | GSP heartbeat stuck with S0ix power management | Open |
| #1045 | NVIDIA/open-gpu-kernel-modules | Xid 62/45 -> Xid 119 (GSP timeout) on RTX 5080 | Open |
| #438 | pop-os/linux | s2idle resume hang on AMD Strix Point + NVIDIA hybrid | Open |
| #4033 | pop-os/pop | ThinkPad not waking from sleep (kernel regression) | Open |
| #3313 | pop-os/pop | Suspend not working on kernel 6.9.3 | Open |
| #1539 | pop-os/pop | Alienware Aurora R7 suspend and start-up issues | Closed |
| #5041 | ublue-os/bazzite | Black screen after login on nvidia-open (kwin crashes) | Closed |
### 6.2 Arch Wiki Resources
- **NVIDIA/Tips_and_tricks** — "Preserve video memory after suspend" section
- **Power_management/Suspend_and_hibernate** — "Black/blank screen on resuming" and "Blank/black screen after suspend/hibernate" sections
- **Dell** — Model list with power management status
- **Laptop** — General laptop power management
- **TLP** — Configuration for NVIDIA PRIME and Bumblebee
- **Kernel_parameters** — Kernel boot parameters
### 6.3 Dell Support Resources
- Dell Battery Drain KB: https://www.dell.com/support/kbdoc/en-us/000143524
- Dell Linux Support: https://www.dell.com/support/kbdoc/en-us/000191207
- Dell Command Configure: https://www.dell.com/support/kbdoc/en-us/000191207
### 6.4 Kernel Documentation
- **Sleep States:** https://docs.kernel.org/admin-guide/pm/sleep-states.html
- s2idle (Suspend-to-Idle) = Modern Standby
- S3 (Suspend-to-RAM) = Deep sleep
- S4 (Hibernate) = Suspend-to-Disk
### 6.5 Common Reddit Discussions
While direct Reddit scraping was blocked, the following threads are commonly cited:
- r/linux: "Linux on Alienware M16 R2" discussions
- r/Dell: Dell laptop Linux compatibility reports
- r/archlinux: Various suspend/resume troubleshooting threads
- r/NVIDIA: Driver-related suspend issues
---
## 7. Diagnostic Checklist
### 7.1 Identify Your Current State
```bash
# 1. Check current sleep state
cat /sys/power/mem_sleep
# Expected: [s2idle] shallow deep OR s2idle [deep]
# 2. Check NVIDIA driver version
nvidia-smi
# 3. Check if NVIDIA suspend notifiers are enabled
sort /proc/driver/nvidia/params | grep -i "usekernelsuspend\|preservevideo"
# 4. Check which devices can wake the system
cat /proc/acpi/wakeup
# 5. Check BIOS version
sudo dmidecode -s bios-version
# 6. Check for nvidiafb loaded
lsmod | grep nvidiafb
# 7. Check journal for suspend-related errors
journalctl -b -1 | grep -iE "suspend|hibernate|nvidia|acpi|sleep|black"
# 8. Check current kernel parameters
cat /proc/cmdline
```
### 7.2 Quick Fixes to Try (in order)
1. **Blacklist nvidiafb:**
```bash
echo "blacklist nvidiafb" | sudo tee /etc/modprobe.d/blacklist-nvidiafb.conf
sudo mkinitcpio -P
```
2. **Force S3 deep sleep:**
```bash
echo deep | sudo tee /sys/power/mem_sleep
# Test: systemctl suspend
# If it works, make permanent via kernel parameter mem_sleep_default=deep
```
3. **Enable NVIDIA suspend services (if using driver < 595):**
```bash
sudo systemctl enable nvidia-suspend.service nvidia-resume.service
```
4. **Try kernel parameters:**
```
mem_sleep_default=deep acpi_backlight=vendor acpi_enforce_resources=lax
```
5. **Update BIOS** via fwupd or Dell Support website
6. **Try different NVIDIA driver version** (older or newer)
7. **Disable hybrid graphics in BIOS** (use dGPU only)
---
## 8. Emergency Recovery: Black Screen After Wake
If your screen is black after waking from sleep:
### 8.1 Switch to Virtual Console
```
Ctrl+Alt+F3 (or F2-F6)
```
### 8.2 Reload NVIDIA Display
```bash
# Option 1: Restart display manager
sudo systemctl restart gdm # GNOME
sudo systemctl restart sddm # KDE
sudo systemctl restart lightdm # XFCE/LXDE
# Option 2: Reload NVIDIA kernel modules
sudo modprobe -r nvidia_drm nvidia_modeset nvidia
sudo modprobe nvidia nvidia_modeset nvidia_drm
# Option 3: Toggle DRM polling (quick fix)
echo 0 | sudo tee /sys/module/drm_kms_helper/parameters/poll
echo 1 | sudo tee /sys/module/drm_kms_helper/parameters/poll
# Option 4: Re-enable backlight
echo 1 | sudo tee /sys/class/backlight/*/brightness
```
### 8.3 Last Resort
```bash
# Hard reset if nothing works
sudo systemctl reboot --force
```
---
## 9. Summary of Most Likely Fixes for Alienware M16a2
Based on all research, the most effective fixes (in priority order):
1. **Force S3 deep sleep** (`mem_sleep_default=deep`) — s2idle is the #1 cause of NVIDIA suspend issues on Dell/Alienware
2. **Blacklist nvidiafb** — Known to cause black screen on resume
3. **Update BIOS** — Dell frequently fixes ACPI/suspend bugs
4. **Add kernel parameters:** `acpi_backlight=vendor acpi_enforce_resources=lax`
5. **Ensure NVIDIA suspend services are enabled** (or kernel suspend notifiers working)
6. **Disable Modern Standby in BIOS** if available
7. **Try proprietary NVIDIA driver** if currently using open kernel modules
8. **Configure TLP** to not conflict with NVIDIA power management
---
## 10. References
1. Arch Wiki - NVIDIA/Tips and tricks: https://wiki.archlinux.org/title/NVIDIA/Tips_and_tricks
2. Arch Wiki - Power management/Suspend and hibernate: https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate
3. Arch Wiki - TLP: https://wiki.archlinux.org/title/TLP
4. Arch Wiki - Dell: https://wiki.archlinux.org/title/Dell
5. NVIDIA Open GPU Kernel Modules GitHub: https://github.com/NVIDIA/open-gpu-kernel-modules
6. Kernel Documentation - Sleep States: https://docs.kernel.org/admin-guide/pm/sleep-states.html
7. Dell Support: https://www.dell.com/support/