Я пытаюсь заставить initramfs работать на встроенном устройстве linux, используя buildroot и uboot.Я следовал инструкциям по настройке initramfs в buildroot и конфигурации ядра.Однако, насколько я могу судить, он не встроен в ядро, хотя CPIO или корневая FS включены в вывод.
У меня два вопроса.Во-первых, правильно ли мое понимание процесса загрузки с точки зрения высокого уровня?
- Запускается загрузчик этапа 1 (специфичный для Atmel / ARM) и отключается
- Загрузчик этапа 2 (uboot) инициализирует несколько вещей, загружает ядро в память и запускает его
- Ядро помещает архив CPIO в память, создает этот корень и запускает init в этой среде
Это означает, что образ, который я вставляю в чип, представляет собой IMG с загрузочным и системным разделом,системный раздел ext4 и содержит архив CPIO внутри.Я не уверен, как сделать пункт 3 на самом деле отсюда.
Во-вторых, с точки зрения фактических конфигураций, настройка меню Buildroot имеет ряд опций для файловых систем
- ext2 / 3/4 корневая файловая система (по умолчанию включена)
- cpio корневая файловая система (для использования в качестве начальной файловой системы RAM)
- исходная файловая система RAM, связанная с ядром Linux
Затем в конфигурации ядра
- Общие -> Поддержка исходной файловой системы ОЗУ и диска ОЗУ (initramfs / initrd)
- Общие -> Исходные файлы Initramfs (для сгенерированного файла cpio)
Что генерирует buildroot здесь?С моей стороны, похоже, я получаю дубликаты изображений (CPIO и ext4), а CPIO игнорируется.