Hanging on black screen after sleep / hibernates on Legion 5 15IAH7H NVIDIA RTX 3070 Laptop

Hello,

I just ordered a Lenovo Legion 5i Pro from their website and installed Ubuntu 20.04 on a crypted partition along side the pre installed Windows 11.

I noticed right away after installing that if I closed the lid, pressed the suspend button, clicked on Power → Suspend, then, once I would bring it back by pressing keys, I would get a hanging black screen but with laptop being active !

Everything powers back. I have backlight on keys, I hear the fans, the Power button is On and the screen goes from full black OFF to full black LIT every 20 seconds or so but never succeeds to get back to the login screen.

I found tons of answers here and there between updating the grub file, updating the kernel, updating the BIOS, updating the Nvidia Driver or nouveau driver but I could not make anything work in the end…
I tried this solution for instance without any progress :

Right now I have the following setup:

Proc: Intel® Core™ i7-12700H
GPU: Nvidia Geforce RTX Laptop 3070
OS: Ubuntu 20.04
Nvidia Driver: nvidia-driver-530
Kernel : Linux 5.15.0-67-generic
GPU Mode: Hybride
Secure boot: Off

Could you please help me figure out what is going on ? I’m tried so hard to make this work but I couldn’t. I can upload files if needed.

By your cpu and notebook model I suspect you ran into a known bios bug affecting the intel igpu (was fixed in bios for thinkpads but not for legions). Latest kernel has some fixes for it. Please use the liquorix ppa to install latest kernel.

Hello generix,

Thank you for your reply and for your help.
I added the ppa, installed linux-image-6.2.7-1-liquorix-amd64 and linux-headers-6.2.7-1-liquorix-amd64 packages, rebooted, clicked on Power Off → Suspend and still obtained the same behavior with the on and off black screen.

Did I do something wrong ?

Please run nvidia-bug-report.sh as root and attach the resulting nvidia-bug-report.log.gz file to your post.

nvidia-bug-report.log.gz (471.8 KB)
Here is the folder.

I noticed as well that I could not display on an external monitor. I hear the PC recognizing I plugged a HDMI or USB-C cable but I think the display itself is not detected. Windows P does nothing. Nvidia X Server shows HDMI plugged but no information on the display. (The external screen works with other PCs).

Currently, your intel igpu is defunct due to missing firmware. Do you really have to use 20.04? For latest hardware, rather use latest OS.
Otherwise, you’ll have to install the latest firmware manually:
https://packages.ubuntu.com/en/lunar/linux-firmware

I do have to use 20.04 because some packages I use for development are not compatible yet with 22. I might have to give up on 20 if that is the only option though even if it means figuring out a way to find compatibility for my libs.

I think this package is already installed on my laptop though if I come to believe apt :

$ sudo apt install linux-firmware
Reading package lists... Done
Building dependency tree       
Reading state information... Done
linux-firmware is already the newest version (1.187.36).
linux-firmware set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.

You need to download the firmware package manually and install it. The 20.04 repo doesn’t contain it.

Thank you for the tip !

So I installed the package and now I can display on an external monitor if I plug it at boot or even when running so well played !
However, I still cannot get out of the Suspend mode, still getting the black alternating screen.

I am joining the new file in case you can notice something still wrong in it.
nvidia-bug-report.log.gz (412.1 KB)

The logs don’t look like the firmware package was correctly installed.
Please post the output of
ls -l /lib/firmware/i915/adlp_dmc_ver2*

$ ls -l /lib/firmware/i915/adlp_dmc_ver2*

-rw-r--r-- 1 root root 44636 janv. 26 09:03 /lib/firmware/i915/adlp_dmc_ver2_09.bin
-rw-r--r-- 1 root root 44616 janv. 26 09:03 /lib/firmware/i915/adlp_dmc_ver2_10.bin
-rw-r--r-- 1 root root 72104 janv. 26 09:03 /lib/firmware/i915/adlp_dmc_ver2_12.bin

The firmware was not installed, how did you try to do it?

I downloaded linux-firmware_20230316.gitc761dbe8.orig.tar.xz and ran the ./install.sh script but I don’t think it touched the files you are mentioning. I’ll try something else.

You need to download the .deb package from the link I gave you and install that (double-click).

Sorry for that, I’m not too familiar with this. Thank you again for leading me.
The install is looking like this

sudo dpkg -i ~/Downloads/linux-firmware_20230316.gitc761dbe8-0ubuntu1_all.deb
(Reading database ... 336827 files and directories currently installed.)
Preparing to unpack .../linux-firmware_20230316.gitc761dbe8-0ubuntu1_all.deb ...
Unpacking linux-firmware (20230316.gitc761dbe8-0ubuntu1) over (20230316.gitc761dbe8-0ubuntu1) ...
Setting up linux-firmware (20230316.gitc761dbe8-0ubuntu1) ...
update-initramfs: Generating /boot/initrd.img-6.2.7-1-liquorix-amd64
I: The initramfs will attempt to resume from /dev/dm-1
I: (/dev/mapper/ubuntu--vg-swap_1)
I: Set the RESUME variable to override this.
update-initramfs: Generating /boot/initrd.img-5.15.0-67-generic
I: The initramfs will attempt to resume from /dev/dm-1
I: (/dev/mapper/ubuntu--vg-swap_1)
I: Set the RESUME variable to override this.
update-initramfs: Generating /boot/initrd.img-5.14.0-1058-oem
I: The initramfs will attempt to resume from /dev/dm-1
I: (/dev/mapper/ubuntu--vg-swap_1)
I: Set the RESUME variable to override this.

Now the firmware folder looks like this :

$ ls -l /lib/firmware/i915/adlp_dmc_ver2*


-rw-r--r-- 1 root root 44636 mars  16 16:19 /lib/firmware/i915/adlp_dmc_ver2_09.bin
-rw-r--r-- 1 root root 44616 mars  16 16:19 /lib/firmware/i915/adlp_dmc_ver2_10.bin
-rw-r--r-- 1 root root 72104 mars  16 16:19 /lib/firmware/i915/adlp_dmc_ver2_12.bin
-rw-r--r-- 1 root root 77300 mars  16 16:19 /lib/firmware/i915/adlp_dmc_ver2_14.bin
-rw-r--r-- 1 root root 77084 mars  16 16:19 /lib/firmware/i915/adlp_dmc_ver2_16.bin

I tried Suspending and I still got the black screen though. On one monitor and on both when another one is plugged in.
nvidia-bug-report.log.gz (419.8 KB)

I checked the original bug report for this
https://gitlab.freedesktop.org/drm/intel/-/issues/5531
and found


Ville Syrjälä
@vsyrjala · 1 month ago
Reporter

All of those are in (state==Accepted). But looks like they didn't make it into 6.2, so they'll appear in 6.3.

So you will have to wait a bit until the release of kernel 6.3.
Since you already have the liquorix ppa enabled, this will be auto-installed on updating your system.

Ok I get it. Thank you so much generix. Shall this topic be closed or stay open until then ?

Just leave it open and report back once 6.3 lands on your system.

1 Like