SOL 全名是 Serial Over LAN, 對BMC來說這個功能和UART息息相關。因此這篇文章主要分為兩個部分:
- IPMI的 Serial Over LAN(SOL)是什麼?
- 你可能想知道的那些關於UART的東西
- UART 介紹
- UART 控制器和序列埠 (UART Controller and COM port)
- OpenBMC 的code ?
SOL 全名是 Serial Over LAN, 對BMC來說這個功能和UART息息相關。因此這篇文章主要分為兩個部分:
在初學 PCIe System (一) - PCIe介紹及其配置空間中有提到可以從PCIe設備的配置空間(Configuration Space)獲取許多重要的資訊,那在CPU中,訪問配置空間常用的兩種方式如下:
第二部分在這:初學 PCIe System (二) - 如何訪問PCIe設備的配置空間
PCI Express (PCIe) 屬於第三代的高效能 I/O 匯流排,PCIe Spec對其的介紹是:
PCI Express is a high performance, general purpose I/O interconnect defined for a wide variety of future computing and communication platforms.
PCI Express 為各種未來的計算和通信平台所定義的高性能、通用互連 I/O 。
(這篇主要對象為韌體工程師,簡單介紹SMBus的一些基本概念而已)
System Management Bus (簡稱SMBus或是SMB) ,是1995年由Intel提出的,用來訪問主機板上的設備(EEPROM、溫度感測器、電壓感測器等) 並收集相應的資訊(SPD、溫度、電壓、版本號)。SMBus和I2C很相近,都是由兩條線: Clock (SMBCLK) 和 Data (SMBDAT) 所組成的。
(*如果之後架構有變,這邊不會更新)
這篇文章我去年就很想寫了,因為當時身邊有蠻多人對這個tool有些誤解,對用來驗證Redfish Schema來說它是個很好用的tool,快速又方便,現在社群也很活耀的持續開發,只是對第一次接觸OData的人來說,可能會有點不知道怎麼上手,但理解之後會發現其實它原理很簡單的,然後如果還不認識OData的話 可以先看 DMTF Redfish 介紹 ,裡面有將官網連結都附上
Redfish Services validator 在 GitHub - DMTF/Redfish-Service-Validator 的Readme中介紹是
Redfish Service Validator 是一個開源框架,用於檢查啟用了 Redfish interface 的任何通用設備與 DMTF 定義的 Redfish schema 和 specifications的一致性。該工具設計為與設備無關,並且完全基於旨在由設備支持的 Redfish 規範驅動。
(*如果之後架構有變,這邊不會更新)
來聊聊OpenBMC的Redfish怎麼快速上手, 如果對redfish沒有很熟的話,可以先看"認識Redfish"裡面講解的概念
(*如果之後架構有變,這邊不會更新)
以上兩個tool都是由DMTF開發的,Redfish Mockup Creator 可以去對Redfish Services 作mockup,而Redfish Mockup Server 我對它的定位在模擬器(emulator),可以餵給它指定的Redfish mock,Server跑起來之後可以對它請求 GET method
然後Mockup Creator 真的很方便,現在突然想看哪個Resource的Response,直接就能找到
(*如果之後架構有變,這邊不會更新)GitHub - openbmc/smbios-mdr
MDR(Managed Data Region) 是 OpenBMC中取得SMBIOS Table並解析其內容的一個功能,目前網路上(在沒有特別帳號權限下)能找到的資料蠻少的,所以這邊會盡量用公開資料做個分析 如果還不認識SMBIOS 可以先看之前寫的文章
DMTF 將Redfish 協議(protocol)的定義與數據模型(data model)分開,同時允許獨立修改schema中定義的每個Resource,所以Redfish的版本可以分為下面三種
考完期末考了,但因為Blogger真的太難用了,我把文章改寫在CSDN上了,歡迎大家去參考那邊的,但我那邊文章是翻譯成簡體字,所以可能會辛苦一點😰
[OpenBMC] LDAP 设定(三) - LDAPS(LDAP over TLS)_yeiris的博客-CSDN博客
開始談PFR前,我們先把時間條滑回 2017 年,當年有個病毒 "BrickerBot" 很有名,他是透過網路刷機將IoT設備上的韌體變成磚頭(Brick),這種攻擊手法被稱作PDoS (Permanent denial-of-service attacks / phlashing),和DDoS 讓伺服器暫時癱瘓的攻擊手法相比,這是永久性的讓硬體癱瘓,必須重新更新才能復原
隔年,在2018年,美國國家標準暨技術研究院(NIST)發布了NIST SP 800 193標準(Platform Firmware Resiliency Guidelines),裡面提及平台上的Firmware 應該要符合三項安全措施
redfishtool is a commandline tool that implements the client side of the Redfish RESTful API for Data Center Hardware Management.
redfishtool是一個命令行工具,用於實現用於數據中心硬件管理的 Redfish RESTful API 的客戶端。
Redfishtool,是DMTF用python3來開發的,我們可以透過redfishtool來下指令給redfish,但通常很少會用到這個tool,因為postman和curl其實就很好用了,但基於好奇,我在自己的模擬器裡面安裝來玩看看,安裝指令
和往常一樣,OpenBMC中官方對Redfish 的Log 機制已經有很詳細的介紹,所以這篇是結合一些額外的資料來看整個LogService 的架構和原理 (*如果之後OpenBMC架構有變,這邊不會再更新)
docs/redfish-logging-in-bmcweb.md at master · openbmc/docs · GitHub