openSUSE / sdbootutil

MIT License
25 stars 13 forks source link

Initrd does not get updated when installing new nvidia driver #22

Open throttlemeister opened 1 year ago

throttlemeister commented 1 year ago

Problem: When installing a new nvidia driver (possibly others as well), the user is dropped to console upon reboot. Dmesg will show NVRM: Api mismatch. This is caused by the driver being of the old version, and the client being the newly updated version.

Cause: initrd is not automaically updated after install of the nvidia driver. Manually regenerating the initrd by executing dracut --regenerate-all --force and manually copying the new initrd over the the one in /boot/efi/opensuse-tumbleweed/<kernel-version> will fix the problem and allow booting into the GUI once more

Solution: Update initrd automatically as part of the post-install scripts for systemd-boot when a kernel module is updated. Ie adding kmp-* scripts currently not present under /usr/lib/module-init-tools/kernel-scriptlets may be all that is needed?

lnussel commented 11 months ago

yes, kmps are currently not well integrated. You can regnerate the initrd by using sdbootutil add-all-kernels --no-reuse-initrd

throttlemeister commented 11 months ago

Thanks, that's easier / quiker than dracut --regerenate-all --force and then copying over the original in /boot/efi/opensuse.../ what I was doing until now .

TobiPeterG commented 8 months ago

How could handling kmps be improved?

TobiPeterG commented 4 months ago

should be solved with https://github.com/openSUSE/suse-module-tools/pull/103