A zRAM mechanizmust használó rendszerek felhasználói olyan problémába ütköztek, amely rendszerindítási hibát okozott a Linux kernel 6.12 verzióra való frissítése után. A probléma a Gentoo, Void és más zRAM támogatású disztribúciókban jelentkezik, amelyek új kernelfeltételeket kínálnak.
A hiba oka a kernel 6.12-be beépített változtatás, amely lehetővé tette a tömörítési algoritmusok futás közbeni konfigurálását. Ezzel egy időben a Kconfig-ban megváltozott a rendelkezésre álló tömörítési algoritmusok kiválasztásának logikája a kernel buildelésének szakaszában. Ez a változtatás problémákat okozott azokban a disztribúciókban, amelyek az alapértelmezett beállításokra támaszkodtak és nem engedélyezték az összes zRAM algoritmust külön-külön a 6.12-es kernel Kconfig konfigurációjában.
A 6.12-es kernelre való frissítés után ezekben a disztribúciókban csak az alapértelmezett tömörítő algoritmus maradt elérhető a választáshoz, nem pedig az összes támogatott algoritmus. Ennek megfelelően, amikor a zRAM-ban olyan algoritmusokat próbáltak aktiválni, amelyek nem egyeztek meg az alapértelmezett algoritmussal, akkor rendszerindítási hiba lépett fel. Például, ha az lz4 algoritmust választották a rendszerindítás során, akkor a „zramctl: /dev/zram0: failed to set algorithm: Invalid argument” hiba lépett fel, mivel csak az lzo támogatás maradt, az előzőleg támogatott lzo, lz4, lz4hc, 842 és zstd algoritmusok helyett.
A probléma úgy orvosolható, hogy a Kconfig-ban külön-külön engedélyezik minden egyes tömörítési hátteret (a CONFIG_ZRAM_BACKEND_* beállítások a 6.12-es kernelbe lettek hozzáadva): CONFIG_ZRAM_BACKEND_LZ4=y CONFIG_ZRAM_BACKEND_LZ4HC=y CONFIG_ZRAM_BACKEND_ZSTD=y CONFIG_ZRAM_BACKEND_842=y CONFIG_ZRAM_DEF_COMP_LZO=y CONFIG_ZRAM_DEF_COMP="lzo"
Forrás: opennet.ru
