Ubuntu24.04+Qemu+ARMV8+Linux6.12保姆级开发环境搭建教程

QEMU是一种拥有系统虚拟能力的模拟器,有自己的虚拟CPU、芯片组、虚拟内存以及各种虚拟外部设备,能够为虚拟机中运行的操作系统和应用软件呈现出与物理计算机完全一致的硬件视图。QEMU能够模拟x86、ARM、MIPS、PPC等多个平台。

目前网上很多关于QEMU的环境教程都比较旧,很多都还在使用32位CPU的qemu开发板,然后现在普遍的开发板都已经是 ARMV8 架构,使用64位CPU了,这会直接导致编译工具链无法通用,比较麻烦。

本教程使用全套目前最新版本:Ubuntu24.04 + ARM v8 QEMU + Linux 6.12,可供后续较长时间的使用。 本SDK还搭配了环境搭建脚本以及启动脚本,支持一键启动,使用方便。

1. VMvare安装

由于大多数人本地PC系统为Windows系统,所以我们需要准备 Linux 开发环境

我们使用 VMware Player 17 作为虚拟机平台,VM Player是“一款供个人免费使用的桌面虚拟化应用”。相比于完整版VM Workstation,最重要的优点自然就是官方认可的个人免费;当然缺点就是功能少。但是作为学习使用,VM Player的功能是足够的。

1.1 官网下载(不推荐)

可以选择官方下载的方式(比较麻烦):由于VMware已经被博通收购了,现在原先的官网已经下载不了,只能进博通官网下载:

https://support.broadcom.com/

需要注册账号并且网络不好的时候容易下载失败,具体解决方法可以参考下面这个帖子:

https://blog.youkuaiyun.com/axing194/article/details/139172933

1.2 百度云下载

推荐直接使用安装包安装:我已经将虚拟机安装包上传到百度云上,下载后直接解压安装即可。

链接:

https://pan.baidu.com/s/1pDSFDEcpl5DNizzqJTPt_Q?pwd=2p5m 提取码: 2p5m**

下载好安装包后按照提示安装即可。

2. Ubuntu24.04

Ubuntu系统是一种基于Linux的开源操作系统,我们本系列采用最新的Ubuntu 24.04版本作为开发环境。

2.1 镜像下载

这里推荐大家去 Ubuntu 中文官网下载镜像,下载速度快。

并且由于Ubuntu中使用apt安装工具时由于网络原因下载慢,所以需要手动将apt下载源替换成清华源或阿里源等。

但是中文版 Ubuntu 镜像中apt下载的源已经替换成了清华源,不需要再手动更换下载源了,比较方便。

下载地址:https://cn.ubuntu.com/download/desktop

2.2 Ubuntu安装

1. 创建新虚拟机

打开VMware Player 17,点击 “创建新虚拟机”,选择下载好的镜像

2. 在硬件配置方面需要注意的几点

  1. 硬盘容量建议大一点,因为系统本身以及后期内核文件,镜像,工具等还是十分占空间的,建议保留100GB以上

  2. 内存和CPU数量主要会影响编译速度,根据自己硬件适当配置

按照提示完成安装

安装过程没有特别需要注意的,使用默认配置点击“next”即可。

3. corechip_qemu_sdk 快速开始

corechip_qemu_sdk是我们提供的软件开发套件,目的是让内核开发者或初学者可以减少在环境搭建上花费的精力,可以快速使用最新版QEMU硬件和内核版本。

本套件包含了Linux6.12 源码,Buildroot-2025.02源码,一键配置环境,QEMU启动脚本,并配置编译好的文件系统和内核,可一键启动QEMU

3.1 获取SDK

提供两种获取SDK的方法

gitee获取

git clone https://gitee.com/core-chip_0/corechip_qemu_sdk.git

百度云下载:

链接: https://pan.baidu.com/s/1BG2MzmMS5WVjKwbcag5-uw?pwd=75rb 提取码: 75rb --来自百度网盘超级会员v7的分享

3.2 SDK介绍

下载完成后可以看到主目录中,有以下文件和目录:

1. envsetup.sh:设置环境变量,检查并下载必要的工具
2. source:内核源码压缩包,编译工具链源码压缩包,buildroot源码压缩包,
3. out:产出物文件夹,包括内核镜像,文件系统,设备树等
4. start.sh:qemu启动脚本
5. share:qemu与PC的共享目录,用来传文件
6. arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-linux-gnu:编译工具链
7. buildroot-2025.02:buildroot源码
8. linux-6.12.21:linux内核源码

3.3 快速使用

out目录下已经有编译好的Kernel镜像 + dtb + rootfs,可一键快速启动QEMU

source envsetup.sh
./start.sh

4. 源码编译

