手里有一台吃灰已久的pixel4手机。最近在学习一些Linux驱动相关的知识。购买或者临时租用服务器成本过高,所以想在pixel4上搭建虚拟机。由于现在手机性能越来越强,这其实是一个不错的方案。构想,以后的手机会出现WSL这种模式,手机通过APP运行各种服务器、虚拟机。

为什么不直接使用proot-distro来搭建Ubuntu虚拟机?

proot-distro不够底层,执行一些底层命令时受限。如:dmesg。

使用QEMU搭建Ubuntu ARM虚拟机目的是为了能够进行驱动开发,构建静态程序。且,QEMU搭建的虚拟机可以后台运行。

环境

在pixel 4 安装termux,更换termux软件源

pkg install apt
pkg install openssh
pkg install tsu
pkg install root-repo

在termux终端输入sshd,启动ssh。

在windows终端输入转发ssh端口。当然也可以在同一局域网内就不用转发端口。

adb forward tcp:8022 tcp:8022
ssh [email protected] -p 8022

安装QEMU,先搜索qemu,安装通用文件,qemu-common。目标是ubuntu arm64,选择qemu-system-aarch64-headless

pkg search qemu
pkg install qemu-common
pkg install qemu-system-aarch64-headless

下载ubuntu arm64镜像

<https://cloud-images.ubuntu.com/jammy/20241002/jammy-server-cloudimg-arm64.img>

构建QEMU启动环境

创建一个varstore镜像。

varstore.img 将用于虚拟机的NVRAM存储,以保存启动EFI固件时需要的非易失性变量(如BIOS设置等)。