Наверное, я просто неправильно понял, зачем нужен параметр CONFIG_INITRAMFS_SOURCE.
Поясните, где у меня всё не так.
Собираю ядро с make defconfig (CONFIG_BLK_DEV_INITRD включён), при загрузке передаю параметром путь к моей rootfs. Работает.
Собираю ядро с make defconfig (CONFIG_BLK_DEV_INITRD включён), прописываю название моего файла, устанавливаю компрессию gzip, гружусь, не передаю параметров ядру. Не работает.
Собираю ядро с make defconfig (CONFIG_BLK_DEV_INITRD включён), прописываю название моего файла, устанавливаю компрессию gzip, гружусь, но всё равно передаю ядру параметр initrd. Аналогично предыдущему.
Свою rootfs я получил, как описано в доках ядра. Следующим образом:
gcc -static myinit.c -o init
echo init | cpio -o -H newc | gzip > initramfs.cpio.gz
#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
printf("Hello world!\n");
sleep(999999999);
}