Сжатие модулей ядра в gentooПодписка на Комментарии к "Сжатие модулей ядра в gentoo"

Аватар ormorph

Допустим нам надо сжать модули алгоритмом lzma, с окончанием xz.
Для начала пакет sys-apps/kmod должен быть собран с флагом lzma. Это необходимо сделать, что бы модули монтировались и были доступны команде modprobe.
После сборки пакета sys-apps/kmod, можно перейти к сборке ядра.
За сжатие модулей ядра отвечают строчки в конфиге ядра:

CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_XZ=y

Это пункты в меню make menuconfig:

[*] Enable loadable module support  --->
      [*]   Compress modules on installation
                  Compression algorithm ---> (X) XZ

Перед сборкой через genkernel, нужно отредактировать скрипты для определения суффикса модулей - .ko.xz. Так как я использую genkernel-next - для splash тем plymouth, то пример будет касаться genkernel-next.
Для начала отредактировать файл:
/usr/share/genkernel/gen_initramfs.sh

$ cp /usr/share/genkernel/gen_initramfs.sh /usr/share/genkernel/gen_initramfs.sh.back
$ nano -w /usr/share/genkernel/gen_initramfs.sh

Заменить в нем строчки:
MOD_EXT=".ko" на MOD_EXT=".ko.xz"

Далее файл:
/usr/share/genkernel/defaults/initrd.defaults

Заменить в нем строку KSUFF=".ko" на KSUFF=".ko.xz"
Это необходимо что бы модули добавлялись в файл initramfs

Далее можно переходить к сборке ядра:
# genkernel all --menuconfig --udev

Добавить комментарий