安裝OVS遇到的一些問題及解決辦法
阿新 • • 發佈:2018-12-04
安裝OVS 2.5.2時,遇到了一些問題,如下
1.在執行make的時候遇到了這樣的問題:
No rule to make target '.travis.yml', needed by 'all-am'
我的解決辦法是重新從壓縮包中解壓一份程式碼出來,在configure之後使用 make all 來編譯,從而解決該錯誤,然後執行make install 即可。
2.核心無法安裝上的問題:
在安裝好OVS之後,對核心層程式碼修改,使用原方法進行編譯安裝後,發現修改後的核心層並沒有被真正安裝進去。
./configure --with-linux=/lib/modules /`uname -r`/build ##安裝到核心層的配置
遇到這個問題,可能是因為在安裝過程中核心模組openvswitch正在被佔用,所以無法修改。我解決的方法如下:
在安裝修改的程式碼後,使用make modules_install載入模組之前,先使用lsmod |grep openvswitch
檢視核心模組openvswtch是否被佔用,如果被佔用,會出現openvswtich之類的字樣,並且openvswitch的第三列是一個非0的數字,如下圖:
此時使用sudo ovs-dpctl show
檢視核心,應該會有一個ovs-system
的datapath,需要使用sudo ovs-dpctl del-dp ovs-system
接下來使用rmmod openvswitch
來移除openvswitch核心模組,再使用lsmod|grep openvswitch
應該就沒有openvswitch字樣。(如果之前不先使用 ovs-dpctl del-dp
命令刪除datapath,則此步驟在rmmod
時可能會出現 Module openvswitch is in use
字樣,就無法移除掉openvswitch核心模組。所以最好先看下模組是否正在被佔用,沒有被佔用則可以直接rmmod
,佔用則先刪除datapath)
最後再使用make modules_install安裝模組即可。