Предыстория:
Я собрал для друга ядро под его железо, при этом у меня получилось два пакета — с образом ядра и с заголовками. Но при этом по загадочной причине у меня стабильно по «sudo make-kpkg --initrd kernel_image kernel_headers» не генерится initrd, я его потом собираю отдельно, когда делаю это для себя.
Теперь вопрос:
Ядро собрано gcc-4.5.1, при этом у друга 4.3, а то и старше. При этом возможности добраться до его компьютера физически нет, интернета там тоже нет, обучать друга это всё делать проблематично. Отсюда вопросы:
1) Используется ли gcc вообще при сборке initrd?
2) Если используется, то важно ли то, что ядро собрано сильно более новой версией?
3) Как правильно сделать initrd на моей машине заранее, если ответы на предыдущие вопросы «да»?
2) Если используется, то важно ли то, что ядро собрано сильно более новой версией?
Нет.
3) Как правильно сделать initrd на моей машине заранее, если ответы на предыдущие вопросы «да»?
Так же как обычно. initrd по сути дела маленький rootfs для linux который существует для подгрузки модулей ядра и инициализации LVM или других менеджеров логических томов. Как только он завершает это делать он передает управление основной системе на rootfs.
Насколько я понимаю, принято собирать initrd (точнее, initramfs) уже из установленных пакетов. По-крайней мере так во всех дистрибьютивах ветки debian. Там даже для лентяев есть готовый скрипт — update-initramfs -k версия -c.