5分钟搞定Qemu+ARM虚拟机:Ubuntu下从安装到运行Hello World
还在为手头没有ARM开发板而发愁吗?或者,你只是想快速验证一个ARM程序能否在目标架构上跑起来,却不想经历漫长的环境搭建和配置?如果你是一名嵌入式开发者、IoT工程师,或者只是对跨平台开发感兴趣的技术爱好者,那么这篇文章就是为你准备的。我们将彻底抛弃那些冗长的理论铺垫和复杂的配置清单,直击核心:在Ubuntu系统上,用最短的时间、最少的命令,从零启动一个ARM虚拟机,并成功运行你的第一个“Hello World”程序。整个过程,我们力求控制在五分钟的阅读与实践时间内,让你获得一个立即可用的ARM沙盒环境。
1. 极速部署:Qemu与工具链的一键安装
我们的目标是“开箱即用”,因此一切从最简化的安装开始。在基于Debian/Ubuntu的发行版上,这几乎是最无痛的步骤。
打开你的终端,我们只需要两条命令。第一条是更新软件源列表,确保我们获取到最新的软件包信息。虽然对于快速验证来说,如果你的系统最近更新过,这一步理论上可以跳过,但为了确保兼容性和避免潜在的依赖问题,我还是建议你执行它。
sudo apt update
接下来,就是核心的安装命令。我们将一次性安装两个必不可少的组件:qemu-system-arm 和 交叉编译工具链。
sudo apt install qemu-system-arm gcc-arm-linux-gnueabihf -y
qemu-system-arm:这是Qemu的“系统模式”包。它允许我们模拟一个完整的ARM计算机系统,包括CPU、内存、存储和外围设备,而不是仅仅运行单个程序。gcc-arm-linux-gnueabihf:这是针对ARM硬浮点(hard-float)架构的GCC交叉编译器。有了它,我们就能在x86_64的主机上,编译出能在ARM架构上运行的可执行文件。gnueabihf中的hf就代表硬件浮点支持,这是现代ARM Linux发行版的标配。
注意:如果你的Ubuntu版本非常新(例如22.04或更高),或者安装过程中提示找不到某些包,可以尝试将
gcc-arm-linux-gnueabihf替换为gcc-arm-linux-gnueabi。两者的主要区别在于浮点运算的实现方式,但对于我们运行一个简单的Hello World程序而言,两者通常都兼容。我们的后续步骤会使用静态链接来规避潜在的库依赖问题。
安装完成后,你可以快速验证一下工具是否就绪:
qemu-system-arm --version
arm-linux-gnueabihf-gcc --version
如果这两条命令都能输出版本信息,那么恭喜你,最基础的环境已经准备就绪。整个过程通常不会超过一分钟。
2. 选择与启动:最小化ARM系统镜像
现在,我们面临一个选择:用什么来填充我们刚刚搭建好的“虚拟ARM机器”?对于“5分钟验证”这个目标,我们需要一个体积小、启动快、配置简单的系统镜像。这里,轻量级嵌入式Linux发行版是我们的首选。
在众多选择中,OpenWrt的预构建镜像脱颖而出。它专为路由器等嵌入式设备设计,镜像文件小,内核精简,并且提供了我们需要的完整Linux用户空间。我们将使用一个专为Qemu虚拟化环境构建的ARMv7镜像。
第一步:下载镜像


430

被折叠的 条评论
为什么被折叠?