SDK中提供了默认的内核镜像、根文件系统、设备树。根据自身需求参考下面的教程进行定制修改编译,不需要修改的可以直接使用SDK提供的即可。

4.1 内核源码编译

SDK中内核使用6.12版本,out目录中的Image是直接源码编译生成的,并没有对内核进行裁剪,有需要的同学可以根据自身需求进行配置。

cd corechip_qemu_sdk
source envsetup.sh 
cd linux-6.12.28
make menuconfig
make -j$(nproc)

生成的镜像在linux-6.12.28/arch/arm64/boot/Image

4.2 根文件系统编译

本SDK使用buildroot-2025.02,来编译rootfs。关于 buildroot 在这里不做过多介绍,感兴趣的同学可以去搜索相关资料。 使用Buildroot编译rootfs的好处是相对于busybox扩展性强,可以配置各种工具,方便后续内核开发使用。缺点就是编译时间较久,主要也是编译过程中需要下载各种工具包,国内访问国外的下载源会不稳定。本sdk也提供了编译所需的软件包可省去下载过程。 SDK中已经添加了corechip_qemu_sdk_defconfig可直接使用该配置编译buildroot,也可基于该配置根据个人需求修改。

编译之前可以先将百度网盘中dl.tar.gz下载解压放到buildroot根文件目录下

编译buildroot的过程中,会先去dl目录搜索,如果有则不会再去下载,由于国内访问国外网络不稳定,所以会出现下载慢或下载失败导致编译失败的情况,使用这个文件包则可大大加快编译速度。

cd corechip_qemu_sdk/source
tar -zxvf dl.tar.gz
mv dl corechip_qemu_sdk/buildroot-2025.02
cd corechip_qemu_sdk/buildroot-2025.02
make corechip_qemu_sdk_defconfig
make -j$(nproc)

生成的文件在buildroot-2025.02/output/rootfs.cpio

4.3 设备树编译

QEMU提供了对内置开发板的生成dtb的工具dumpdtb,sdk提供了脚本可生成对应的dtb。

./dump_dts.sh

会生成cc_qemu_sdk.dts,可以根据个人需求增加设备树节点,然后再重新编译dtb。

dtc -I dts -O dtb -o cc_qemu_sdk.dtb cc_qemu_sdk.dts

将生成的dtb移动至out目录下,在启动start.sh脚本即可。(如果dtb改名,start脚本也要做对应修改)

5. 总结

本文主要介绍如何搭建最新的QEMU开发环境,帮助内核开发者以及学习者快速上手,减少在搭建环境上花费精力。

### 如何在Ubuntu 24.04上安装QEMU #### 安装必要的软件包 为了确保QEMU能够正常工作,在Ubuntu 24.04上需要先安装一些依赖项。这些工具和服务对于创建和管理虚拟机至关重要。 ```bash sudo apt update && sudo apt upgrade -y ``` 接着,执行如下命令来安装QEMU及其相关组件: ```bash sudo apt install qemu libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager -y ``` 这一步骤会自动处理KVM模块的加载以及配置网络桥接功能[^2]。 #### 验证Libvirtd服务状态 安装完成后,验证`libvirtd`守护进程是否正在运行非常重要。该服务负责协调QEMU/KVM实例之间的通信并提供API接口给其他应用程序调用。 ```bash sudo systemctl is-active libvirtd ``` 如果返回的结果是`active`,则表示服务已经成功启动;如果是`inactive`或其他任何非活动的状态,则可能存在问题需进一步排查。 #### 启动与启用Libvirtd服务 即使当前的服务处于激活状态,也建议将其设置为开机自启以防止重启计算机后丢失此服务。 ```bash sudo systemctl enable --now libvirtd ``` 上述指令不仅设置了随系统引导而开启`libvirtd`,同时也立即触发了一次性的即时启动操作。 #### 使用Virt-Manager图形界面管理器 虽然可以通过命令行方式管理和控制虚拟机,但对于新手来说,使用GUI可能会更加直观易懂。通过之前提到的一系列APT命令,实际上已包含了`virt-manager`这个图形化前端应用的支持文件。只需简单输入以下命令即可打开它: ```bash virt-manager & ``` 这样就可以利用其友好的用户交互界面对新建立起来的QEMU环境进行探索了。 #### 获取GLIB库支持 考虑到某些情况下构建特定版本的QEMU时需要用到额外的开发资源,比如GLib这类基础C函数库。可以按照官方文档指引获取最新版GLib源码或者直接借助包管理系统快速完成部署。 ```bash sudo apt-get install libglib2.0-dev ``` 这条语句将会下载并安装适用于大多数场景下的稳定发行版GLib头文件及相关静态链接库文件[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值