qemu搭建arm运行linux内核,centos使用qemu搭建ARM64运行环境

准备工作

(1) linux 内核源码, 从github上获取

git clone https://github.com/torvalds/linux

make kernelversion

(2) 交叉编译工具,从linaro官网(www.linaro.org)上获取

4f0cfe306c8472a63fd2451e1b6e53b0.png

38ab83ba7146ef94b2195bc313cc4e92.png

解压后设置环境变量即可

xz -d gcc-linaro-xxx.tar.xz

tar -xvf gcc-linaro-xxx.tar

export PATH=$PATH:/yourpath

(3) 安装QEMU ,支持arm64需要源码安装https://www.qemu.org/

yum install gtk2-devel

./configure –target-list=aarch64-softmmu

make && make install

安装完成后,有qemu-system-aarch64命令即可

内核代码编译

进入下载好的内核源码目录

export ARCH=arm64

export CROSS_COMPILE=aarch64-linux-gnu-

make defconfig

make menuconfig

make -j4

制作文件系统

(1)下载安装busybox : https://busybox.net/

make menuconfig

settings->build options->build static library(enable)

make

make install

(2) 制作根文件系统

mkdir rootfs

cp busybox/_install/* rootfs/ -rf

cd rootfs/_install

mkdir dev etc mnt

mkdir -p etc/init.d

在_install/etc/init.d/目录下新建一个文件rcS:

mkdir -p /proc

mkdir -p /tmp

mkdir -p /sys

mkdir -p /mnt

/bin/mount -a

mkdir -p /dev/pts

mount -t devpts devpts /dev/pts

echo /sbin/mdev > /proc/sys/kernel/hotplug

mdev -s

在_inistall/etc/ 目录下新建一个fstab文件:

proc /proc proc defaults 0 0

tmpfs /tmp tmpfs defaults 0 0

sysfs /sys sysfs defaults 0 0

tmpfs /dev tmpfs defaults 0 0

debugfs /sys/kernel/debug debugfs defaults 0 0

在_inistall/etc/ 目录下新建一个inittab文件:

::sysinit:/etc/init.d/rcS

::respawn:-/bin/sh

::askfirst:-/bin/sh

::ctrlaltdel:/bin/umount -a -r

cd init.d

在_install/dev目录下新建节点:

mknod console c 5 1

mknod null c 1 3

返回上层目录,压缩

cd ../..

find . | cpio -o -H newc > rootfs.cpio

gzip -c rootfs.cpio > rootfs.cpio.gz

QEMU启动ARM64虚拟机

qemu-system-aarch64 -machine virt -cpu cortex-a57 -machine type=virt -nographic -m 2048 -smp 2 -kernel linux/arch/arm64/boot/Image -initrd rootfs.cpio.gz -append "rdinit=/linuxrc console=ttyAMA0"

启动成功后,查看内核版本

/ # uname -r

4.20.0-rc4-00007-gef78e5e

关闭虚拟机

另起一个超级终端,输入

killall -9 qemu-system-aarch64

参考文章

《奔跑吧linux内核》第六章

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值