|
From: | Minjun Hong |
Subject: | I Failed to execute AARCH64 Linux kernel on the QEMU |
Date: | Wed, 31 Jan 2024 14:20:22 +0900 |
Hello.
I'm trying to execute AARCH64 Linux kernel on the QEMU.
But,there was an error and the error log is:
rom: requested regions overlap (rom bootloader. free=0x00000000422c0a00, addr=0x0000000040000000) qemu-system-aarch64: rom check and register reset failed
host: x86_64 Ubuntu 18.04 linux kernel source version: v5.19 busybox version(for initramfs): 1_36_stable
What I did to achieve my goal is as following:
1. Linux kernel build for AARCH64
- apply defconfig
make ARCH=arm64 defconfig -j$(nproc) CROSS_COMPILE=aarch64-linux-gnu-
make ARCH=arm64 -j$(nproc) CROSS_COMPILE=aarch64-linux-gnu-
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j$(nproc)
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- install
cd _install mkdir -p dev etc/init.d home/root lib mnt proc root sys tmp usr/lib var cp -v /usr/aarch64-linux-gnu/lib/* ./lib/ cat > etc/init.d/rcS << EOF #!/bin/sh mount -t proc none /proc mount -t sysfs none /sys /sbin/mdev -s [ ! -h /etc/mtab ] && ln -s /proc/mounts /etc/mtab [ ! -f /etc/resolv.conf ] && cat /proc/net/pnp > /etc/resolv.conf EOF chmod +x etc/init.d/rcS find . | cpio -o --format=newc > ../initramfs cd .. gzip -vc initramfs > initramfs.gz
sudo apt install qemu-system-arm qemu-efi-aarch64
qemu-system-aarch64 \
-machine virt \
-cpu cortex-a57 \
-smp 4 \
-m 2048 \
-kernel arch/arm64/boot/Image \
-initrd busybox/initramfs.gz \
-append "rdinit=/sbin/init root=/dev/ram rootfstype=ramfs rw nokaslr" \
-nographic
[Prev in Thread] | Current Thread | [Next in Thread] |