Asus G614fr Laptop boots fine when plugged in, but hangs on login screen when running on battery

I found this with ai help. Is there a better way to not give up pci-express 4 for stability? Here’s a complete English guide based on the solution we found for the ASUS G614FR (ROG Strix) + openSUSE Tumbleweed + systemd-boot + NVIDIA issue.


:jigsaw: Problem Description

  • Laptop boots fine when plugged in, but hangs on login screen when running on battery.
  • After a restart (not shutdown), the system also hangs on battery.
  • You can still switch to a TTY shell with Ctrl+Alt+F3.

:wrench: Root Cause

  • NVIDIA GPU power management conflicts with PCIe ASPM (Active State Power Management) when the system is on battery.
  • The issue is worse on restart (warm reset) because the hardware isn’t fully power-cycled like on a cold boot.

:white_check_mark: Solution Summary

1. BIOS Setting (fixes cold boot on battery)

  • Enter UEFI BIOS (press F2 during boot).
  • Go to AdvancedAPM (Advanced Power Management).
  • Enable ErP (or ErP Ready).
  • Save and exit.

This forces a full power cycle on shutdown, which helps the GPU re-initialize correctly on battery.


2. Add Kernel Parameters (fixes restart on battery)

Since you’re using systemd-boot (not GRUB), you need to edit the .conf entry file directly.

a. Find your current boot entry:

sudo bootctl status

Look for the line: Current Entry: opensuse-tumbleweed-*.conf

b. Edit that file:

sudo nano /boot/efi/loader/entries/opensuse-tumbleweed-*.conf

c. Add these parameters to the options line:

nvidia.NVreg_EnablePCIeGen4=0 pcie_aspm=off reboot=pci

For example, change:

options root=UUID=... splash=silent ... rd.driver.blacklist=nouveau

to:

options root=UUID=... splash=silent ... rd.driver.blacklist=nouveau nvidia.NVreg_EnablePCIeGen4=0 pcie_aspm=off reboot=pci

d. Save and reboot:

sudo reboot

3. (Optional) If restart still hangs – add one more parameter:

acpi_rev_override=1

Add it to the same options line.


4. Automate for Future Kernel Updates

Every time you install a new kernel, systemd-boot creates a new .conf file without your custom parameters. To automate adding them, create a script:

sudo mkdir -p /etc/kernel/postinst.d/
sudo nano /etc/kernel/postinst.d/99-nvidia-params.sh

Paste this:

#!/bin/bash
CONF="/boot/efi/loader/entries/$(basename "$1" .vmlinuz).conf"
if [ -f "$CONF" ] && ! grep -q "nvidia.NVreg_EnablePCIeGen4" "$CONF"; then
    sed -i "s/\(options.*\)/\1 nvidia.NVreg_EnablePCIeGen4=0 pcie_aspm=off reboot=pci/" "$CONF"
fi

Make it executable:

sudo chmod +x /etc/kernel/postinst.d/99-nvidia-params.sh

Now every new kernel will automatically get the needed parameters.


:pushpin: Final Verification

After reboot, check that parameters are active:

cat /proc/cmdline

You should see nvidia.NVreg_EnablePCIeGen4=0, pcie_aspm=off, and reboot=pci.

Then unplug the charger and test a restart:

sudo reboot

If the system boots normally without hanging – problem solved :white_check_mark:


:card_index_dividers: Summary of Parameters Used

Parameter Purpose
nvidia.NVreg_EnablePCIeGen4=0 Forces PCIe Gen3 mode (more stable on battery)
pcie_aspm=off Disables PCIe Active State Power Management
reboot=pci Forces a full PCIe reset during restart
acpi_rev_override=1 (Optional) Fixes ACPI issues on some ASUS laptops

:loudspeaker: Help Others

If you face the same issue on ASUS ROG laptops with NVIDIA + systemd-boot, this guide should work for most openSUSE and maybe Fedora users with similar hardware.

Hi and welcome to the Forum :smile:
What AI tool was used, please see the Forum FAQ’s about AI generated content…

So AI got it wrong, in openSUSE you use the update-bootloader command (I’ll let you correct the above :wink:) for adding kernel boot options so they persist… This command works across the various boot loaders available to users in the distribution.

Hi thanks for your help. I used deepseek for that guide but giving up (Forces PCIe Gen3 mode (more stable on battery) and Disables PCIe Active State Power Management) was unacceptable. maybe better solution available. deepseek is better on debian things.

Hi, thanks for the clarification :smile:

All that needs to be run on openSUSE as root user is;

update-bootloader --add-option nvidia.NVreg_EnablePCIeGen4=0
update-bootloader --add-option pcie_aspm=off
update-bootloader --add-option reboot=pci
update-bootloader --config

Same command for the optional override, so “4.” is not required.

