Я пытаюсь подражать малине Pi с помощью Raspian OS с помощью QEMU. Я пробовал несколько подходов, описанных в Интернете, но без каких-либо успехов.
Я понял, что мне нужно исправить ядро Linux, устанавливая нужную ОС. В моем случае я выбрал Rasbian Lite с ядром 4.4:
wget https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2016-05-31/2016-05-27-raspbian-jessie-lite.zip
unzip 2016-05-27-raspbian-jessie-lite.zip
rm 2016-05-27-raspbian-jessie-lite.zip
Затем я загружаю ядро из https://www.kernel.org/:
wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.16.tar.gz
tar -xzf linux-4.4.16.tar.gz
rm linux-4.4.16.tar.gz
Теперь перекрестная компиляция ядра:
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
cd linux-4.4.16
make vexpress_defconfig
make all
cd ..
Теперь я могу скопировать загрузочный образ, который представляет собой сжатое изображение ядра, которое автоматически извлекается в ОЗУ, в мое рабочее пространство:
cp linux-4.4.16/arch/arm/boot/zImage zImage
и запустите QEMU
qemu-system-arm -kernel zImage -M vexpress-a9 -m 1024 -cpu cortex-a9 -no-reboot -serial stdio -hda 016-05-27-raspbian-jessie-lite.img -append "root=/dev/sda2 rootfstype=ext4"
Но я вижу только черное заполненное окно QEMU.: (
Я думаю, что проблема заключается в том, чтобы получить правильное Ядро. Копирование некоторых ячеек из Интернета никогда не приводило к успеху, потому что они не подходят для ОС.
Как я могу построить/исправить ядро, устанавливающее ОС (без загрузки существующего) и как правильно запустить QEMU?
Спасибо заранее Alex
Второй подход
Загружаю kernel-qemu
здесь https://www.dropbox.com/s/g8u93xblz1v1ly0/kernel-qemu?dl=0 и запускаем с ним QEMU:
qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2" -hda 2016-05-27-raspbian-jessie-lite.img
Это приносит мне следующий результат: И это имеет смысл для меня, потому что ядро 3.10.25 и старше, чем Raspbian Jessie с ядром 4.4.16.
С qemu-ядром из https://github.com/dhruvvyas90/qemu-rpi-kernel/blob/master/kernel-qemu-4.4.12-jessie
qemu-system-arm -kernel kernel-qemu-4.4.12-jessie -cpu arm1176 -m 256 -M versatilepb -serial stdio -append "root=/dev/sda2 rootfstype=ext4 rw" -hda 2016-05-27-raspbian-jessie-lite.img
У меня получился такой же результат:
Новая попытка с новым ядром-qemu 4.4.16:
-
Скопируйте build-kernel-qemu из https://github.com/dhruvvyas90/qemu-rpi-kernel/tree/master/tools и добавьте следующую строку для проверки версии для Kernel 4.4.16
git checkout b05965f284db3e086022f4e318e46cb5bffb1376
-
Запустите
build-kernel-qemu
для сборки ядраsh build-kernel-qemu
-
Запустите QEMU
qemu-system-arm -kernel kernel-qemu -m 256 -M versatilepb -serial stdio -append "root=/dev/sda2 rootfstype=ext4 rw" -hda 2016-05-27-raspbian-jessie-lite.img