内容纲要
qemu简介
经过一段时间的学习在我看来:qemu是一款虚拟机,它能将X86 指令虚拟成arm 指令,进而在X86 计算机中执行arm 系列的程序。这对于不同的软件测试非常友好。为什么要学使用qemu 呢?
在工作中,之前由于没有买开发板,导致韩方发来的Linux_SDK 无法进行测试。说来惭愧,对Linux 操作系统不熟练,导致我甚至想在x86 VMware 虚拟机中运行软件 当时没接触到qemu,Linux_SDK 测试工作就搁置了一周。后来领导要求买一块开发板进行测试,于是就入手了香蕉派M3。
之后的过程中,发现全志A83T 的CPU 性能太弱了,韩方发来的Linux_SDK 没有图形化界面。给客户演示还是需要图形界面的软件,采用qemu 目的是验证arm64(aarch64) 架构的更高性能的CPU 能否运行Linux_SDK。
方案选择
- 使用宿主机直接用真实硬盘分区挂载在一个文件夹下后安装系统(直接使用iso文件安装),然后使用qemu 启动系统。参考教程
2.通过VMware下ubuntu 虚拟机安装qemu,再在qemu 虚拟机下运行arm版本linux。
2.1 通过iso镜像直接安装(需要EFI引导)。参考教程
2.2 编译内核 & 最小根文件系统运行。[参考教程1] [参考教程2] [参考教程3(终极版arm32)] [参考教程4(终极版amr64)]
最终选择了方案2.1和2.2
从已完成了的角度,方案2下3种策略都使用上。1.直接EFI 引导iso 镜像;2.编译32位版本linux 内核; 3.编译64 位版本内核
特别说明:
1.编译arm32 位版本内核根文件系统,使用ext3 方式加载根文件系统。
2.编译arm64 位版本内核根文件系统用的则是cpio 打包的方式,将根文件系统在编译的时候就导入到Linux 内核中(启动的时候不用再挂载内核)。
3.EFI 引导的镜像目前没找到办法联网、甚至向里面传入文件之类。
方案2.1 通过iso 镜像安装
参考地址
//TODO:操作复现。敬请期待
方案2.2 通过编译linux内核(arm32),使用busybox 构建根文件系统
//TODO:大工程项目,后期复现
2
方案2.3 通过编译linux内核(arm64),使用buildroot 构建根文件系统
//在方案2.2上进行改进。