qemu搭建arm运行linux内核,centos使用qemu搭建ARM64运行环境
準備工作
(1) linux 內核源碼, 從github上獲取
git clone https://github.com/torvalds/linux
make kernelversion
(2) 交叉編譯工具,從linaro官網(www.linaro.org)上獲取
解壓后設置環境變量即可
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內核》第六章
總結
以上是生活随笔為你收集整理的qemu搭建arm运行linux内核,centos使用qemu搭建ARM64运行环境的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用的python测试脚本_详解Pyth
- 下一篇: 更新elementui图标不显示_ele