(address . bug-guix@gnu.org)
My root device is on NVMe.
In my current kernel config CONFIG_NVME_CORE is set to a module, which is
included in my initrd.
However upstream defconfig has been changed to CONFIG_NVME_CORE=y
When trying to guix reconfigure my system, building the operating system
fails in check-device-initrd-modules with the following message
vany/systems.scm:111:10: error: you may need these modules in the initrd for /dev/nvme0n1p2: nvme shpchp
hint: Try adding them to the `initrd-modules' field of your `operating-system' declaration, along these lines:
(operating-system
;; ...
(initrd-modules (append (list "nvme" "shpchp")
%base-initrd-modules)))
If I add initrd-modules to my operating-system, then building the initrd
fails because nvme module cannot be found (as it is not being build as a
module).
Fundamentally I think the problem is that check-device-initrd-modules is
checking modules for the currently running kernel which is not
necessarily the kernel that I will be installing.
At the very least however it would be nice if I could override this
check with a --i-know-what-im-doing flag of some sort.
It seems odd that check-device-initrd-modules will not prevent your
installation from continuing if it can't find modules.alias, but if it
can find it and you didn't specify the initrd-modules it thinks you need
then it becomes a hard error that you can't override. Perhaps it should
always be a warning or prompt the user if they want to continue.