通用虚拟平台virt
板virt为与任何真实硬件不相关的平台;它为虚拟机中使用。
如果你想简单的运行guest比如linux并且不关心减少真实硬件的一些特性和限制,virt为建议的板类型。
它为“versioned”板模型,因此与virt机器类型一样(它存在优化,bugfix和其他QEMU版本的修改),提供一个版本保证与之前的QEMU版本有相同的行为。比如virt-5.0机器类型将从QEMU5.0版本virt机器,且迁移特性在virt-5.0的QEMU 5.0和QEMU 5.1之间工作。迁移特性不能保证不同的QEMU版本能工作。
1 支持的设备
virt板支持:
- PCI/PCIe 设备
- Flash 内存
- 一个PL011 UART
- 一个RTC
- fw_cfg设备允许guest从QEMU获取数据
- 一个PL061 GPIO控制器
- 一个可选的SMMUv3 IOMMU
- 可热插的DIMM
- 可热插的NVDIMM
- 一个MSI控制器(GICv2M或ITS)。与GICv2相关默认为GICv2M。GICv3默认选择ITS(>=virt-2.7)。注意ITS不支持TCG模式
- 32个virtio-mmio传输层设备
- 在aarch64硬件使用KVM加速器运行guest
- 大量RAM内存(最少256GB,若使用高端内存,可以更多)
- 很多CPUs(若支持GICv3和高端内存,可以最多512个)
- 若CPU有trustzone, 仅安全领域设备
支持的guest CPU类型:
- cortex-a7(32位)
- cortex-a15(32位)
- cortex-a53(64位)
- cortex-a57(64位)
- cortex-a72 (64位)
- host(仅KVM时支持)
- max(与host一样仅KVM时支持;最好与TCG模拟)
注意默认位cortex-a15,因此对于aarch64 guest,你必须指明CPU类型。
可以输出图像,但不像X86 PC机器类型,没有默认的显示设备使能:你应该从“-device help”中显示设备选择一个。建议的选项位"virtio-gpu-pci";它为可以与KVM工作的唯一选择。你也需要保证你的guest kernel被配置支持它。
2 机器相关的选项
支持以下与机器相关的选项:
(1)secure
设置on/off来使能或禁用模拟一个guest CPU,该CPU支持ARM安全扩展(TrustZone)。默认为off。
(2)virtualization
设置on/off来使能或禁用模拟一个guest CPU,该CPU支持ARM虚拟化扩展。默认为off。
(3)mte
设置on/off来使能或禁用模拟一个guest CPU,该CPU支持ARM memory tagging扩展。默认为off。
(4)highmem
设置on/off来使能或禁用将设备和RAM放到高32位的地址空间。默认位on。
(4)gic-version
指明GIC的版本。有效的值为:2表示GICv2;3表示GICv3;host表示当使用KVM时使用与host上一样的GIC版本;max使用最好的GIC版本,与host一样需要使用KVM,对于TCG与3一样;
(5)its
设置on/off来使能和禁用ITS转换。在virt-2.7以后的版本默认对于机器类型为on。
(6)iommu
为guest创建IOMMU类型。有效值为:none表示不创建IOMMU,默认选项;smmuv3创建一个SMMUv3。
(7)ras
使用on/off来使能和禁用使用ACPI和guest外部abort异常将host内存错误报告guest。默认为off。
3 Linux guest kernel配置
Linux arm和arm64内核的defconfig应该包含virtio和PCI控制器的设备驱动;但是一些老的内核版本,特别是32位ARM,不需要将所有默认的都使能。若你没有看到期望的PCI设备,需要检查guest配置:
CONFIG_PCI=y
CONFIG_VIRTIO_PCI=y
CONFIG_PCI_HOST_GENERIC=y
若你想使用virtio-gpu-pci图像设备,你需要配置:
CONFIG_DRM=y
CONFIG_DRM_VIRTIO_GPU=y
4 裸设备上编程的硬件配置信息
板virt自动产生一个设备树dtb,该设备树被传递给guest。这提供一些信息,这些信息包括地址,中断线,和其他系统中其他各种设备的配置。Guest代码依赖并硬编码以下地址:
- Flash内存起始于地址0x0000_0000
- RAM起始于0x4000_0000
所有其他设备信息在不同QEMU版本之间会有差异,因此guest必须查看DTB。
QEMU对于virt支持两种类型的guest image启动,guest代码来定位dtb二进制的方法。
- 对于使用LINUX内核启动协议(这意味着任何non-ELF文件被传递给QEMU)的guest,DTB的地址也被传递到寄存器(r2为32位guest,x0表示64位guest)。
-对于以裸设备启动的guest,DTB的RAM的起始地址为(0x40000000).
通用虚拟平台virt相关推荐
- IT运维面试问题总结-基础服务、磁盘管理、虚拟平台和系统管理
简述 LVM 的含义及特点. LVM 的含义及优势?/boot 是否可建立在 LVM 卷上,为什么? 参考答案 1)LVM:用来整合磁盘空间和文件系统的一种逻辑机制,通过将多个物理分区/磁盘从逻辑上组 ...
- VA虚拟平台十大亮点
VA虚拟平台十大亮点 一.自适应多种安装环境.并可以手动调整 二.兼容互联网上主流动态域名自动连接,并有自主的动态域名解析. 三.系统稳定性有效保障和看门狗机制 四.高级参数最大限度保障程序兼容性 五 ...
- 年终福利 | 京东虚拟平台团队问答专场
HI,咖友们: 年终福利又来喽,还记得12月13日举行的"揭秘大数据背后的京东虚拟平台"线下分享活动吗?由于场地原因还有许多报名的小伙伴没能参加.现开通线上问答专场,让你直接连线京 ...
- 微软要打造通用Windows平台,但这将是一场苦战
微软CEO萨特亚·纳德拉(Satya Nadella)制定了一项宏伟但风险也极高的战略,那就是通用Windows平台(UWP)战略.一旦这项战略获得成功,微软的开发者就能以一种全新的方式在大量设备上开 ...
- 计算机网络实验(华为eNSP模拟器)——第二章 VRP通用路由平台介绍
目录 前言 一.视图 (一)用户视图 (二)系统视图 (三)接口视图 二.返回视图 (一)返回上一级视图 (二)返回用户视图 三.删除和保存 (一)保存 (二)删除 四.查看 (一)查看设备信息 (二 ...
- 通用业务平台设计(二):扩展多国家业务
前言 在上家公司,随着业务的不断发展,逐渐从单个国家发展到支持多个国家,同时技术上设计了通用业务平台来支持多国家业务发展:这篇文章主要为大家分享在支持多国家业务的过程中一些经验总结以及躺过的坑. 支持 ...
- 通用业务平台设计(一):概览
前言 在上家公司,随着业务的不断发展,逐渐从单个国家发展到支持多个国家,自己主导设计了通用平台业务,将短信发送,推送,三方登录,预警做成平台化,极大降低了开发维护成本,支撑了业务快速发展 通用业务平台 ...
- Zabbix 系统监控(三)VMware 虚拟平台监控、邮件告警、企业微信告警配置
Vmware 虚拟平台监控.邮件告警.企业微信告警配置 8 Vmware 虚拟平台监控 阅读 zabbix 官方文档,官方提供了 Vmware 虚拟机监控模板,并对模板进行了解释说明,但未对相应名词做 ...
- 通用管理平台GBase 8c Platform
GBase 8c Platform通用管理平台是一款功能强大的数据库集群管理平台,以图形可视化的形式,实现集群的系统部署.配置管理.运维监控.告警管理.备份恢复.扩容缩容.灰度发布等特性.
- Hadoop大数据通用处理平台
1.简介 Hadoop是一款开源的大数据通用处理平台,其提供了分布式存储和分布式离线计算,适合大规模数据.流式数据(写一次,读多次),不适合低延时的访问.大量的小文件以及频繁修改的文件. *Hadoo ...
最新文章
- mate40能更新鸿蒙,Mate40领衔更新!鸿蒙系统首批升级机型名单:这些机型可坐等推送...
- svn 服务器在生产环境中的搭建
- OpenCV在Linux上的安装及初试
- win10计算机怎么拨号上网,win10拨号连接怎么创建 win10宽带拨号连接如何设置
- 【风速预测】基于matlab EMD+模拟退火算法优化DBN风速预测【含Matlab源码 JQ003期】
- windows server 2019添加开机启动项
- 3.5寸TFT液晶屏验证板设计过程——硬件篇
- 8.1 - mysql 基本知识
- 【Unity】制作简单的启动、菜单和游戏界面
- HDU - 胜利大逃亡(搜索)
- 2014南京甲骨文实习生面试
- Android:设置背景色以及theme(主题)设置(一)
- ETL KETTLE 读取csv文件写入数据库
- 利用python如何抓取微博评论?
- 美团机器学习实践 密码_机器学习遇到密码学的地方
- 财务欺诈研究中常用的违规类型
- 技术人如何打造个人品牌,提高身价?
- python end用法_python end用法
- 图像特征(三)——纹理特征(GLCM、LBP)
- 【新版】系统架构设计师 - 系统配置与性能评价
热门文章
- ios 图表_在ios应用中实现蜘蛛网图表
- 雷顿学院大数据一期课程免费下载
- 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
- python识别图片轮廓_教你用Python+opencv来识别物体的轮廓并标识显示
- OpenSSL库下载地址
- 【论文学习】Multi-modal Knowledge Graphs for Recommender Systems
- 介绍计算机方队,方阵
- 浅谈几个倾斜摄影三维模型的修补软件
- JQuery 动态设置setInterval定时器时间间隔
- .NET发送邮箱(验证码)