天天看點

openbmc編譯錯誤彙總,持續更新,建議收藏

本文彙總自己在編譯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

  1. 出現某個包do_unpack失敗

    這個可能時源的位址被牆了,需要FQ。

  2. 出現某個包do_compile失敗

    可能有兩個原因,第一檢查gccc編譯器及g++編譯器,第二可能記憶體不夠,解決方法建立記憶體交換區,可以參考這篇文章,或者在build_dir/conf/local.conf修改/增加這兩個變量

    BB_NUMBER_THREADS = "2"

    ,

    PARALLEL_MAKE = "-j 4"

    ,這兩個變量分别代表bitbake執行使用的線程數及編譯時使用的線程數,可以通過減少線程數降低記憶體開銷。
  3. 強制關閉bitbake程序後,再次執行發現有的包死活執行失敗,提示the basehash value changed from xxx to xxx

    有一個簡單的辦法,找到錯誤資訊中bb檔案的位置,vim打開他,在任意一行添加空行儲存,騙編譯器重新編譯該菜單。

  4. bitbake卡死不動,沒有任何輸出資訊

    ps看一下是不是運作了多個bitbake伺服器,關閉它們重新運作。還有一種可能是bitbake不能連接配接到網絡,需要檢查網絡。

  5. 其他錯誤

    如果實在是找不到辦法,在你确定自己的環境滿足要求後,删除目錄

    sstate-cache

    cache

    tmp

    目錄下的所有檔案,重新編譯。

如果你并沒有找到合适的問題解決方法或者有其他問題解決方法,歡迎在留言區給出。之後我如果遇到其他的問題,我也會繼續更新這篇文章。

繼續閱讀