COMPRESSION_OPTIONS
Defines an array of additional options to be passed to the compression program. This option is
generally not used. It can be potentially dangerous and may cause invalid images to be generated
without any sign of an error.
Никак, судя по всему. Во всяком случае, пробежавшись по mkinitcpio (это обычный bash-скрипт), я такой возможности не увидел. Чем тебя этот файл не устраивает? Если не хочешь вносить глобальные изменения, создай файл mkinitcpio-rmu.conf, добавь всё, что нужно, и укажи в своём preset-файле в качестве конфига через ALL_config (для всех preset) или default_config (для конкретного).
Ну я так и делал. Только зачем добавлять в пакет ядра отдельный конфигуратор, если, например, можно сделать то же самое, дописав подходящий аргумент в preset-файл? В документации об этом ни слова, на буржуйских форумах такой темы не встретилось.
Вроде работает, но это грязный хак и лучше такое не использовать, потому что есть вероятность проблем с preset, которые будут обрабатываться после этого. Короче, можешь потестить, но на свой страх и риск.
Я пробовал так делать. Если записать туда другие параметры сжатия, кроме -9,то вываливаются ошибки. initcpio не может нормально обработать такое. А если вынести в conf файл, то работает. Не знаю почему так.
Не могу найти причину, почему lz4 не работает. Опции RD_LZ4, LZ4_COMPRESS, DECOMPRESS_LZ4, LZ4_DECOMPRESS, KERNEL_LZ4 выставлены в ‘y’. Всё равно появляется ошибка Initramfs unpacking failed: Decoding failed.
Запускал ванильное ядро с моим образом – оно вообще не грузится, потому что нет модулей. lsinitcpio показывает содержимое правильно, значит ошибок сжатия нет.
Попробуй сделать, как тут. Насколько я понимаю, за это отвечает CONFIG_RD_LZ4. Сейчас заметил, что он у тебя всё-таки включён, но всё равно проверь через menuconfig, например.
Запускал ванильное ядро с моим образом – оно вообще не грузится, потому что нет модулей.
С родным initramfs оно грузится? Если грузится с родным и ругается на твой initramfs из-за отсутствия модулей, то, видимо, распаковка происходит всё-таки?
Без COMPRESSION_OPTIONS тоже не работает? Если сгенерировать образ для ванильного ядра с lz4, оно загружается?
Гадание на кофейной гуще, но нужно как-то локализовать проблему.
М. б. initrd вообще отключить? У меня компьютер, когда не может подключить образ в lz4,грузится на 1,5 секунды быстрее. Образ держу только для того, чтобы когда начнёт что-то отваливаться, я мог через шелл разобраться что к чему, как-то исправить проблему. Хуков только 2: base & systemd.
Можно ли busybox включить в ядро?
Как вариант, думаю вкомпилить initrd в ядро без сжатия (всё равно ядро само сжимается).
Можно, особенно если ты это ядро не будешь на разные машины ставить.
У меня компьютер, когда не может подключить образ в lz4,грузится на 1,5 секунды быстрее.
Чем с работающим нормальным initramfs? Может быть, потому что не запускается fsck?
Образ держу только для того, чтобы…
Я для этого держу дефолтное ядро с дефолтным initramfs.
Хуков только 2: base & systemd.
У меня с такими хуками странная проблема вылезла после предпоследнего обновления systemd: после установки пакета или после редактирования файлов, например, в /etc после перезагрузки что-то ломается в systemd-logind и иксы не могут стартануть (по логам ругань была из-за гибридной графики).
Можно ли busybox включить в ядро?
Вроде можно, но, насколько я понял, нужно сперва его сгенерировать, потом распаковать в папку /usr/src/initramfs (как в примере) или куда удобно.
Да, не запускается, потому что оно в образе. Правильно говоришь, без fsck грузить систему плохо, диск надо проверять. Буду добавлять initrd прямо в ядро. А чтоб избежать поломок с обновлением systemd оставлю образ только с хуком base.
Я также держу дефолтное, но с ним всё равно не найти причину поломки кастомного – инструменты отладки нужны в нём самом.
Я не могу пользоваться более ранними ядрами, потому что intel наконец-то закрыли многолетний баг в модуле i915 (неоткачиваемые фризы) только в ядре 5.3. Теперь ноут работает как у людей :)
Слишком много времени уже потратил на возможность сжимать initrd в lz4. Вкомпиленный образ не подключается. При этом с остальными алгоритмами сжатия всё норм.
Думаю, что в моём случае с lz4 не моя ошибка. Подожду выход следующей мажорной версии ядра и попробую скомпилять его.
Да. Насколько я понял, если использовать хук systemd и не добавлять модуль radeon, то в некоторых случаях logind захватывает drm master и иксы не могут стартануть.
У меня эта проблема вылезла ещё в начале осени и на иксах, и на вяленом (сперва подумал, что какие-то баги из-за гибридной графики). Так как разбираться было лень, я собрал образ на хуке base. Месяц назад я решил всё-таки разобраться и нашёл несколько упоминаний этой проблемы (и некоторых схожих): у всех (у меня тоже) она решалась с помощью раннего запуска KMS.
Есть ещё и такое наблюдение – в моём случае добавить MODULES=(i915) понадобилось только для мобильного i3-4010U. В случае десктопного i3-4160 пока иксы загружаются и без этого.