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/提供認證服務;
-
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 converters和EFI 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_0x-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
總結
以上是生活随笔為你收集整理的UEFI 之 redfish的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于MATLAB的电力系统短路故障分析与
- 下一篇: 基于R语言时间序列的平稳时间序列模型预测