View previous topic :: View next topic |
Author |
Message |
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1972 Location: Schweiz
|
Posted: Wed May 22, 2024 10:29 am Post subject: Changes to dracut kernel module/microcode handling |
|
|
Heute zum ersten mal, per "eselect news", diese "NEWS" bekommen/gelesen:
https://www.gentoo.org/support/news-items/2024-05-17-dracut-ext-kmods.html
Und erst mal habe ich gedacht das ich das ganze aufgrund von meinem eher schlechten Englisch einfach falsch verstanden habe (was noch immer sein kann, korrigiert mich bitte umgehend wenn es so ist) aber egal wie oft ich das durchlese es macht mich einfach fassungslos.
Werden hier wirklich die Standards (USE-Flags und das Upstream-Verhalten von "sys-kernel/dracut") so umgebogen das jedes Package welches irgendwelche Kernel-Module, Firmware-Dateien und/oder Microcode-Updates enthält eine extra initramfs-Datei in die boot-Partition kotzt? Was ist das den für eine Schnapsidee?
Ich benutze nicht ohne Grund "sys-kernel/dracut", unter anderem genau deswegen. "sys-kernel/dracut" soll mir für jeden Kernel genau EINE initramfs-Datei erstellen die alles enthält und die dann vom bootloader benutzt wird.
Bei mir bleibt das USE-Flag "initramfs" fürs erste global deaktiviert und "sys-kernel/dracut" so eingestellt das ALLES (Kernel-Module, Firmware-Dateien und/oder Microcode-Updates) in das eine initramfs gepackt wird. Das entspricht auch dem vom Upstream festgelegten Standardverhalten von "sys-kernel/dracut".
Sorry falls dieser Rant jetzt den einen oder anderen triggert aber ich musste mir jetzt echt erst mal Luft verschaffen. _________________ Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5321
|
Posted: Wed May 22, 2024 11:28 am Post subject: |
|
|
Soweit ich das bestehe betrifft das ganze hauptsächlich user, welche und/oder folgendes nutzen
- "Out Of Tree" Kernel modul, welches unbedingt beim starten des systems geladen werden muss weil sonst das system überhaupt nicht started
- Einen distribution kernel
Die Änderung soll vermeiden, dass die initramfs outdated kernel module beinhalten von out of tree kernel module.
Was bei usern ohne kenntnisse wie das ganze mit der initramfs funktioniert, probleme vermeiden helfen soll.
Da du genau weist was du in der initramfs brauchst und du dich mit dem thema befasst hast ist deine Änderung, nach meinem Verständnis, genau richtig für dein Usecase.
schmidicom wrote: | so umgebogen das jedes Package welches irgendwelche Kernel-Module, Firmware-Dateien und/oder Microcode-Updates enthält eine extra initramfs-Datei in die boot-Partition kotzt? |
Das glaube ich hast du missverstanden. Die Änderungen erzeugen dracut configurationen welche dracut anweisen die entsprechenden firmware/out of tree kernel module beim bauen der initramfs zu inkludieren. (Wenn die useflags entsprechend gesetzt sind laut news)
Edit: Wobei das ganze hauptsächlich "passiert" wenn das useflag "dist-kernel" gesetzt ist. Zu mindestens im kontext der firmware/microcode ebuilds _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1972 Location: Schweiz
|
Posted: Wed May 22, 2024 12:14 pm Post subject: |
|
|
firefly wrote: | ...
Die Änderung soll vermeiden, dass die initramfs outdated kernel module beinhalten von out of tree kernel module.
...
Die Änderungen erzeugen dracut configurationen welche dracut anweisen die entsprechenden firmware/out of tree kernel module beim bauen der initramfs zu inkludieren. (Wenn die useflags entsprechend gesetzt sind laut news) |
Ist ja schön das Dracut mit zusätzlichen Konfigurationsdateien dazu gebracht werden soll extra installierte Module in sein initramfs zu packen aber dafür braucht es diese nutzlosen iniramfs-Dateien nicht:
equery b /boot/amd-uc.img /boot/intel-uc.img: | * Searching for /boot/amd-uc.img,/boot/intel-uc.img ...
sys-firmware/intel-microcode-20240312_p20240312 (/boot/intel-uc.img)
sys-kernel/linux-firmware-20240513 (/boot/amd-uc.img) |
Dracut interessiert sich nicht für diese Dateien, dafür reicht es die Option "early_microcode" auf yes zu setzen (was Upstream standardmäßig bereits der Fall ist) und die Microcode-Dateien (ohne extra initramfs-Datei) installiert zu haben.
Und für die Kernel-Module braucht es auch nicht viel mehr als das was z. B. "app-admin/ryzen_smu" bereits macht:
equery f app-admin/ryzen_smu: | /lib
/lib/modules
/lib/modules/6.9.1-gentoo
/lib/modules/6.9.1-gentoo/extra
/lib/modules/6.9.1-gentoo/extra/ryzen_smu.ko
/usr
/usr/lib
/usr/lib/dracut
/usr/lib/dracut/dracut.conf.d
/usr/lib/dracut/dracut.conf.d/10-ryzen_smu.conf
/usr/lib/modules-load.d
/usr/lib/modules-load.d/ryzen_smu.conf
/usr/share
/usr/share/doc
/usr/share/doc/ryzen_smu-0.1.5
/usr/share/doc/ryzen_smu-0.1.5/README.md.bz2 |
/usr/lib/dracut/dracut.conf.d/10-ryzen_smu.conf: | omit_drivers+=" ryzen_smu " |
Gerade den Nutzern von "sys-kernel/dracut" solche initramfs-Dateien in die boot-Partition zu schmeißen ist einfach unnötig. _________________ Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5321
|
Posted: Wed May 22, 2024 2:05 pm Post subject: |
|
|
schmidicom wrote: |
Und für die Kernel-Module braucht es auch nicht viel mehr als das was z. B. "app-admin/ryzen_smu" bereits macht:
equery f app-admin/ryzen_smu: | /lib
/lib/modules
/lib/modules/6.9.1-gentoo
/lib/modules/6.9.1-gentoo/extra
/lib/modules/6.9.1-gentoo/extra/ryzen_smu.ko
/usr
/usr/lib
/usr/lib/dracut
/usr/lib/dracut/dracut.conf.d
/usr/lib/dracut/dracut.conf.d/10-ryzen_smu.conf
/usr/lib/modules-load.d
/usr/lib/modules-load.d/ryzen_smu.conf
/usr/share
/usr/share/doc
/usr/share/doc/ryzen_smu-0.1.5
/usr/share/doc/ryzen_smu-0.1.5/README.md.bz2 |
/usr/lib/dracut/dracut.conf.d/10-ryzen_smu.conf: | omit_drivers+=" ryzen_smu " |
Gerade den Nutzern von "sys-kernel/dracut" solche initramfs-Dateien in die boot-Partition zu schmeißen ist einfach unnötig. |
Hä? Das hab ich doch geschrieben.... Und dein beispiel ist genau das, was diese Änderung auch macht...
Denn das sind dracut config dateien... _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5321
|
Posted: Wed May 22, 2024 2:08 pm Post subject: |
|
|
schmidicom wrote: |
equery b /boot/amd-uc.img /boot/intel-uc.img: | * Searching for /boot/amd-uc.img,/boot/intel-uc.img ...
sys-firmware/intel-microcode-20240312_p20240312 (/boot/intel-uc.img)
sys-kernel/linux-firmware-20240513 (/boot/amd-uc.img) |
|
Öhm sicher dass das so passiert nach dieser Umstellung? Wobei die neue logik nur ausgeführt wird, wenn dist-kernel + initramfs in diesen beiden paketen aktiv ist... _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1972 Location: Schweiz
|
Posted: Wed May 22, 2024 5:15 pm Post subject: |
|
|
firefly wrote: | schmidicom wrote: |
Und für die Kernel-Module braucht es auch nicht viel mehr als das was z. B. "app-admin/ryzen_smu" bereits macht:
equery f app-admin/ryzen_smu: | /lib
/lib/modules
/lib/modules/6.9.1-gentoo
/lib/modules/6.9.1-gentoo/extra
/lib/modules/6.9.1-gentoo/extra/ryzen_smu.ko
/usr
/usr/lib
/usr/lib/dracut
/usr/lib/dracut/dracut.conf.d
/usr/lib/dracut/dracut.conf.d/10-ryzen_smu.conf
/usr/lib/modules-load.d
/usr/lib/modules-load.d/ryzen_smu.conf
/usr/share
/usr/share/doc
/usr/share/doc/ryzen_smu-0.1.5
/usr/share/doc/ryzen_smu-0.1.5/README.md.bz2 |
/usr/lib/dracut/dracut.conf.d/10-ryzen_smu.conf: | omit_drivers+=" ryzen_smu " |
Gerade den Nutzern von "sys-kernel/dracut" solche initramfs-Dateien in die boot-Partition zu schmeißen ist einfach unnötig. |
Hä? Das hab ich doch geschrieben.... Und dein beispiel ist genau das, was diese Änderung auch macht...
Denn das sind dracut config dateien... |
Ja genau deshalb habe ich es da rein gepackt, es braucht keine zusätzliche initramfs-Dateien die einem per Default in die boot-Partition gekippt werden.
firefly wrote: | schmidicom wrote: |
equery b /boot/amd-uc.img /boot/intel-uc.img: | * Searching for /boot/amd-uc.img,/boot/intel-uc.img ...
sys-firmware/intel-microcode-20240312_p20240312 (/boot/intel-uc.img)
sys-kernel/linux-firmware-20240513 (/boot/amd-uc.img) |
|
Öhm sicher dass das so passiert nach dieser Umstellung? Wobei die neue logik nur ausgeführt wird, wenn dist-kernel + initramfs in diesen beiden paketen aktiv ist... |
Ja, vorher hatte ich diese Dateien nicht. Diese Dateien kammen mit dieser Umstellung und dem dadurch per Default aktiviertem USE-Flag "initramfs".
Mir geht es bei diesem ganzen Fall vor allem darum wie diese NEWS geschrieben ist.
Extrem schlecht zu verstehen, mit einer fraglichen Begründung warum das jetzt angeblich so sein müsste und mit einer Warnung man solle dieses USE-Flag bloß nicht global deaktivieren. ??? _________________ Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5162 Location: Bavaria
|
Posted: Wed May 22, 2024 5:27 pm Post subject: |
|
|
schmidicom wrote: | [...] und mit einer Warnung man solle dieses USE-Flag bloß nicht global deaktivieren. ??? |
Na ja ... ich habe mich brav an diese Anweisung gehalten und es global deaktiviert (weil kein dracut und kein dist-kernel und kein installkernel und kein grub):
Quote: | Users who do not use sys-kernel/dracut or Distribution Kernels can safely disable the "initramfs" USE flag globally. |
Ja, es ist ärgerlich, wenn man komplexe Auto-Magic-Sachen verwendet die sich dann auch mal ändern können ... die Begründung warum es geändert wurde hat mich aber überzeugt ... als jemand der im Forum des öfteren User mit -NVIDIA-Modulen helfen sollte ... _________________ https://wiki.gentoo.org/wiki/User:Pietinger |
|
Back to top |
|
|
Max Steel Advocate
Joined: 12 Feb 2007 Posts: 2270 Location: My own world! I and Gentoo!
|
Posted: Thu May 23, 2024 8:56 am Post subject: |
|
|
Ich habe auch Gründe gegen den Einsatz des initramfs Use-Flags, da XEN nicht sonderlich gut auf mehrere initramfs-Module anspricht.
Aber auf anderen Systemen ohne XEN geniese ich es dass ich mich nicht um die intel/amd firmwareupdates kümmern muss beim system update.
Aber ich bau auch meinen Kernel selber und die initramfs dank linux/usr/gen_init_cpio selber, da dracut (oder genkernel/initramfs for that matter) zwar alles mögliche mitliefert... ich aber nicht alles brauche.
Aber das use-flags initramfs auf linux-firmware und intel-microcode existiert schon ein paar Tage länger. Und hatte dort schon immer dafür gesorgt dass diese Pakete die Dateien /boot/intel-uc.img respektive /boot/amd-uc.img generiert hat. Das kam jetzt nicht erst mit den Updates vom 17.05. Aber es steht auch beschrieben was passiert wenn dist-kernel nicht gesetzt ist, und wie es sich verhält wenn man dist-kernel zusätzlich zu initramfs setzt. Also dass dracut dann die generierten intel/amd initramfs inkludiert. _________________ mfg
Steel
___________________
Heim-PC: AMD Ryzen 5950X, 64GB RAM, GTX 1080
Laptop: Intel Core i5-4300U, 16GB RAM, Intel Graphic
Arbeit-PC: Intel i5-1145G7, 16GB RAM, Intel Iris Xe Graphic (leider WSL2) |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|