QEMU模擬ARM64運行linux


安裝qemu

$ sudo dnf install -y qemu

下載busybox

https://busybox.net/downloads/
下載busybox-1.32.1.tar.bz2

編譯busybox

  • 解壓縮busybox-1.32.1.tar.bz2
$ mkdir ~/qemu-image
$ cp busybox-1.32.1.tar.bz2 ~/qemu-image
$ cd ~/qemu-image
$ tar xjvf busybox-1.32.1.tar.bz2
$ cd busybox-1.32.1
$ make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- defconfig
$ make menuconfig //設置CONFIG_STATIC=y
$ make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- install

制作文件系統

$ cd ~/qemu-image/
$ mkdir rootfs
cp -rf busybox-1.32.1/_install/* rootfs/
cd rootfs
mkdir dev etc proc
cd etc
vim inittab
添加文件inittab,內容為:
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a -r

mkdir init.d
cd init.d
vim rcS
創建文件rcS,內容為:
#!/bin/sh
mount -t proc proc /proc

cd ../..
find . | cpio -o -H newc > rootfs.img

編譯內核

$ cp linux-5.4.tar ~/qemu-image
$ cd ~/qemu-image
$ tar xvf linux-5.4.tar
$ cd linux-5.4
$ make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- defconfig
$ make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- Image -j8

運行qemu

qemu-system-aarch64 -machine virt -cpu cortex-a53 -machine type=virt -nographic -m 2048 -smp 2 -kernel linux-5.4/arch/arm64/boot/Image -initrd ./rootfs/rootfs.img -append "root=/dev/ram0 rootfstype=ramfs rdinit=/linuxrc console=ttyAMA0"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM