Skip to content

Conversation

silkeh
Copy link
Member

@silkeh silkeh commented Jul 7, 2024

Summary

Change the location from which freestanding initrd files are loaded to /usr/lib64/kernel/initrd.d and install the common initrd files shipped in the nvidia driver packages to that directory. See man clr-boot-manager for details on freestanding initrds.

Test Plan

Install nvidia package and verify that the initrd is installed:

# cat /boot/loader/entries/Solus-current-6.9.8-294.conf
title Solus 4.5 Resilience
linux /EFI/com.solus-project/kernel-com.solus-project.current.6.9.8-294
initrd /EFI/com.solus-project/initrd-com.solus-project.current.6.9.8-294
initrd /EFI/com.solus-project/initrd-com.solus-project.current.6.9.8-294.nvidia
initrd /EFI/com.solus-project/freestanding-com.solus-project.nvidia-firmware
options root=UUID=fad493c3-e3ca-4041-8f45-1a2a38b7e957 rd.luks.uuid=eb14b3d3-f2c2-453d-a396-dd97fcc769d2 rootflags=subvol=solus quiet rw nvidia-drm.modeset=1 nvidia.NVreg_PreserveVideoMemoryAllocations=1 nvi
dia.NVreg_TemporaryFilePath=/var/tmp console=tty0 console=ttyS0,115200n8 vconsole.keymap=en-latin9 rd.luks.options=tpm2-device=auto,discard amdgpu.pcie_gen2=0 systemd.unified_cgroup_hierarchy=1 systemd.show_
status=true  amd_pstate=active

Checklist

  • Package was built and tested against unstable

@ReillyBrogan
Copy link
Contributor

initrd /EFI/com.solus-project/initrd-com.solus-project.current.6.8.12-293
initrd /EFI/com.solus-project/freestanding-com.solus-project.nvidia-firmware

This looks wrong, where is the kernel module initrd?

@ReillyBrogan
Copy link
Contributor

Also, as previously mentioned in Matrix I'd rather we only do the firmware for the -beta driver at first. @Staudey can always merge in the changes to the other drivers later.

@silkeh
Copy link
Member Author

silkeh commented Jul 7, 2024

This looks wrong, where is the kernel module initrd?

It isn't there if you look at the old kernel 😓

Also, as previously mentioned in Matrix I'd rather we only do the firmware for the -beta driver at first. @Staudey can always merge in the changes to the other drivers later.

I just updated the already existing files. Why do the others exist if that's the case?

@silkeh silkeh force-pushed the update-freestanding-initrd-dir branch from a0748cc to bb6ddfd Compare July 10, 2024 13:50
@silkeh silkeh requested a review from ReillyBrogan July 10, 2024 13:51
@silkeh silkeh marked this pull request as ready for review July 10, 2024 13:51
silkeh added 4 commits July 15, 2024 20:22
…kernel/initrd.d

**Summary**

Change the location from which freestanding initrd files are loaded to `/usr/lib64/kernel/initrd.d`.
See `man clr-boot-manager` for details.
**Summary**

Install the common initrd to the freestanding initrd directory that is used by clr-boot-manager.
**Summary**

Disable the generation of the common initrd until tested in the beta driver.
**Summary**

Disable the generation of the common initrd until tested in the beta driver.
@silkeh silkeh force-pushed the update-freestanding-initrd-dir branch from bb6ddfd to a027738 Compare July 15, 2024 18:33
@ReillyBrogan ReillyBrogan deleted the update-freestanding-initrd-dir branch July 18, 2024 17:05
ReillyBrogan added a commit that referenced this pull request Jul 18, 2024
**Usual Changes**
- Bumped linux-current and linux-lts to v6.9.10 and v6.6.41 respectively
- Update BORE CPU scheduler on linux-current to v5.2.4

**Init changes**
- Remove previous implementation based on hacky symlinks
- Add additional firmware paths to the kernel firmware scanning code to
allow us to simply put the firmware files in additional top-level initrd
directories and have them picked up correctly
- Add a depmod.conf file which adds `/dracut-nvidia` to the kernel
module search path, ordered above the existing search path. This file is
only present in the initrd.
- In combination with 5e0619c add a
`/.dracut-depmod-invalidate` file to the nvidia kernel module initrds.
If this file is present a one-shot service will run before systemd does
udev/kmod things which will run `depmod` in the initrd generating a new
index. This solves the issue of the initrd not being aware that new
kernel modules are present.
- Go through the nvidia modules and adapt them to the new changes
- Temporarily move the nvidia-glx-driver linux-current initrd to a
temporary subpackage due to user reports of issues with the 6.9 kernel
- Disable firmware initrd generation for nvidia drivers < v555.x. (See
#3257)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

2 participants