Я собираюсь настроить среду сборки, чтобы создать собственную встроенную систему linux для платы AT91SAM9X25. Я использую buildroot для этого. Команда make создает все цели, сначала создаёт инструментальную цепочку, затем пакеты, а затем rootfs и изображения rootfs (tar, cpio ...). Чтобы восстановить rootfs, я обычно использую make clean, а затем make. Команда make clean удаляет все и включает в себя инструментальную цепочку.как перестроить rootfs в buildroot
Итак, первый мой вопрос: есть ли способ переделать rootfs без создания инструментальной цепочки? Это занимает много времени.
Также я создаю ядро linux внутри buildroot. Я включил BR2_LINUX_KERNEL [= y] в buildroot. Линукс настроен на использование начальной файловой системы RAM, поэтому для сборки ядра требуется изображение rootfs (которое должно быть создано buildroot). Когда я запускаю make под root из buildroot, здание выходит из строя с ошибкой. Не удается открыть 'buildroot-2013.05/output/images/rootfs.cpio'. Потому что (если я правильно понимаю) последовательность построения представляет собой toolchain - pakages - rootfs - linux kernel - изображения rootfs. Когда он пытается построить ядро Linux, изображение rootfs.cpio не создается.
Итак, второй вопрос: как построить linux внутри buildroot, если я хочу использовать начальную файловую систему RAM?
Возможно, есть более эффективные альтернативы, чем buildroot?
Заранее спасибо.
Позвольте мне перефразировать мой вопрос о создании ядра linux в buildroot (может быть, я объяснил, что недостаточно ясен). Buildroot делает: 1.Toolchain -> 2.packages -> 3.Linux kernel -> 4.rootfs images. Но на шаге 3 (ядро linux) требуются образы rootfs, поскольку linux настроен как использующий начальную RAM-файловую систему, но мы получили его только на шаге 4. Эта проблема - я вижу сообщение об ошибке на шаге 3: нет rootfs.cpio – Yuri
* «linux настроен как использование начальной файловой системы RAM» * - ** Is Buildroot также настроен для initramfs **? Ошибка на шаге 3 означает, что вы неправильно настроили Buildroot. Ваша озабоченность по поводу того, как Buildroot обрабатывает то, что кажется проблемой курицы и яйца, рассматривается в [описании фиксации для «добавления поддержки для initramfs»] (http://git.uclibc.org/buildroot/commit/?id=f507921d391bb2578261a9e45c003e72302dc67a) , По существу Buildroot выполняет шаг # 3 с * пустым * initramfs-файлом, а затем делает дополнительный шаг # 5 для создания ядра с фактическими initramf. – sawdust
Ваш ответ (т. Е. Удаление файлов .stamp_xxx) был очень полезен для принудительной перестройки rootfs. Тем не менее, я добавил дополнительные вещи для rootfs с наложением. Когда я перехожу к (слегка) другой конфигурации без наложения rootfs, файл из старого наложения НЕ удаляется из структуры под «target /» или из окончательного изображения. Я попытался удалить содержимое «target», но это вызвало ошибку сборки (это не простой вывод сборки). Есть ли способ очистить вещи, которые были удалены из rootfs, не делая полного distclean/rebuild? – Jeremy