摘要
本文概要記錄建構運行於樹莓派單板電腦上之OpenBMC的映像檔的注意事項。
本文
OpenBMC是一個應用於伺服器、ToR(Top of Rack)交換機、或磁碟陣列等設備中使用之管理控制器(management controllers)的Linux發行版,其使用了Yocto、OpenEmbedded、systemd、和D-Bus來輕鬆地定製平台。
OpenBMC可以運行於多種平台,包含了樹莓派4代單板電腦。
隨後將使用Windows 10宿主作業系統,安裝VMware Workstation 15 Player虛擬化程式、並於VMware上執行Ubuntu 20.04作業系統。當Ubuntu虛擬機啟動後,便於其上安裝編譯OpenBMC所需的套件,接著再下載OpenBMC的原始碼,隨後將原始碼切換至指定的標籤,透過BitBake執行跨平台編譯完畢後,便將編譯的成果透過Win32DiskImager工具程式寫入SD卡,最後再將該SD卡插入樹莓派進行測試與確認。主要步驟將參考這裡、和這裡。
1. 安裝相依套件。
sudo apt install git python3-distutils gcc g++ make file wget gawk diffstat bzip2 cpio chrpath zstd lz4 bzip2
2. 下載OpenBMC原始碼、並切換至指定的2.8.0標籤。
git clone https://github.com/openbmc/openbmc.git
cd openbmc
git checkout tags/2.8.0
3. 因應樹莓派4代調整快閃記憶體的尺寸。
nano meta-phosphor/classes/image_types_phosphor.bbclass
image_types_phosphor.bbclass |
4. 設置建構環境;留意,設置完畢時將自動切換至build目錄。
export TEMPLATECONF=meta-evb/meta-evb-raspberrypi/conf
echo $TEMPLATECONF
source openbmc-env
5. 因應樹莓派4代調整目標機器名稱,另外再調整建構快取的路徑、以及映像檔型態。
sudo mkdir -p /home/yocto/Yocto/sstate-cache-2
sudo chmod a+rw -R /home/yocto/Yocto/sstate-cache-2
sudo mkdir -p /home/yocto/Yocto/downloads-2
sudo chmod a+rw -R /home/yocto/Yocto/downloads-2
cp conf/local.conf conf/local.conf.bk
nano conf/local.conf
local.conf |
6. 調整linux-firmware-rpidistro這個recipe;參考這裡以因應RPi-Distro專案當前的設定。
linux-firmware-rpidistro_git.bb |
7. 優先執行所有recipe的fetch任務(選配)。
bitbake obmc-phosphor-image --runall=fetch
8. 建構;執行所有recipe的各個任務。
bitbake obmc-phosphor-image
建構完畢的畫面如下。
bitbake obmc-phosphor-image |
9. 複製映像檔;建構完成的映像檔擺放於tmp/deploy/images/raspberrypi4/目錄,有著rpi-sdimg的後綴,把該檔案複製到接下來Win32DiskImager工具程式能夠存取的路徑。
ls tmp/deploy/images/raspberrypi4/*rpi-sdimg |
Win32DiskImager |
11. 將該SD卡插入樹莓派4代進行測試與確認;其中,參照這裡可以得知預設的賬號為root、而對應的密碼為0penBmc。
Raspberry Pi 4 |
參考文獻
https://sourceforge.net/projects/osboxes/files/v/vm/55-U--u/20.04/20.04.4/64bit.7z
https://github.com/openbmc/openbmc/issues/3884
https://github.com/openbmc/openbmc/issues/3812
https://github.com/openbmc/openbmc/blob/2.8.0/meta-evb/meta-evb-raspberrypi/conf/local.conf.sample
https://lore.kernel.org/all/DAA57A92-5A7F-47CE-9DFC-4CB8F2231FCC@gmail.com/T/
https://stackoverflow.com/questions/54078174/bitbake-how-to-only-fetch-the-sources
https://ezgif.com
沒有留言:
張貼留言