LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Debian (https://www.linuxquestions.org/questions/debian-26/)
-   -   Debian 12: reboot loop. Non-existing firmware and no LUKS prompt? (https://www.linuxquestions.org/questions/debian-26/debian-12-reboot-loop-non-existing-firmware-and-no-luks-prompt-4175734826/)

lucky-tux 03-12-2024 10:17 AM

Debian 12: reboot loop. Non-existing firmware and no LUKS prompt?
 
I installed Debian 12.5 (Stable) with the netinstaller on my new Lenovo Thinkpad P16v (with integrated AMD Radeon 780M GPU). I have previous experience with linux (mint, manjaro), so I am not a complete novice.

I encrypted root (/), but not /boot and /efi using the installer (LUKS2 / LVM). Debian is the only OS, no dual-boot.

Problem: from the moment I load Debian from the grub menu, it reboots quite soon after. When I use "nomodeset", the boot goes well, and I am prompted to enter my passphrase.
This sounds quite simple... just a question of installing the right firmware or newer kernel, right? Well, I have tried everything I could think of. I updated the kernel to 6.6.13, made sure the repository non-free firmware and backport was on and firmware-amd-graphics is installed, reinstalled debian several times (sometimes with manual partitioning, sometimes guided partitioning), I have the latest UEFI version, AMD does not provide other drivers/firmware etc etc etc. The only that makes Debian want to boot is by using nomodeset.

I am not very experienced in the domain of kernels and loading firmware and modules. But I am seeing 2 issues here:
  1. If I let my laptop boot without "nomodeset", it is trying to load non-existing firmware files *
  2. It is trying to load firmware files from /lib/firmware/ BEFORE I get a prompt to enter my passphrase to decrypt.

1. By non-existing I do not only mean they are not on my laptop. They are simply not part of the firmware in git kernel. It really seems a mistake; as if someone accidentally typed the wrong characters? I cannot find these exact filenames anywhere on the internet. This is what is happening with loading firmware for the amdgpu until it reboots:

Code:

amdgpu 0000:c4:00.0: amdgpu Fetched VBIOS from VFCT
amdgpu: ATOM BIOS: 113-PHXGENERIC-001
amdgpu 0000:c4:00.0: firmware: direct-loading firmware amdgpu/psp_13_0_4_toc.bin
amdgpu 0000:c4:00.0: firmware: direct-loading firmware amdgpu/psp_13_0_4_ta.bin
amdgpu 0000:c4:00.0: firmware: direct-loading firmware amdgpu/dcn_3_1_4_dmcub.bin
amdgpu 0000:c4:00.0: firmware: direct-loading firmware amdgpu/gc_11_01_1_pfp.bin
amdgpu 0000:c4:00.0: firmware: direct-loading firmware amdgpu/gc_11_01_1_me.bin
amdgpu 0000:c4:00.0: firmware: direct-loading firmware amdgpu/gc_11_01_1_rlc.bin
amdgpu 0000:c4:00.0: firmware: direct-loading firmware amdgpu/gc_11_01_1_mec.bin
[drm] VCN(0) encode/decode are now enabled in VM mode
amdgpu 0000:c4:00.0: firmware: direct-loading firmware amdgpu/vcn_4_0_2.bin
amdgpu 0000:c4:00.0: firmware: [drm:jpeg_v4_0_early_init [amdgpu]] JPEG decode is enabled in VM mode
amdgpu 0000:c4:00.0: firmware: failed to load amdgpu/gc_11_01_1_mes_2.bin (-2)
amdgpu 0000:c4:00.0: Direct firmware load for amdgpu/gc_11_01_1_mes_2.bin failed with error -2
[drm] try to fall back to amdgpu/gc_11_0_1_mes.bin
amdgpu 0000:c4:00.0: firmware: direct-loading firmware amdgpu/gc_11_0_1_mes.bin
amdgpu 0000:c4:00.0: firmware: direct-loading firmware amdgpu/gc_11_0_1_mes1.bin

As you can see, most of the filenames start with "gc_11_01....". If you take a look at the firmware for amdgpu at https://git.kernel.org/pub/scm/linux...it/tree/amdgpu yo can see they use a different format. What I see in git is also what is installed on my laptop in /lib/firmware/amdgpu/, starting with
gc_11_0_1
gc_11_0_2
gc_11_0_3 etc. So no "01".

2. The other problem is - I think - that it's trying to load these files before asking me to decrypt the ssd? But as I do not understand exactly from what point in the boot process access the root is needed, I am not sure.

I listed the contents of initrd.img-6.6.13 Accessing it fails because zcat tells me it's not a valid gz file.The list is here below (partially, up to the relevant amdpgu firmware
Code:

sudo lsinitramfs initrd.img-6.6.13+bpo-amd64
.
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/AuthenticAMD.bin
.
bin
conf
conf/arch.conf
conf/conf.d
conf/conf.d/resume
conf/initramfs.conf
cryptroot
cryptroot/crypttab
etc
etc/console-setup
etc/console-setup/cached_UTF-8_del.kmap
etc/default
etc/default/keyboard
etc/fonts
etc/fonts/conf.d
etc/fonts/conf.d/60-latin.conf
etc/fonts/fonts.conf
etc/fstab
etc/ld.so.cache
etc/ld.so.conf
etc/ld.so.conf.d
etc/ld.so.conf.d/libc.conf
etc/ld.so.conf.d/x86_64-linux-gnu.conf
etc/modprobe.d
etc/modprobe.d/amd64-microcode-blacklist.conf
etc/motd
etc/mtab
etc/nsswitch.conf
etc/os-release
etc/passwd
etc/plymouth
etc/plymouth/plymouthd.conf
etc/udev
etc/udev/udev.conf
init
lib
lib64
run
sbin
scripts
scripts/functions
scripts/init-bottom
scripts/init-bottom/ORDER
scripts/init-bottom/plymouth
scripts/init-bottom/udev
scripts/init-premount
scripts/init-premount/ORDER
scripts/init-premount/plymouth
scripts/init-top
scripts/init-top/ORDER
scripts/init-top/all_generic_ide
scripts/init-top/blacklist
scripts/init-top/keymap
scripts/init-top/udev
scripts/local
scripts/local-block
scripts/local-block/ORDER
scripts/local-block/cryptroot
scripts/local-bottom
scripts/local-bottom/ORDER
scripts/local-bottom/cryptgnupg-sc
scripts/local-bottom/cryptopensc
scripts/local-bottom/cryptroot
scripts/local-bottom/ntfs_3g
scripts/local-premount
scripts/local-premount/ORDER
scripts/local-premount/ntfs_3g
scripts/local-premount/resume
scripts/local-top
scripts/local-top/ORDER
scripts/local-top/cryptopensc
scripts/local-top/cryptroot
scripts/nfs
scripts/panic
scripts/panic/ORDER
scripts/panic/plymouth
usr
usr/bin
usr/bin/cryptroot-unlock
usr/bin/fstype
usr/bin/ipconfig
usr/bin/kbd_mode
usr/bin/kmod
usr/bin/loadkeys
usr/bin/minips
usr/bin/nfsmount
usr/bin/ntfs-3g
usr/bin/plymouth
usr/bin/setupcon
usr/bin/udevadm
usr/lib
usr/lib/cryptsetup
usr/lib/cryptsetup/askpass
usr/lib/cryptsetup/functions
usr/lib/firmware
usr/lib/firmware/amdgpu
usr/lib/firmware/amdgpu/aldebaran_mec.bin
usr/lib/firmware/amdgpu/aldebaran_mec2.bin
usr/lib/firmware/amdgpu/aldebaran_rlc.bin
usr/lib/firmware/amdgpu/aldebaran_sdma.bin
usr/lib/firmware/amdgpu/aldebaran_sjt_mec.bin
usr/lib/firmware/amdgpu/aldebaran_sjt_mec2.bin
usr/lib/firmware/amdgpu/aldebaran_smc.bin
usr/lib/firmware/amdgpu/aldebaran_sos.bin
usr/lib/firmware/amdgpu/aldebaran_ta.bin
usr/lib/firmware/amdgpu/aldebaran_vcn.bin
usr/lib/firmware/amdgpu/arcturus_asd.bin
usr/lib/firmware/amdgpu/arcturus_gpu_info.bin
usr/lib/firmware/amdgpu/arcturus_mec.bin
usr/lib/firmware/amdgpu/arcturus_rlc.bin
usr/lib/firmware/amdgpu/arcturus_sdma.bin
usr/lib/firmware/amdgpu/arcturus_smc.bin
usr/lib/firmware/amdgpu/arcturus_sos.bin
usr/lib/firmware/amdgpu/arcturus_ta.bin
usr/lib/firmware/amdgpu/arcturus_vcn.bin
usr/lib/firmware/amdgpu/banks_k_2_smc.bin
usr/lib/firmware/amdgpu/beige_goby_ce.bin
usr/lib/firmware/amdgpu/beige_goby_dmcub.bin
usr/lib/firmware/amdgpu/beige_goby_me.bin
usr/lib/firmware/amdgpu/beige_goby_mec.bin
usr/lib/firmware/amdgpu/beige_goby_mec2.bin
usr/lib/firmware/amdgpu/beige_goby_pfp.bin
usr/lib/firmware/amdgpu/beige_goby_rlc.bin
usr/lib/firmware/amdgpu/beige_goby_sdma.bin
usr/lib/firmware/amdgpu/beige_goby_smc.bin
usr/lib/firmware/amdgpu/beige_goby_sos.bin
usr/lib/firmware/amdgpu/beige_goby_ta.bin
usr/lib/firmware/amdgpu/beige_goby_vcn.bin
usr/lib/firmware/amdgpu/bonaire_ce.bin
usr/lib/firmware/amdgpu/bonaire_k_smc.bin
usr/lib/firmware/amdgpu/bonaire_mc.bin
usr/lib/firmware/amdgpu/bonaire_me.bin
usr/lib/firmware/amdgpu/bonaire_mec.bin
usr/lib/firmware/amdgpu/bonaire_pfp.bin
usr/lib/firmware/amdgpu/bonaire_rlc.bin
usr/lib/firmware/amdgpu/bonaire_sdma.bin
usr/lib/firmware/amdgpu/bonaire_sdma1.bin
usr/lib/firmware/amdgpu/bonaire_smc.bin
usr/lib/firmware/amdgpu/bonaire_uvd.bin
usr/lib/firmware/amdgpu/bonaire_vce.bin
usr/lib/firmware/amdgpu/carrizo_ce.bin
usr/lib/firmware/amdgpu/carrizo_me.bin
usr/lib/firmware/amdgpu/carrizo_mec.bin
usr/lib/firmware/amdgpu/carrizo_mec2.bin
usr/lib/firmware/amdgpu/carrizo_pfp.bin
usr/lib/firmware/amdgpu/carrizo_rlc.bin
usr/lib/firmware/amdgpu/carrizo_sdma.bin
usr/lib/firmware/amdgpu/carrizo_sdma1.bin
usr/lib/firmware/amdgpu/carrizo_uvd.bin
usr/lib/firmware/amdgpu/carrizo_vce.bin
usr/lib/firmware/amdgpu/cyan_skillfish2_ce.bin
usr/lib/firmware/amdgpu/cyan_skillfish2_me.bin
usr/lib/firmware/amdgpu/cyan_skillfish2_mec.bin
usr/lib/firmware/amdgpu/cyan_skillfish2_mec2.bin
usr/lib/firmware/amdgpu/cyan_skillfish2_pfp.bin
usr/lib/firmware/amdgpu/cyan_skillfish2_rlc.bin
usr/lib/firmware/amdgpu/cyan_skillfish2_sdma.bin
usr/lib/firmware/amdgpu/cyan_skillfish2_sdma1.bin
usr/lib/firmware/amdgpu/dcn_3_1_4_dmcub.bin
usr/lib/firmware/amdgpu/dcn_3_1_5_dmcub.bin
usr/lib/firmware/amdgpu/dcn_3_1_6_dmcub.bin
usr/lib/firmware/amdgpu/dcn_3_2_0_dmcub.bin
usr/lib/firmware/amdgpu/dcn_3_2_1_dmcub.bin
usr/lib/firmware/amdgpu/dimgrey_cavefish_ce.bin
usr/lib/firmware/amdgpu/dimgrey_cavefish_dmcub.bin
usr/lib/firmware/amdgpu/dimgrey_cavefish_me.bin
usr/lib/firmware/amdgpu/dimgrey_cavefish_mec.bin
usr/lib/firmware/amdgpu/dimgrey_cavefish_mec2.bin
usr/lib/firmware/amdgpu/dimgrey_cavefish_pfp.bin
usr/lib/firmware/amdgpu/dimgrey_cavefish_rlc.bin
usr/lib/firmware/amdgpu/dimgrey_cavefish_sdma.bin
usr/lib/firmware/amdgpu/dimgrey_cavefish_smc.bin
usr/lib/firmware/amdgpu/dimgrey_cavefish_sos.bin
usr/lib/firmware/amdgpu/dimgrey_cavefish_ta.bin
usr/lib/firmware/amdgpu/dimgrey_cavefish_vcn.bin
usr/lib/firmware/amdgpu/fiji_ce.bin
usr/lib/firmware/amdgpu/fiji_me.bin
usr/lib/firmware/amdgpu/fiji_mec.bin
usr/lib/firmware/amdgpu/fiji_mec2.bin
usr/lib/firmware/amdgpu/fiji_pfp.bin
usr/lib/firmware/amdgpu/fiji_rlc.bin
usr/lib/firmware/amdgpu/fiji_sdma.bin
usr/lib/firmware/amdgpu/fiji_sdma1.bin
usr/lib/firmware/amdgpu/fiji_smc.bin
usr/lib/firmware/amdgpu/fiji_uvd.bin
usr/lib/firmware/amdgpu/fiji_vce.bin
usr/lib/firmware/amdgpu/gc_10_3_6_ce.bin
usr/lib/firmware/amdgpu/gc_10_3_6_me.bin
usr/lib/firmware/amdgpu/gc_10_3_6_mec.bin
usr/lib/firmware/amdgpu/gc_10_3_6_mec2.bin
usr/lib/firmware/amdgpu/gc_10_3_6_pfp.bin
usr/lib/firmware/amdgpu/gc_10_3_6_rlc.bin
usr/lib/firmware/amdgpu/gc_10_3_7_ce.bin
usr/lib/firmware/amdgpu/gc_10_3_7_me.bin
usr/lib/firmware/amdgpu/gc_10_3_7_mec.bin
usr/lib/firmware/amdgpu/gc_10_3_7_mec2.bin
usr/lib/firmware/amdgpu/gc_10_3_7_pfp.bin
usr/lib/firmware/amdgpu/gc_10_3_7_rlc.bin
usr/lib/firmware/amdgpu/gc_11_0_0_imu.bin
usr/lib/firmware/amdgpu/gc_11_0_0_me.bin
usr/lib/firmware/amdgpu/gc_11_0_0_mec.bin
usr/lib/firmware/amdgpu/gc_11_0_0_mes.bin
usr/lib/firmware/amdgpu/gc_11_0_0_mes1.bin
usr/lib/firmware/amdgpu/gc_11_0_0_pfp.bin
usr/lib/firmware/amdgpu/gc_11_0_0_rlc.bin
usr/lib/firmware/amdgpu/gc_11_0_1_imu.bin
usr/lib/firmware/amdgpu/gc_11_0_1_me.bin
usr/lib/firmware/amdgpu/gc_11_0_1_mec.bin
usr/lib/firmware/amdgpu/gc_11_0_1_mes.bin
usr/lib/firmware/amdgpu/gc_11_0_1_mes1.bin
usr/lib/firmware/amdgpu/gc_11_0_1_pfp.bin
usr/lib/firmware/amdgpu/gc_11_0_1_rlc.bin
usr/lib/firmware/amdgpu/gc_11_0_2_imu.bin
usr/lib/firmware/amdgpu/gc_11_0_2_me.bin
usr/lib/firmware/amdgpu/gc_11_0_2_mec.bin
usr/lib/firmware/amdgpu/gc_11_0_2_mes.bin
usr/lib/firmware/amdgpu/gc_11_0_2_mes1.bin
usr/lib/firmware/amdgpu/gc_11_0_2_pfp.bin
usr/lib/firmware/amdgpu/gc_11_0_2_rlc.bin


Can you help me solve this? I have searched so much, but I am not sure what I can do to get more information, let alone fix this.


All times are GMT -5. The time now is 01:51 AM.