事情的起因
- 實驗需要安裝 p4 環境
- 我考慮到我自己的電腦性能不足,因此打算在本機安裝
- github上官方倉庫的安裝教程老舊,都是在 ubuntu14.04或者ubuntu16.04
- 我長時間用的linux系統是 ubuntu20.04
鑒於以上原因,我開始自己對p4安裝的專研。。
本文地址:https://www.cnblogs.com/mike1024/p/14846544.html
點擊一下文字即可跳轉至鏈接
這個是我自己寫的shell腳本,已經在 ubuntu 20.04上測試通過
先放上官網
[p4 github](https://github.com/p4lang/)
[p4 官網](https://p4.org/)
然后是踩的坑
- 使用了anacond,使得后續找不到python庫,另外使用sudo或root安裝庫會導致安裝的位置混亂
- 按照官方教程安裝,由於版本比較舊,導致源碼編譯不通過,通過更新編譯不通過的源碼包會因為p4各個模塊的版本之間的依賴問題使得環境檢測make check出錯
- 計算機性能較差,編譯卡死過很多次
解決方案
以p4c着手,倒推各個依賴源碼的版本,當依賴的版本無法編譯時,更新源碼和依賴該源碼的模塊
以下是我自己寫的shell腳本對應的解釋
!!轉載請注明出處!!
設置各個模塊的版本(因為各個版本之間有特定的以來關系)
配置 ovs 並將安裝日志寫入對應文件
mininet 的安裝,最后一行是 mininet 的測試,需要啟動 ovs ( ovs-ctl start )
p4 安裝中重要的依賴關系:protobuf
p4安裝中重要的依賴關系:grpc
bmv2 和 PI 模塊的重要依賴
PI 模塊的編譯安裝
bmv2 模塊的編譯安裝
p4c 的編譯安裝
p4 使用參考文檔
至此就安裝好了,腳本中有些 make check 可以安裝好再測試.....
因為如果之前安裝過 p4,但出現了錯,注釋掉的那些 make check 可能導致腳本報錯停止。。。
由於時間比較匆忙,沒有做過多的 p4 介紹,,有時間再添加內容吧。。。
!!轉載請注明出處!!