openbmc編譯錯誤匯總,持續更新,建議收藏
本文匯總自己在編譯openbmc時遇到的一些問題及解決思路,希望對有興趣研究openbmc的同學有一些幫助。
項目地址://github.com/openbmc/openbmc
編譯步驟://github.com/openbmc/openbmc
我編譯主機的配置:
| 虛擬機 | Ubuntu16.04 |
|---|---|
| gcc&g++ | 6.5.0 |
| 記憶體大小 | 4GB |
| 執行緒數 | 8 |
| 硬碟空間 | 256GB |
編譯成功的標誌:全部任務成功結束或者在/tmp/deploy/images/romulus下找到編譯的相應鏡像。
Q & A
- 出現某個包do_unpack失敗
這個可能時源的地址被牆了,需要翻牆。 - 出現某個包do_compile失敗
可能有兩個原因,第一檢查gccc編譯器及g++編譯器,第二可能記憶體不夠,解決方法建立記憶體交換區,可以參考這篇文章,或者在build_dir/conf/local.conf修改/增加這兩個變數BB_NUMBER_THREADS = "2",PARALLEL_MAKE = "-j 4",這兩個變數分別代表bitbake執行使用的執行緒數及編譯時使用的執行緒數,可以通過減少執行緒數降低記憶體開銷。 - 強制關閉bitbake進程後,再次執行發現有的包死活執行失敗,提示the basehash value changed from xxx to xxx
有一個簡單的辦法,找到錯誤資訊中bb文件的位置,vim打開他,在任意一行添加空行保存,騙編譯器重新編譯該菜譜。 - bitbake卡死不動,沒有任何輸出資訊
ps看一下是不是運行了多個bitbake伺服器,關閉它們重新運行。還有一種可能是bitbake不能連接到網路,需要檢查網路。 - 其他錯誤
如果實在是找不到辦法,在你確定自己的環境滿足要求後,刪除目錄sstate-cache,cache,tmp目錄下的所有文件,重新編譯。
如果你並沒有找到合適的問題解決方法或者有其他問題解決方法,歡迎在留言區給出。之後我如果遇到其他的問題,我也會繼續更新這篇文章。

