| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 通用虚拟平台virt -> 正文阅读 |
|
[系统运维]通用虚拟平台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配置:
? ? ? ? 若你想使用virtio-gpu-pci图像设备,你需要配置:
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). |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 2:57:54- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |