UEFI 之 redfish

概要

Redfish是一种基于HTTPs服务的管理标准,利用RESTful接口实现设备管理。每个HTTPs操作都以UTF-8编码的JSON格式(JSON是一种key-value对的数据格式)提交或返回一个资源或结果,就像Web应用程序向浏览器返回HTML一样。该技术具有降低开发复杂性,易于实施、易于使用而且提供了可扩展性优势,为设计灵活性预留了空间。目前我们利用Redfish管理接口可以实现包括用户管理、获取服务器信息、管理模块信息等常用HDM和BIOS配置。RedFish标准由DMTF组织的SPMF论坛维护Redfish 是一种超媒体 APIRedfish=REST API+软件定义的服务器

在标准订立之初,就设定了以下目标:1.安全2.高可扩展管理(Scalable)3.人类可读数据界面(Human readable data)4.基于现有硬件可实现

支持IPMI的BMC上,不需要(或者很小)硬件改动,就可以支持RedFish,也就是硬件兼容。安全性依赖TLS-Secured HTTP,也就是HTTPS来保证。高可扩展性通过定义所有的API为RESTful形式的API来完成。REST(REpresent State Transfer,REST),这个概念从Web API而来,相对于传统的SOAP API,RESTful的API定义很简单(如:POST,GET,PUT或DELETE),将对象的状态State,用JSON或XML格式在服务器和Client之间传递,这也是它的名字的由来。

在Redfish中,每个URL都代表一个资源,一个服务或一组资源。根据REST原则,使用统一资源标识符(URI)指向资源,客户端与资源进行交互资源的格式根据Redfish架构来定义,客户端再根据Redfish架构来确定正确的语义(Redfish语义被设计的非常直观)。在Redfish中,所有资源都是从服务入口点(根)链接的,这个根始终位于/ redfish / v1。

名词

SSDP简单服务发现协议(SSDP,Simple Service Discovery Protocol)是一种应用层协议,是构成通用即插即用(UPnP)技术的核心协议之一。简单服务发现协议提供了在局部网络里面发现设备的机制。控制点(也就是接受服务的客户端)可以通过使用简单服务发现协议,根据自己的需要查询在自己所在的局部网络里面提供特定服务的设备。设备(也就是提供服务的服务器端)也可以通过使用简单服务发现协议,向自己所在的局部网络里面的控制点宣告它的存在。REST 正在迅速取代 SOAP 成为一种主流协议。整个云生态系统以及 Web API 社区都在采用 REST 协议;REST 语义很容易映射到 HTTP/HTTPS。因此,REST 有著名的安全模型和网络 配置设置,大多数系统管理员很容易理解这一点;

JSON 迅速成为一种现代数据格式。它本质上是人可读的,比 XML 更简洁,得到很多的现代语言支持,是 Web 服务 API 最快速增长的数据格式;OData 定义了一组常见的 RESTful 约定,提供 API 之间的互操作性。

为了实现这些目标,Redfish公司:

  • 通过使用JSON有效负载和数据模型提供RESTful接口。

  • 将协议与数据模型分开,这允许对每个模型进行独立的修订和使用。

  • 指定协议和模式的版本控制规则。

  • 利用它满足架构需求的普遍存在的标准的强度,如JSON、HTTP、

  • 本文档引用的OData、OpenAPI和rfc。

  • 组织数据模型,使其在与标准化项目相同的有效载荷中提供清晰的划分和增值功能。

  • 使有效负载中的数据在上下文中尽可能明显。

  • 保持实现的灵活性。不将接口绑定到任何特定的底层实现或体系结构。

  • 专注于广泛使用的功能。为了避免复杂性,不要添加只有一小部分用户重视的函数。

Redfish和IPMI

IPMI是一个受到广泛支持的行业标准,它指定了一组接口,以提供独立于主机系统的CPU、固件(遗留BIOS或UEFI)和操作系统(OS)的带外管理和监视功能。然而,IPMI现在是一个已有近20年历史的遗留接口,无法满足当今的功能和安全需求。IPMI作为带外管理的较老标准,被限制为一组“最小公分母”命令(例如,电源开关、重启、温度读数和风扇速度)。因此,用户被限制在一组功能的缩减中,因为尝试增加IPMI功能的特定于供应商的扩展在来自不同供应商的平台上并不常见。与此同时,用户越来越多地开发自己的工具来实现紧密集成,常常不得不依赖于带内管理软件。IPMI内的功能缺乏标准化,加上由于重复的OEM扩展而导致越来越多的碎片,导致特定于供应商的解决方案不能满足向外扩展的数据中心用户的需求。

访问实现

Redfish API 是基于 REST 和 JSON 的,所以您只需浏览器即可查看Redfish 实现。建议您的浏览器支持 JSON 格式,以便读取数据。大多数浏览器可通过安装插件来支持 JSON 格式。为了获得 真正的“Redfish”体验,您可以为浏览器下载 RESTful 插件, 如适用于 Chrome 的高级 REST 客户端。这样,您就可以设置头部,并看到 HTTP代码等浏览器通常会隐藏的项目;

解析验证:

  • 访问公共模型。在 redfish.dmtf.com 网站上有一个运行 JSON 的 Web 服务器。您可以将浏览器指向该地址并访问数据。在这里,您了解了解模型和模式。

  • 将数据复制到您的 Web 服务器。您可以访问 Redfish 模型,并将 Mock-up 路径下的所有文件备份至您本地硬盘的 /redfish/v1 路径下,服务器使用该路径提供 HTML 页面。例如,您可以下载 nginx,设置返回 JSON 格式,然后将模型文件加载到 HTML 路径下。

