Jump to content

Lenovo LOQ 15ARP9

From ArchWiki

This article or section does not follow the Laptop page guidelines.

Reason: Missing a "Function keys" section. (Discuss in Talk:Lenovo LOQ 15ARP9)
Hardware PCI/USB ID Working?
Wi-Fi 14c3:7961 Yes
Bluetooth 0489:e0cd Yes
Webcam 5986:216a Yes
GPU (NVIDIA) 10de:2860 Yes

Installation

Steps from the Installation guide can be followed to install a working copy of Arch Linux.

Accessibility

The firmware is GUI-based. It supports both keyboard navigation and mouse navigation. To access UEFI settings, repeatedly press F2 while the computer is starting. There are no audio cues once the menu is open.

Additionally, pressing F2 will lead the user to an interim menu which serves only for quick access to a very limited set of options. Entering settings proper requires pressing another button.

Note Blind users may need to request the help of a sighted person to change firmware settings.

Firmware

Firmeware updates through fwupd are supported for the NVME drive, touchpad, CPU, TPM and UEFI.

Suspend

This laptop only supports S0ix (also known as Modern Standby or s2idle) as the power management mechanism on both Windows and Linux distributions. This can be verified through the file /sys/power/mem_sleep, which only displays one entry:

/sys/power/mem_sleep
[s2idle]

The option to enable suspend-to-RAM exists, but is hidden behind advanced BIOS settings and leads to an unresponsive kernel on resume.

By default, the device will either fail to suspend or more commonly fail to resume from suspend.

Scenarios include:

  • Suspending appears to work. On resume, fans begin spinning, but the screen backlight does not turn on. Userspace is unresponsive.
  • Suspending appears to work. On resume, fans begin spinning and a few seconds later the device reboots.
  • Suspending appears to work. Resume is impossible, as the device does not react to any input.
  • Suspending does not work. The screen may turn off for a second before coming back.

Which scenario occurs is inconsistent and may change seemingly at random as a result of unknown factors.

Achieving functional suspend/resume requires creating a file in /etc/modprobe.d such as nvidia.conf and enabling S0ix support in the nvidia driver through the following parameter:

/etc/modprobe.d/nvidia.conf
options nvidia NVreg_EnableS0ixPowerManagement=1

Status of S0ix support can be verified through /proc/driver/nvidia:

/proc/driver/nvidia/gpus/0000:01:00.0/power
Runtime D3 status:          Enabled (fine-grained)
Video Memory:               Active

GPU Hardware Support:
 Video Memory Self Refresh: Supported
 Video Memory Off:          Supported

S0ix Power Management:
 Platform Support:          Supported
 Status:                    Enabled

Notebook Dynamic Boost:     Supported

Status: Enabled under S0ix Power Management indicates that the driver is configured to suspend under S0ix.

No other workarounds are necessary. In particular, the following should be avoided:

  • Passing pcie_aspm=off on the kernel command line. This does actually bring suspend/resume to a functional state, but it completely disables ASPM and will certainly lead to increased power usage.
  • Using NVIDIA parameters such as NVreg_S0ixPowerManagementVideoMemoryThreshold or NVreg_PreserveVideoMemoryAllocations, or any other options related to S0ix. The option recommended above is also the officially recommended method to configure S0ix support in NVIDIA drivers.

Resuming from suspend may still not work despite enabling the GPU drivers' S0ix support. This is likely caused by a #Firmware suspend bug, for which the linked section provides a solution.

This section is based on findings in an Arch Linux Forum thread [1].

Hibernation

Hibernation does not work with early KMS. To achieve working hibernation, remove NVIDIA modules from /etc/modprobe.d. Read the page on hibernation and make sure your system is correctly configured to resume.

There is a bug in both proprietary and open NVIDIA drivers where suspending fails if the system has previously been resumed from hibernation. Suspending in sequence and hibernating in sequence works, but if you attempt to execute a sequence of hibernate-resume-suspend-resume, the NVIDIA driver crashes and the screen does not come back on.

It has been reported on NVIDIA Forums[2] on October 2nd, 2025 with no response as of November 17th, 2025.

Firmware suspend bug

If dual booting, Windows updates may trigger the BIOS to enter a confused state. This may happen only after booting into Linux. In this confused state, suspending will not work correctly on Linux, even if S0ix support is enabled in NVIDIA drivers. This confused state will persist between reboots into different operating systems and attempts to sleep on Windows.

Whether this bug is triggered only by dual booting Windows, only by sharing an EFI partition or happens as a result of some other factor is unknown at this time. Windows will still be able to suspend and resume in this state, although the fans will remain on, indicating that the laptop did not suspend fully.

One way to tell if this issue is the root cause of problems with suspend is if the LEDs around the power button start flashing every time the screen backlight is off. Normally, the power button should only flash if the laptop is suspended. If you observe flashing during moments where the backlight is off but the laptop is not suspended (for example while booting up or logging into a graphical environment), your device is likely affected by this issue.

In order to restore the firmware to a state where suspend works again, first check the firmware version with dmidecode:

dmidecode -t bios -q | grep -E '(Release|Version)'
        Version: PQCN24WW
        Release Date: 06/02/2025

Make sure the BIOS version is PQCN24WW released on June 2nd 2025 or newer. Note that the Release Date field returned by dmidecode is in the MM/DD/YYYY format. You may use Lenovo Vantage on Windows or fwupd to update the BIOS.

To eliminate all other possible root causes, ensure a clean slate by removing all configuration related to power management in the Arch Linux installation. In particular, remove any NVIDIA driver parameters other than NVreg_EnableS0ixPowerManagement. Restore kernel parameters to the absolute minimum, for example:

/proc/cmdline
root=... rw add_efi_memmap initrd=...

Reboot the device and enter BIOS configuration by repeatedly pressing the F2 key after the screen turns off and on until you see the main menu. Press More Settings to enter the actual configuration menu.

Navigate to the Exit menu and select the Load Default Settings option, then confirm the dialog that appears. Finally, press F10 and confirm to save and quit. This restores all BIOS settings to factory defaults and is a crucial step, even if you never changed any BIOS setting.

If you have some BIOS settings you want to keep, write them down before loading defaults and restore them on the next boot.

Upon next boot, suspend and resume should work again.

Advanced BIOS settings

Warning Be wary of changing BIOS settings that you don't fully understand in general, but be especially wary of changing advanced options which are undocumented and require arcane incantations to enable. YMMV.

More configuration options exist than presented by default in the proper BIOS configuration menu.

Getting access to these options requires taking the following steps:

  • Repeatedly press F2 during boot to enter the quick access menu.
  • Enter the proper BIOS configuration menu.
  • Press the key combination Fn+R+N twice.
  • Save and exit (this can be done through the F10 shortcut). The device will reboot.
  • Immediately on this next boot repeatedly press F2 again to enter the quick access menu.
  • Enter the proper configuration menu.
  • More options should be visible.
  • Upon exiting settings in any way, advanced options will once again be hidden.
Note Changing the power management settings that are displayed in this mode in an attempt to fix suspend issues (by enabling "deep sleep"/suspend-to-RAM) is futile, as this completely breaks resume (to the point of the kernel being unresponsive). Instead, follow the steps described in #Suspend.