OpenBMC是用於用於服務器,機架開關頂部或RAID電器等設備中的管理控制器的Linux分發。它使用Yocto,OpenEmbedded,SystemD和D-Bus來輕鬆為您的平台定制。
有關最新要求,請參見Yocto文檔
sudo apt install git python3-distutils gcc g++ make file wget
gawk diffstat bzip2 cpio chrpath zstd lz4 bzip2
sudo dnf install git python3 gcc g++ gawk which bzip2 chrpath cpio
hostname file diffutils diffstat lz4 wget zstd rpcgen patch
git clone https://github.com/openbmc/openbmc
cd openbmc
任何構建都需要根據您的硬件目標設置的環境。該存儲庫的根部有一個特殊的腳本,可用於根據需要配置環境。該腳本稱為setup
,並將硬件目標的名稱作為參數。
腳本需要在OpenBMC存儲庫克隆的頂部目錄中來源,如果沒有參數,將顯示支持的硬件目標的列表,請參見以下示例:
$ . setup <machine> [build_dir]
Target machine must be specified. Use one of:
...
在元磷酸/文檔下,可以找到更完整的支持機器的列表。
一旦知道目標(例如romulus),請按照以下方式來setup
:
. setup romulus
bitbake obmc-phosphor-image
其他詳細信息可以在文檔存儲庫中找到。
OpenBMC社區維護了一組新用戶可以通過的教程,以加快此處的OpenBMC開發的速度
OpenBMC GitHub社區成員提交的提交通過我們的Jenkins服務器進行了編譯和測試。提交通過兩個級別的測試進行。在存儲庫級別,MAKEFILE make check
指令正在運行。在系統級別上,該提交被內置在固件圖像中,並使用ARM-SOFTMMU QEMU模型運行,以彈跳CI測試。
非成員提交的提交不會自動通過CI測試進行。在觀察提交後,可以由審閱者手動執行CI運行。
對QEMU模型以及支持系統進行了自動測試。 OpenBMC項目使用機器人框架進行所有自動化。我們的完整測試存儲庫可以在這裡找到。
始終歡迎支持其他硬件和軟件包。提交時,請遵循貢獻指南。預計貢獻包含測試案例。
問題在Github上進行管理。建議您在打開新問題之前搜索問題。
首先,請在互聯網上進行搜索。您的問題很有可能。
有關一般問題,請在堆棧溢出上使用OpenBMC標籤。在發布任何代碼之前,請查看有關堆棧溢出許可的討論。
有關技術討論,請參閱下面的聯繫信息以獲取不和諧和郵件列表信息。請不要提出問題。通過使用郵件列表或不和諧,您將獲得更快的結果。
這是一個普遍的問題,尤其是關於來自Supermicro和Asrock等流行的COTS(商業現成)供應商的董事會。您可以通過運行看到受支持的董事會的列表. setup
在OpenBMC源樹的根部. setup
(沒有其他參數)。由OpenBMC支持的大多數平台都是由運行大型數據中心的公司運營的專業服務器,但是在不同程度上支持了一些更多的通用COTS服務器。
如果您的主板未在輸出中列出. setup
當前不支持它。將OpenBMC移植到一個新平台是一項非平凡的事業,理想情況下,在製造商的示意圖和其他文檔的幫助下完成(如果沒有通過反向工程文檔進行文檔,則不完全是完全不可行的,但是這要難得多得多,但是它要難得多。 ,並且可能涉及更大的硬件損壞風險)。
但是,即使您的主板是輸出中列出的. setup
,有兩個重要的警告要牢記。首先,並非所有端口都同樣成熟 - 某些平台比其他平台得到了更好的支持,並且某些“受支持”板上的功能可能受到相當限制。其次,對主板的支持與對完整系統的支持不同 - 尤其是,粉絲控制不僅取決於主板,而且還取決於與之相連的粉絲以及董事會和粉絲所包含的底盤,兩者都可以使用相同的板模型在系統之間發生巨大變化。因此,儘管您可能能夠在系統上編譯和安裝OpenBMC構建並獲得一些基本功能,但可能是粗糙的邊緣(例如,在全油門上連續運行的冷卻風扇)。
另請參見“支持的機器”。
通過打開DOCS存儲庫來深入研究OpenBMC。
技術指導委員會(TSC)指導該項目。成員是: