?
服務器基板管理控制器固件開發:從硬件接口到系統管理
嵌入式Linux開發工程師、BIOS/BMC固件工程師、服務器系統工程師
·?精通C語言編程,熟悉數據結構與操作系統概念。
·?熟悉Linux操作系統及Shell編程。
·?了解嵌入式系統基本概念(如UART、I2C、SPI、Flash)。
·?具備基本的硬件知識(看懂原理圖、數據手冊)。
完成本培訓后,學員將能夠:
1.?系統掌握 BMC的硬件架構、核心接口規范與工作原理。
2.?深入理解 開源BMC框架(OpenBMC)的軟件架構、啟動流程與開發模式。
3.?熟練進行 BMC底層驅動開發、傳感器監控、IPMI命令實現與Web/Redfish API開發。
4.?掌握 BMC固件的構建、集成、調試與安全加固方法。
5.?具備 獨立解決BMC開發中常見問題和進行功能定制開發的能力。
1.?BMC基礎與行業標準
o?角色與功能:BMC在服務器中的角色,帶外管理、健康監控、遠程控制、日志告警。
o?核心標準解析:
§?IPMI 2.0規范深度解讀:KCS、BT接口,SEL、FRU、SDR、傳感器數據模型。
§?Redfish RESTful API:現代管理接口標準,與IPMI的關系與演進。
§?DMTF標準族:PLDM、MCTP、SMBIOS。
2.?BMC硬件平臺詳解
o?核心SoC:常用方案介紹(如ASPEED AST系列、Nuvoton NPCM系列)。
o?關鍵硬件接口與總線:
§?LPC/eSPI:與主機(Host)通信的主通道。
§?I2C/SMBus/PMBus:連接CPLD、溫度/電壓傳感器、電源管理芯片的生命線。
§?GPIO:控制電源序列、復位信號、LED指示燈。
§?PECI:讀取CPU溫度與功耗。
§?PWM/TACH:風扇轉速控制與監控。
1.?OpenBMC架構深度解析
o?核心組件:Linux內核、U-Boot、systemd、phosphor-xxx軟件棧。
o?Yocto Project構建系統:理解BitBake配方、層、鏡像定制。
o?D - Bus與phosphor-dbus-interfaces:BMC內部進程間通信的基石。
o?IPMI與Redfish服務實現:phosphor-ipmi-hostd, phosphor-ipmi-net, bmcweb。
2.?開發環境搭建與工作流
o?搭建OpenBMC開發環境(基于QEMU或真實硬件)。
o?源代碼獲取、配置、編譯與燒寫。
o?使用bitbake命令定制鏡像、添加自定義軟件包。
1.?內核驅動與設備樹
o?為定制硬件編寫或修改設備樹。
o?常用驅動模型解析:I2C驅動、GPIO驅動、硬件監控驅動。
2.?用戶空間硬件訪問與抽象
o?phosphor-hwmon:傳感器監控框架,如何添加新的I2C傳感器。
o?phosphor-pid-control:風扇控制算法與配置。
o?phosphor-power:電源序列控制(上電、下電、復位)。
o?實體管理:phosphor-inventory-manager管理FRU信息。
1.?IPMI命令實現與擴展
o?IPMI消息流:從KCS/BT接口到phosphor-ipmi-hostd的處理流程。
o?如何添加一個自定義的OEM IPMI命令。
o?IPMB橋接與多節點管理。
2.?現代管理接口開發:Redfish與REST API
o?bmcweb架構:基于Crow的REST框架。
o?理解Redfish數據模型與Schema。
o?實戰:為自定義硬件(如一塊特定的PCIe卡)添加Redfish管理接口。
3.?Web界面與本地人機界面
o?OpenBMC WebUI框架與定制化。
o?LCD/VKM本地界面的開發。
1.?固件安全
o?安全啟動流程。
o?用戶認證、會話管理與最小權限原則。
o?固件更新安全與回滾機制。
2.?調試、測試與日志
o?常用調試工具:busctl、ipmitool、redfishtool、curl。
o?系統日志管理:phosphor-logging與rsyslog。
o?單元測試與集成測試框架。
3.?實戰案例研究
o?案例一:添加一個新型I2C溫度傳感器
從設備樹、驅動、hwmon配置到Redfish/WebUI展示全流程。
o?案例二:實現一個自定義的電源控制策略
通過D - Bus服務與phosphor-power交互。
o?案例三:集成一個第三方管理芯片
通過PLDM over MCTP協議進行通信。
?