rhboot / shim

UEFI shim loader

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Lenovo ThinkPads, unable to boot following clean install, stuck at (vendor) splash screen

cmurf opened this issue · comments

shim-x64-15.4

Models, firmware, and video with mokutil --set-verbosity true
Thinkpad T490
[ 0.000000] DMI: LENOVO 20N2CTO1WW/20N2CTO1WW, BIOS N2IET97W (1.75 ) 10/09/2021
https://www.youtube.com/watch?v=QfXtJzfFozw

Thinkpad Yoga 370
[ 0.000000] DMI: LENOVO 20JJS0VK1F/20JJS0VK1F, BIOS R0HET56W (1.36 ) 08/06/2020
https://www.youtube.com/watch?v=FBtazoABHYY

Downstream bug report:
https://bugzilla.redhat.com/show_bug.cgi?id=1955416

Also affected models:
DMI: LENOVO 20QNCTO1WW/20QNCTO1WW, BIOS N2NET46W (1.31 ) 06/22/2021
DMI: LENOVO 4286CTO/4286CTO, BIOS 8DET76WW (1.46 ) 06/21/2018
DMI: LENOVO 20N20032US/20N20032US, BIOS N2IET96W (1.74 ) 08/10/2021

I guess the only commonality is that even shim debug mode isn't showing enough information why it's getting stuck. So I guess this isn't merely another bug report, but a request to enhance shim with more/better debugging?

This T490 user is not experiencing the problem
DMI: LENOVO 20NYS41L02/20NYS41L02, BIOS N2JET93W (1.71) 11/04/2020

After 2 hours of debugging with prints, I found that fallback (fbx64.efi) fails on CopyMem inside add_to_boot_list on my Lenovo X220 in this place of fallback.c:

CopyMem(newbootorder + 1, bootorder, sizeof (CHAR16) * option);
CopyMem(newbootorder + option + 1, bootorder + option + 1,
    sizeof (CHAR16) * (nbootorder - option - 1));

The fix already present in git master:
41319e1

Ask shim maintainers of your distro to apply this patch.

Of what I observe on the video, commit 4804ba0 also may be relevant.

Ask shim maintainers of your distro to apply this patch.

To actually help get the fix to you sooner, it's better to test the shim RCs.

Thanks for tracking down and confirming the fix!

Please keep conversations in one venue, thanks.