Likewise you could add the NVreg one as an option to say a /etc/modprob.d/50-nvidia.conf.

1 Like

thank you in rewrite with your solution for helping same hardware users if you permit. thanks a lot. but i think nvidia.NVreg_EnablePCIeGen4=0 is may decrease performance. i will check without it.

:white_check_mark: Corrected English Guide for ASUS G614FR + openSUSE + NVIDIA

Acknowledgment: Thanks to the openSUSE forum admin for the correction.
The official and recommended way to add persistent kernel boot options in openSUSE is to use the update-bootloader command – not by manually editing boot entry files.


:mag: Problem

  • Laptop boots fine when plugged in, but hangs on login screen when running on battery.
  • After a restart (not shutdown) on battery, the system also hangs.
  • You can still switch to a TTY with Ctrl+Alt+F3.

:brain: Root Cause

  • NVIDIA GPU power management conflicts with PCIe ASPM (Active State Power Management) when on battery.
  • A warm reset (restart) doesn’t fully power‑cycle the GPU, causing it to hang during driver initialisation.

:hammer_and_wrench: Solution (Official openSUSE Way)

1. BIOS Setting – Fix cold boot on battery

  • Enter UEFI BIOS (press F2 during boot).
  • Go to AdvancedAPM (Advanced Power Management).
  • Enable ErP (or ErP Ready).
  • Save and exit.

This forces a complete power cycle on shutdown, which helps the GPU re‑initialise correctly on battery.


2. Add kernel parameters – Fix restart on battery

The official openSUSE method uses the update-bootloader command.
Run the following commands as root (use sudo):

sudo update-bootloader --add-option nvidia.NVreg_EnablePCIeGen4=0
sudo update-bootloader --add-option pcie_aspm=off
sudo update-bootloader --add-option reboot=pci
sudo update-bootloader --config

What does this do?

  • --add-option adds each kernel parameter to the boot configuration.
  • --config rebuilds the bootloader configuration (works for both GRUB and systemd-boot).
  • This method persists across kernel updates – no extra scripts needed.

Optional: Keep PCIe 4.0 (if you prefer)

If you want to keep PCIe Gen 4 speed and only disable ASPM, simply omit the first line:

sudo update-bootloader --add-option pcie_aspm=off
sudo update-bootloader --add-option reboot=pci
sudo update-bootloader --config

You can also add acpi_rev_override=1 if needed:

sudo update-bootloader --add-option acpi_rev_override=1
sudo update-bootloader --config

3. Alternative Method: Using modprobe.d for NVIDIA parameters

The forum admin also mentioned that the NVreg_EnablePCIeGen4=0 parameter can be set via a modprobe configuration file instead of the kernel command line:

echo "options nvidia NVreg_EnablePCIeGen4=0" | sudo tee /etc/modprobe.d/50-nvidia.conf

This applies the setting to the NVIDIA kernel module directly. However, parameters like pcie_aspm=off and reboot=pci still need to be added via update-bootloader.


4. Reboot and Verify

After running the commands, reboot:

sudo reboot

Check that parameters are active:

cat /proc/cmdline

You should see your new parameters listed.

Now unplug the charger and test a restart:

sudo reboot

If the system boots without hanging – problem solved :white_check_mark:


:pushpin: Summary of Commands

Purpose Command
Add PCIe 3.0 mode sudo update-bootloader --add-option nvidia.NVreg_EnablePCIeGen4=0
Disable ASPM sudo update-bootloader --add-option pcie_aspm=off
Force full PCIe reset on restart sudo update-bootloader --add-option reboot=pci
Apply changes sudo update-bootloader --config
Check active parameters cat /proc/cmdline

:speaking_head: Why This Is Better

  • Works across all bootloaders (GRUB, systemd‑boot, etc.).
  • Persists through kernel updates without extra scripts.
  • Follows openSUSE best practices – no manual file editing.
  • Simple one-liner commands that are easy to remember.

:wrench: Optional: Remove a Parameter

If you ever need to remove a parameter:

sudo update-bootloader --del-option pcie_aspm=off
sudo update-bootloader --config

:pray: Thanks

Special thanks to the openSUSE forum admin for correcting this guide and sharing the proper method.
For more details, see the openSUSE Boot Loader documentation

:white_check_mark: Corrected English Guide for ASUS G614FR + openSUSE + NVIDIA

Acknowledgment: Thanks to the openSUSE forum admin for the correction.
The official and recommended way to add persistent kernel boot options in openSUSE is to use the update-bootloader command – not by manually editing boot entry files.
This method works for all boot loaders (GRUB, systemd‑boot, etc.) and survives kernel updates.


:mag: Problem

  • Laptop boots fine when plugged in, but hangs on login screen when running on battery.
  • After a restart (not shutdown) on battery, the system also hangs.
  • You can still switch to a TTY with Ctrl+Alt+F3.

