Guide to generate machine independent initrds? #2403
-
Hey everyone, based on several talk and blogs it seems that some distributions want to move into the direction where they generate initrd for all users and then distribute them. This has some advantages such as vendor-signed UKIs and a more consistent setup which might help resolving bugs. However, I have not been able to find information how such initrds might be generated due to the vast amount of different hardware which has to be supported. Which modules are actually required to be included in an initrd? There is for example the list in this repositories mkosi-initrd configuration: mkosi/mkosi/resources/mkosi-initrd/mkosi.conf Lines 39 to 50 in ae8e905 Is most hardware fine if it is only brought up after the initrd when the real system starts? Some other projects go another way and simply include based on a very coarse list (but also not listing any drivers): Or Ubuntu's list for modules which are included in their initrds distributed via snap for Ubuntu Core which seems like a very carefully curated list of modules: Is there any guide upon this topic which you know? Does one simply start with the minimal set and add more if bug reports start pouring in? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
There is no magic solution here but trial and error to figure out what should be in and what shouldn't be. Not sure if there's more to say about the topic. |
Beta Was this translation helpful? Give feedback.
-
In addition to the list from the snapcore initrd I also found out that initramfs tools has a set of kernle modules it installs when selecting initramfs-tools/hook-functions Dracut on the other hand seems to scan all available modules and then determines (have not found out how exactly) those used for block devices, filesystems, keyboard drivers etc. and installs those: https://wiki.gentoo.org/wiki/Dracut#Kernel_modules PS: The dracut logic seems to be in the kernel-modules dracut module: 90kernel-modules/module-setup.sh |
Beta Was this translation helpful? Give feedback.
There is no magic solution here but trial and error to figure out what should be in and what shouldn't be. Not sure if there's more to say about the topic.