ONOS-Buck編譯常見問題總結

基本問題

1、onos中的命令找不到(mcis onos-karaf cbb-package …)
原因: 環境變量配置有問題
解決: 修改對應的環境變量(這些命令都是在onos的目錄下面的,所以需要將onos的環境變量添加進.bashrc中)

export ONOS_ROOT=$HOME/onos1.8.2  
source $ONOS_ROOT/tools/dev/bash_profile  

2、控制器啓動之後設備報不上來,查看日誌有 address already in use 這樣的報錯信息
原因: 端口被佔用
解決: 先查詢佔用端口的進程,被佔用的端口可能是6653或者6633,通過如下命令查詢

netstat -ap | grep 6653

查到對應的進程後可通過如下命令將進程kill(pid爲查詢到的進程id)

sudo kill pid

buck中的一些問題

1、關於從github上新下載的代碼需要編譯通過參考文檔

2、從svn上下載的代碼編譯通過,運行報onos-core-dist或者onos-core-serializers的錯誤
原因: 爲了能讓cbb中的序列化模塊很好的覆蓋onos中的模塊,在上傳代碼的時候將onos中的序列化模塊註釋了。
解決: 如果要運行onos的代碼,可以在 features/BUCK 文件中將被註釋的onos-core-serializers模塊註釋取消

3、只運行onos後,設備報不上來,是由於從svn上下載的代碼,只啓動了一個onos的平臺,其中的app只有drivers,設備上報需要openflow,lldp等對應的onos的app啓動,這些app已經被註釋了,如果需要啓動可以在項目根目錄下的 module.deps 的APPS變量中添加想要啓動的app

4、修改默認啓動的feature
如果編譯的是onos,修改 tools/package/onos-prep-karaf 中的BOOT_FEATURES
如果編譯的是cbb,修改 tools/package/cbb-prep-karaf 中的BOOT_FEATURES
如果編譯的是5g,修改 tools/package/5g-prep-karaf 中的BOOT_FEATURES

5、通過 buck run .. 運行項目的,查看日誌文件在 computer/tmp/onos-1.11.1/apache-karaf-3.0.8/data/log 下面查看日誌文件

6、模塊覆蓋的問題
如果要編譯運行cbb,由於需要覆蓋onos中的序列化模塊,所以在編譯的時候爲了保證能夠覆蓋,將onos代碼中feature/BCUK文件中的序列化模塊註釋了。如果需要編譯運行5g的代碼,因爲其中有onos的序列化模塊,cbb的序列化模塊,5g的序列化模塊,但我們使用的只是5g的序列化模塊,所以需要把onos的feature/BUCK中和cbb的feature/BUCK中的序列化模塊註釋了再進行編譯。5g運行時也需要在 fiberhome-pre5g-before-cbb 中添加5g的序列化模塊,不然啓動的時候就沒有對應的序列化模塊了

7、buck單獨編譯一個模塊(以編譯yangmodel模塊爲例)
命令: buck build //apps/tenbi/yangmodel:onos-apps-tenbi-yangmodel
解析: buck build爲編譯命令。// 是表示相對路徑,相對於 .buckconfig 文件,// 和 : 之間是編譯代碼的路徑,: 後面是BUCK文件中的對應的編譯規則

8、編譯的時候會出現device no space的問題,這是由於BUCK編譯產生buck—out文件會比較大,磁盤空間不足報的錯,正常清理磁盤就可以重新編譯了,可以使用df -h命令查詢磁盤剩餘空間
(編譯產生的log好討厭阿,100G的硬盤,利用率100%,追根溯源發現因爲之前一直沒清理過,buck-out文件下的log佔用空間特別大)
另:查看文件目錄大小 du 查看當前目錄下文件大小 du -sh * 或者du -h –max-depth = 1 或者find ./* -size +100M

buck編譯中常用的幾個命令
1、buck build onos 編譯onos
2、buck build cbb 編譯cbb
3、buck build cbb-5g 編譯5g
4、ok clean 或者 buck run onos-local 編譯運行onos
5、buck run cbb-local 編譯運行cbb
6、buck run cbb-5g-local 編譯運行5g
7、在運行命令後面直接添加 debug 可debug運行項目
8、buck project 這個命令是用來將項目變爲idea的buck項目,執行完之後可直接通過idea的file -> open 打開項目
注: 其中的cbb cbb-local cbb-5g cbb-5g-local 是在 .buckconfig 文件中定義的

原鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章