:brain: Root Cause

  • NVIDIA GPU power management conflicts with PCIe ASPM (Active State Power Management) when on battery.
  • A warm reset (restart) doesn’t fully power‑cycle the GPU, causing it to hang during driver initialisation.

:hammer_and_wrench: Solution (Official openSUSE Way)

1. BIOS Setting – Fix cold boot on battery

  • Enter UEFI BIOS (press F2 during boot).
  • Go to AdvancedAPM (Advanced Power Management).
  • Enable ErP (or ErP Ready).
  • Save and exit.

This forces a complete power cycle on shutdown, which helps the GPU re‑initialise correctly on battery.


2. Add kernel parameters – Fix restart on battery

The official openSUSE method uses the update-bootloader command.
Run the following commands as root (use sudo):

sudo update-bootloader --add-option nvidia.NVreg_EnablePCIeGen4=0
sudo update-bootloader --add-option pcie_aspm=off
sudo update-bootloader --add-option reboot=pci
sudo update-bootloader --config

What does this do?

  • --add-option adds each kernel parameter to the boot configuration.
  • --config rebuilds the bootloader configuration (works for both GRUB and systemd-boot).
  • This method persists across kernel updates – no extra scripts needed.

Optional: Keep PCIe 4.0 (if you prefer)

If you want to keep PCIe Gen 4 speed and only disable ASPM, simply omit the first line:

sudo update-bootloader --add-option pcie_aspm=off
sudo update-bootloader --add-option reboot=pci
sudo update-bootloader --config

You can also add acpi_rev_override=1 if needed (as the admin noted, this is optional and can be added with the same command):

sudo update-bootloader --add-option acpi_rev_override=1
sudo update-bootloader --config

3. Alternative Method: Using modprobe.d for NVIDIA parameters

The forum admin also mentioned that the NVreg_EnablePCIeGen4=0 parameter can be set via a modprobe configuration file instead of the kernel command line:

echo "options nvidia NVreg_EnablePCIeGen4=0" | sudo tee /etc/modprobe.d/50-nvidia.conf

This applies the setting to the NVIDIA kernel module directly. However, parameters like pcie_aspm=off and reboot=pci still need to be added via update-bootloader.


4. Reboot and Verify

After running the commands, reboot:

sudo reboot

Check that parameters are active:

cat /proc/cmdline

You should see your new parameters listed.

Now unplug the charger and test a restart:

sudo reboot

If the system boots without hanging – problem solved :white_check_mark:


:broom: Removing Performance‑Decreasing Parameters (If You Added Them Earlier)

If you previously added parameters that reduce performance (e.g., forcing PCIe Gen 3 or disabling ASPM globally), you can remove them using the --del-option flag.

# Remove PCIe Gen 4 limiter (restores full Gen 4 speed)
sudo update-bootloader --del-option nvidia.NVreg_EnablePCIeGen4=0

# Remove global ASPM disable (re‑enables power saving for better battery life)
sudo update-bootloader --del-option pcie_aspm=off

# (Optional) Remove acpi_rev_override if you added it and no longer need it
# sudo update-bootloader --del-option acpi_rev_override=1

# Apply the changes
sudo update-bootloader --config

:white_check_mark: Important: Keep the parameter reboot=pci – it fixes the restart hang without any performance or battery penalty.


:repeat: What If the Restart Hang Returns After Removal?

After removing parameters, if the restart hang reappears, you have two options (both keep PCIe 4.0 speed):

Option A: Re‑add only pcie_aspm=off (slightly higher battery drain)

sudo update-bootloader --add-option pcie_aspm=off
sudo update-bootloader --config

Option B: Add acpi_rev_override=1 (ASUS‑specific fix, no performance impact)

sudo update-bootloader --add-option acpi_rev_override=1
sudo update-bootloader --config

:pushpin: Summary of Commands

Purpose Command
Add a kernel parameter sudo update-bootloader --add-option PARAMETER
Remove a kernel parameter sudo update-bootloader --del-option PARAMETER
Apply changes and rebuild config sudo update-bootloader --config
Check active parameters cat /proc/cmdline

:speaking_head: Why This Is Better

  • Works across all bootloaders (GRUB, systemd‑boot, etc.).
  • Persists through kernel updates without extra scripts.
  • Follows openSUSE best practices – no manual file editing.
  • Simple one‑liner commands that are easy to remember.

:broom: Clean Up Automatic Scripts (If You Created One)

If you previously created a script in /etc/kernel/postinst.d/ to auto‑add parameters, delete it to prevent reapplying unwanted settings:

sudo rm -f /etc/kernel/postinst.d/99-nvidia-params.sh

:pray: Thanks

Special thanks to the openSUSE forum admin for correcting this guide and sharing the proper method.
For more details, see the openSUSE Boot Loader documentation

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.