每个 URL 包含:

  • 模式(HTTP://部分)

  • 节点(如 www.dmtf.org 或 IP 地址,如 127.0.0.1)

  • 资源部分/redfish/v1

Redfish Schema 以两种格式定义:

  • OData- Schema 格式,OData Schema 格式(CSDL)定义,是为了便于通用 OData 工具和应用程序解析

  • JSON Schema 格式,JSON Schema 格式定义,是为了应用于其他环境,如 Python 脚本、JavaScript 代码和可视化。

GET执行数据检索。POST用于创建资源或使用动作(详见下文)。DELETE用于删除资源,但目前只有少数资源可被删除。PATCH用于改变一个或多个资源的、属性,PUT用于完全替换资源(只有少数资源可被完全替换,详见下文)。HEAD与GET类似,只是不返回主体数据,访问Redfish实现的程序可使用HEAD来获取URI结构。

BIOS配置管理

支持查询下次启动设备、BIOS配置选项,修改BIOS密码、恢复BIOS默认属性值。

BIOS配置项

Advanced: ACPI设置、休眠设置、终端配置 、串口重定向设置、支持传统USB设备功能、XHCI切换、支持大容量USB存储设备、配置OptionROM的加载策略、PXE设置、启动设备检测计数设置

Platform Configuration:支持SATA控制器设置、USB设置、显示设备选择选择、BIOS串口日志输出设置、SOL功能设置、软件错误注入支持设置

Socket Configuration:支持CPU Core设置、超线程功能设置、Monitor/Mwait功能设置、Intel TXT功能设置、Intel硬件辅助虚拟化技术设置、安全模式扩展功能设置、硬件预取设置、EIST(P状态)设置、TDP等级设置、Intel® Speed Select设置、EIST PSD Function 设置、Turbo模式设置、CPU Core 频率设置、硬件P状态设置、硬件PM中断设置、EPP设置、C状态设置、T状态设置、热监控设置、功率性能调节设置

Server Management: 支持FRB-2定时器、超时策略设置和OS看门狗定时器、超时策略设置

Security:支持安全启动模式配置,提供出厂默认秘钥设置

Boot:支持数字锁定键状态设置、启动模式设置(UEFI和LEGACY)、UEFI Shell使能设置、启动选项设置

EDK2实现原理

UEFI Redfish EDK2解决方案是一个有效和安全的解决方案,最终用户可以利用Redfish REST fulAPI进行远程配置(带外)UEFI平台配置。对于终端用户来说,访问具有Redfish模式中定义的同等属性的UEFI固件的配置很简单。下面是UEFIRedfishEDK2实现的方框图。图下方的 EDK2 Redfish Foundation[1]·是EDK2Redfish基金会,它提供了与Redfish服务通信的基本EDK2驱动程序(Redfish service ([19])。Redfish服务可以在BMC中实现来管理系统,也可以在网络上实现管理多个系统。图中EDK2 Redfish Client[2]指的是EDK2Redfish客户端,这是EDK2Redfish应用程序,用于通过使用Redfish属性来配置平台。EDK2Redfish客户端还可以提供UEFI平台拥有的Redfish属性,消费和更新Redfish属性。EDK2 Redfish Feature DXE Drivers [17]是EDK2Redfish基金会之后的下一个项目。每个EDK2Redfish特性DXE驱动程序都被设计为与Redfish模式中定义的特定Redfish数据模型进行通信(例如,Edk2RedfishBiosDxe驱动程序操作RedfishBIOS数据模型中定义的属性)。

图片

说明

  • EDK2Redfish主机接口DXE驱动程序Redfish Host Interface[6]

抽象的EDK2 DXE驱动程序,根据平台级Redfish主机接口库提供的设备描述符和协议类型数据(在SMBIOS类型42h[7]中定义),通过EFI SMBIOS协议创建SMBIOS类型42记录。在EDK2开源实现(仿真器Pkg)上,SMBIOS类型42的数据从RedfishPlatformConfig.efi[20]在EFIshell下创建的EFI变量中检索。OEM可以为特定于平台的实现提供自己的PlatformHostInterfaceLib[11]实例。

  • EDK2 Redfish Credential DXE Driver[5]

抽象DXE驱动程序,以获得Redfish服务的证书。在edk2模拟器Pkg实现上,凭据使用固定帐户/密码进行硬编码,以便连接到由Redfish配置文件模拟器建立的Redfish服务。OEM可以为特定于平台的实现提供它自己的RedfishPlatformCredentialLib实例。

  • EFI REST EX UEFI驱动程序为Redfish服务EFI REST EX UEFI Driver for Redfish service [4]

这是EFI_REST_EX协议的基于网络的驱动程序实例(UEFI规范2.8,29.7.2节),用于使用HTTP协议与Redfish服务进行通信。OEM可能有自己的EFI REST EX UEFIDriver实例,在这个实例上,到Redfish服务的底层传输可能是专有的。

  • EFIRedfish发现UEFI驱动程序EFI Redfish Discover UEFI Driver[3]

EFIRedfish发现协议实现(UEFI规范2.8,第31.1节)。仅支持通过Redfish主机接口进行的Redfish服务发现。使用SSDP到UDPSSDP over UDP[18]的Redfish服务发现目前还没有实现。该驱动程序用于管理由EDK2Redfish特性驱动程序安装的EDK2Redfish配置处理程序协议。这是基于EDK2Redfish基础编写的EDK2Redfish客户端驱动程序,用于初始化EDK2Redfish特性驱动程序。

  • EFI REST JSON结构DXE驱动程序EFI REST JSON Structure DXE Driver[9]

EFI REST JSON结构DXE实现(UEFI规范2.8,第29.7.3节)。这可以被EDK2Redfish功能DXE驱动程序EDK2 Redfish Feature DXE Drivers [17]使用。EDK2Redfish功能驱动程序以C结构格式操作平台拥有的Redfish属性,并通过该协议将它们转换为JSON格式的有效负载。这个驱动程序利用Redfish模式到C生成器的努力来进行“C结构”<->“JSON”转换。https://github.com/DMTF/Redfish-Schema-C-Struct-Generator

  • EDK2Redfish配置处理程序UEFI驱动程序EDK2 Redfish Config Handler UEFI Driver[15]

这是EDK2Redfish功能驱动程序的集中管理器,它通过调用每个EDK2Redfish特性驱动程序安装的EDK2Redfish配置处理程序协议EDK2 Redfish Config Handler Protocol [16]的init()函数来启动EDK2Redfish特性驱动程序。EDK2Redfish配置处理程序驱动程序是一个UEFI驱动程序,它依赖于EFI REST EX协议,并利用EFIRedfish发现协议来发现管理该系统的Redfish服务。

  • EDK2内容编码库EDK2 Content Coding Library[12]

该库与RedfishLib[13]合并,以编码和解码RedfishJSON的有效负载。这是支持HTTP内容编码/接受编码头的平台库。EumlatorPkg使用这个库的NULL实例,因为Redfish配置文件模拟器既不支持返回到Redfish客户端的有效负载上的HTTP内容编码头,也不支持HTTP接受编码头。配置文件模拟器 https://github.com/DMTF/Redfish-Profile-Simulator

  • 其他开源项目

以下库是RedfishPkg中使用的其他开源项目的包装器RedfishPkg\PrivateLibrary\RedfishLib [13]这是该库的开源项目的包装,用于使用适当的凭据初始化到Redfish服务的连接,并在Redfish属性上执行创建/读取/更新/删除(CRUD)HTTP方法。这个开源项目使用的是DMTF ,这里使用的是拷贝文件,而不是submodule的原因DMTF项目子模块:作为一个C库,在Windows和Linux下执行。它可以与其他编程语言绑定,如java和python。该库使用curl库作为与Redfish的通信服务,这并不容易被抽象出来,并被EFI特定的协议(如EFI_REST_EX_PROTOCOL或有效负载编码/解码库)和EFI数据类型所取代。我们与DMTF社区进行了对话,他们认为edk2是一个固件解决方案,但不是编程语言,因此他们拒绝将edk2作为与剧本鱼的绑定。如上所述,我们决定从DMTF中克隆必要的文件,修改其与edk2合并。

RedfishPkg\Library\JsonLib [14]这是开源项目Jansson的包装器,它是提供操作JSON有效负载的api的库。

  • EDK2模拟器Pkg的平台组件:

RedfishPlatformCredentialLibEDK2仿真器平台实现的获取证书,以建立UEFI固件和Redfish服务之间的通信。UEFI firmware and Redfish service[10]

Redfish平台主机接口库EDK2模拟器平台实现,提供了建立SMBIOS类型42h记录的信息。[11]

代码解析

  • Application/RedfishPlatformConfig/保存网络相关的参数到variable,下面库中会使用;

  • RedfishPlatformHostInterfaceLib/使用网络参数生成结构体提供下面驱动使用;

  • RedfishHostInterfaceDxe/使用上面提供的接口,添加smbios type42,提供后面discover驱动使用

  • RedfishPlatformCredentialLib/平台验证相关的库,是要是两个验证方向,一个是安全启动是否开启,另一个是否退出启动服务,都有对应的会掉接口,提供下面驱动使用;

  • RedfishCredentialDxe/提供认证服务;

EDKII_REDFISH_CREDENTIAL_PROTOCOL mRedfishCredentialProtocol = {  RedfishCredentialGetAuthInfo,  RedfishCredentialStopService};
  • RedfishLib/RedfishGetAuthInfo 这个接口中使用的上面驱动的认证服务;

  • RedfishConfigHandler/

入口中一个关键的接口RegisterProtocolNotify接口。该函数通知 DxeCore 当协议 Protocol 被安装时触发事件 Event, 第三个参数是在调用 CoreLocateHandle 或者CoreLocateProtocol 时传入该 Registration,以得到新安装的指定协议的句柄或接口,与EfiCreateProtocolNotifyEvent接口功能完全相同;

RedfishConfigCommonInit 在退出dxe和退出Bs的时候做stop处理,使用的就就是RedfishCredentialDxe驱动;

  • RedfishDiscoverDxe/注册&gEfiRedfishDiscoverProtocolGuid,协议

RedfishClientPkg

UEFI RedfishClient EDK2解决方案是在EDK2 Redfish基金会的基础上实现的(RedfishPkg),该实现利用EDK2 Redfish基金会提供的EFI协议与Redfish服务通信,以创建、消费和更新由固件管理的Redfish属性。该解决方案通过EFI Redfish发现协议请求EFI REST EX协议的实例,并在稍后使用EFI REST EX协议与Redfish服务进行交互。该实现的基本部分是将EDK2 HII选项映射到由DMTF Redfish工作组发布的标准Redfish模式中已经定义的相应Redfish属性。该设计的优点是,在通过Redfish服务配置平台时,加强了不同oem产生的服务器之间的互操作性。使用Redfish标准模式中定义的属性来配置平台,可以减少Redfish客户端工具的开销,以具有不同的实现,以符合OEM服务器。该解决方案还减少了oem定义的专有BIOS属性,从而导致Redfish BIOS属性注册表中平台配置名称的差异,然而,这些不同的名称指的是相同的平台功能。

UEFI Redfish客户端EDK2实现的范围

  • 平台可配置设置这是UEFI Redfish客户端EDK2实现的第一阶段。将Redfish属性与HII选项关联起来。

  • 固件管理平台Redfish资源的配置目前UEFI Redfish客户端EDK2实现的设计已经可以支持对固件拥有的平台Redfish资源的配置,但是,这需要对edk2 HII的附加支持。因此,固件管理平台Redfish资源的配置将是第二阶段。

下面是UEFIRedfish客户端EDK2实现的方框图。

图片

EFIEDK2Redfish客户端框架图中每个块的功能在以下部分中描述,

EDK2 Redfish Foundation [1]

EDK2RedfishRedfish基金会提供与Redfish服务的通信设施。如发现Redfish服务、访问Redfish服务的凭证、作为Redfish服务传输层的EFI REST EX协议实例等。也就是上面的RedfishPkg

Redfish Profile Simulator [2]

Redfish轮廓模拟器是DMTF GitHub上的一个开源项目https://github.com/DMTF/Redfish-Profile-Simulator,它模拟了Redfish轮廓模拟器维护的Redfish资源上的HTTP请求方法(POST, PATCH, PUT, GET)。EDK2开源软件将此模拟器用于在平台没有Redfish服务时使用调试的用例,或用于快速的Redfish固件特性开发。我们克隆了这个项目在RedfishClientPkg/,并通过edk2来维护它,因为这个项目目前很少使用和更新。edk2更容易向模拟器添加特性或修改模拟器,以适应Redfish服务上的edk2需求,如ETAG和HTTP POST支持。Redfish模拟器的另一个开源项目是Redfish接口模拟器https://github.com/DMTF/Redfish-Interface-Emulator,但是,我们并没有太关注这个项目,因为自从我们启动UEFI Redfish EDK2项目以来,我们一直致力于Redfish Simulator模拟器。

EDK2 Redfish JSON Schema to C Structure Convertor [3]

这是自动生成EDK2 结构体的驱动程序和库,它们提供基于Redfish模式命名的JSON到C结构,反之亦然。C结构是除JSON和CSDL(XML)之外的Redfish属性的另一种表示。更上层的Redfish客户端应用程序可以处理C结构,而不是使用JSON库来操作Redfish的属性。脚本Redfish模式C结构生成器仍然是DMTF GitHub上的一个私有项目https://github.com/DMTF/Redfish-Schema-C-Struct-Generator。下面是脚本自动生成的RedfishJSONC结构转换器库库的参考https://github.com/changab/Redfish-JSON-C-Struct-Converter-Lib。由该脚本生成的转换器按照UEFI规范2.8,第29.7.3节中定义的 EFI REST JSON Structure Protocol

EDK2 Redfish Non-Collection [4] and Collection ***[5]

非收集和收集,特性驱动程序EDK2 Redfish特性驱动程序是一个中间驱动程序,它位于JSON Schema to C Structure convertersEFI Platform Configuration to Redfish Protocol之间。Redfish特性驱动程序获取并设置平台配置,并将其与Redfish JSON模式C结构结合起来,以操作Redfish JSON资源。然后将Redfish服务中的设置应用于平台配置,反之亦然,将平台配置更新到Redfish服务。EDK2 Redfish非收集和收集函数驱动程序都是基于Redfish模式命名而自动脚本生成的。EDK2 Redfish非收集函数驱动程序管理特定Resdifsh资源类型的资源,而EDK2 Redfish收集函数驱动程序管理收集资源中具有相同资源类型的成员(例如计算机系统资源和计算机系统收集资源)。

EDKII Redfish Platform Config Protocol [6]

EDKII Redfish平台配置协议是一个抽象的驱动程序,它从EDK2 EDKII特性驱动程序中抽象平台配置格式和存储。该协议提供了获取和设置平台配置以及与Redfish特性驱动程序的格式和配置存储无关的接口。该平台可以提供自己的EDKII Redfish平台配置驱动程序实例来访问特定于平台的配置格式和存储。在EDK2开源平台上,EDKII Redfish平台配置协议以EDK2 HII定义的格式访问平台配置。

下面是EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL,

struct _EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL {  EDKII_REDFISH_PLATFORM_CONFIG_GET_VALUE             GetValue;  EDKII_REDFISH_PLATFORM_CONFIG_SET_VALUE             SetValue;  EDKII_REDFISH_PLATFORM_CONFIG_GET_CONFIG_LANG       GetConfigureLang;  EDKII_REDFISH_PLATFORM_CONFIG_GET_SUPPORTED_SCHEMA  GetSupportedSchema;};

Other instances of EDKII Redfish Platform Config Protocol [7]

对于那些基于非edk2 hii的平台配置格式,驱动程序实例可以提供自己的实现来获取或设置平台配置。

EDKII Redfish Feature Core DXE Driver [12]

EDKIIRedfish功能核心DXE驱动程序为自动生成的Redfish功能驱动程序提供协议接口,以为其管理的Redfish资源URI注册自己。

struct _EDKII_REDFISH_FEATURE_PROTOCOL {  REDFISH_FEATURE_REGISTER      Register;  REDFISH_FEATURE_UNREGISTER    Unregister;};

Redfish特性核心DXE驱动程序根据URI层次结构记录URI,然后在触发特定事件[11]时根据层次结构启动Redfish特性驱动程序。这确保上层Redfish资源在下层资源之前建立。例如,计算机系统资源必须在内存资源管理之前准备好,因为内存资源是计算机系统资源的一部分。

Start-Up Event to Trigger EDKII Redfish Feature Core [11]

启动事件触发EDKIIRedfish功能核心[11]这是一个EFI事件,用于触发EDKII Redfish功能核心,在数据库中传输uri,并执行由Redfish功能驱动程序注册的回调。事件GUID在PCD下面定义,默认设置为gEfiEventReadyToBootGuId。

PcdEdkIIRedfishFeatureDriverStartupEventGuid

此PCD可以基于平台实现被覆盖到任何事件中。EDKII Redfish功能核心可以更早地触发,例如在BDS之前或在早期DXE阶段,如果平台提供EFI REST EX协议,在BDS阶段之前提供。

EDK2 HII VFR Form [8]

EDK2 HII VFR表格[8]根据UEFI规范2.9节35.6表单浏览器协议,EFI_HII_REST_STYLE_FORMSET_GUID在HII表单上用于表示在此表单中声明的HII选项打算与REST架构风格交互。在edk2开源平台上,REST架构风格指的是Redfish服务。除了在表单范围中定义了EFI_HII_REST_STYLE_FORMSET_GUID外,EFI_IFR_FLAG_REST_STYLE还可以将其分配给HII选项,这些选项表明这些选项打算与REST服务交互。

EDK2 HII UNI file [9]

EDK2HIIUNI文件[9]在UNI文件中使用x-uefi-redfish配置语言来将HII选项与特定的Redfish属性关联起来。如果HII选项的字符串被分配了x-uefi-redfish语言,那么Hii选项将与EDK2 Redfish功能驱动程序交互,

x-uefi-redfish-$(NAMESPACE)where $(NAMESPACE) is the combination of Redfish ResourceTypeName and schema version.

例如,如果HII选项被映射到Processor.v1_0_0中的属性。x-uefi-redfish配置语言声明如下,

x-uefi-redfish-Processor.v1_0_0

x-uefi-redfish配置语言格式:

  • 使用x-uefi-redfish配置语言声明的字符串是Redfish资源中属性的路径

  • 路径的根是在x-uefi-redfish配置语言中表示的Redfish资源类型

  • 该路径相对于Redfish资源类型的根,与Redfish服务无关

例:

属性

Properties:#string STR_BOOT_SOURCE_OVERRIDE_ENABLED_PROMPT #language x_uefi_redfish_ComputerSystem.v1_0_0  "/Boot/BootSourceOverrideEnabled"#string STR_BOOT_SOURCE_OVERRIDE_MODE_PROMPT    #language x_uefi_redfish_ComputerSystem.v1_0_0  "/Boot/BootSourceOverrideMode"#string STR_BOOT_SOURCE_OVERRIDE_TARGET_PROMPT  #language x_uefi_redfish_ComputerSystem.v1_0_0  "/Boot/BootSourceOverrideTarget"

数组对象中的属性

Properties in array object [NUM]:#string STR_BOOT_ORDER_1_PROMPT  #language x_uefi_redfish_ComputerSystem.v1_11_0  "/Boot/BootOrder/[1]/Boot0001"#string STR_BOOT_ORDER_2_PROMPT  #language x_uefi_redfish_ComputerSystem.v1_11_0  "/Boot/BootOrder/[2]/Boot0002"#string STR_BOOT_ORDER_3_PROMPT  #language x_uefi_redfish_ComputerSystem.v1_11_0  "/Boot/BootOrder/[3]/Boot0003"

集合对象中的属性:

Properties in collection object {NUM}:#string STR_MEMORY_1_BASE_MODULE_TYPE_PROMPT  #language x_uefi_redfish_Memory.v1_7_1  "/Memory/{1}/BaseModuleType"#string STR_MEMORY_2_BASE_MODULE_TYPE_PROMPT  #language x_uefi_redfish_Memory.v1_7_1  "/Memory/{2}/BaseModuleType"#string STR_MEMORY_3_BASE_MODULE_TYPE_PROMPT  #language x_uefi_redfish_Memory.v1_7_1  "/Memory/{3}/BaseModuleType"

EDK2 Build Tool [10]

EDK2构建工具[10]EDK2 Build负责根据HII VFR形式中使用的x-uefi-redfish配置语言,将必要的EDK2 Redfish JSON模式拉到C结构转换器和EDK2 Redfish功能驱动程序拉到edk2构建过程中。

DMTF

DMTF 是Redfish的维护者;

参考文档

https://zhuanlan.zhihu.com/p/145587345https://www.cnblogs.com/zhangxinglong/p/11685977.htmlredfish 白皮书https://www.dmtf.org/sites/default/files/DSP2044%20Redfish%20%E7%99%BD%E7%9A%AE%E4%B9%A6%201.0.0.pdfDSP0266https://www.dmtf.org/sites/default/files/standards/documents/DSP0266_1.10.0.pdfDELLhttp://cdn.tony-yin.site/Implementation%20of%20the%20DMTF%20Redfish%20API%20on%20Dell%20EMC%20PowerEdge%20Servers.pdf超微http://cdn.tony-yin.site/RedfishRefGuide.pdf华为https://support.huawei.com/view/PdfRead/EDOC1000126991/SUPE_DOC/k001/document.pdf

图片

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值