本文匯總自己在編譯openbmc時遇到的一些問題及解決思路,希望對有興趣研究openbmc的同學有一些幫助,
專案地址:https://github.com/openbmc/openbmc
編譯步驟:https://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目錄下的所有檔案,重新編譯,
如果你并沒有找到合適的問題解決方法或者有其他問題解決方法,歡迎在留言區給出,之后我如果遇到其他的問題,我也會繼續更新這篇文章,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/245490.html
標籤:嵌入式
