Я пытаюсь скомпилировать и загрузить ядро Linux 2.6 для ARM с помощью QEMU. Я в основном следовал тем же инструкциям, которые содержатся, по-видимому, в каждом учебном пособии по этой теме.
В частности:
Загрузите и скомпилируйте ядро
$ make ARCH = arm CROSS_COMPILE = arm-linux-gnueabi- versatile_defconfig
$ # Отключены загружаемые модули и включены initramfs
$ make ARCH = arm CROSS_COMPILE = arm-linux-gnueabi- все
Скомпилировать Busybox
$ make ARCH = arm CROSS_COMPILE = arm-linux-gnueabi- arm
$ make ARCH = arm CROSS_COMPILE = arm-linux-gnueabi- установить
Создать cpio-архив из каталога Busybox _install
$ cd $ BUSYBOX / _install
$ найти. | cpio -o -Hnewc | gzip> ../initramfs.gz
Загрузка с использованием qemu-system-arm
$ qemu-system-arm -M versatilepb -m 200M -kernel $ KERNEL / arch / arm / boot / zImage -initrd $ BUSYBOX / initramfs.gz -append "root = / dev / ram0 "
Результат следующий:
Похоже, ядро не распознает файловую систему, но я не знаю, как это исправить. Это в основном точные шаги, которым следует каждое отдельное руководство. В исходном коде ядра нет такой вещи, как "cpiofs".