oai gnb 在docker 中編譯的時候出現 nasmesh compilation failed的解決方法

出現這個問題,首先要檢查一下你的宿主機器的kernel是否是lowlatency版本的:

				unmae -r
				4.4.0-145-lowlatency
				

如果不是的話,請轉換成相應的lowlatency(至於內核是多少無所謂)這裏給個方法:

				sudo apt-get update
				sudo apt-get install linux-image-3.19.0-61-lowlatency linux-headers-3.19.0-61-lowlatency

這裏把你想要安裝的kernel換成對應的版本即可。做完這一步,然後在你的docker run的時候,加上相應的-v參數,一定要加-v /lib/modules:/lib/modules參數。下面是我自己的run的時候加的參數:

				sudo docker run  -t -i --privileged -e "USER=root" -h="root" --name="oai5g_gnb" --cap-add=ALL -v /dev/bus/usb:/dev/bus/usb  -v /lib/modules:/lib/modules ubuntu:16.04 /bin/bash

這裏說下-e "USER=root"的原因,因爲在編譯gnb的時候,如果不加一個環境變量USER的話,就會報錯,所以在這裏run的時候加一個。然後-v /lib/modules:/lib/modules不加的話,那麼docker容器中沒有相應的/lib/modules路徑,這個沒有的話,會出現nasmesh complitation failed。即使有這個路徑還不行。這個時候,因爲宿主機器已經是lowlatency版本了。所以你的docker 容器也是相應的lowlatency版本。但是這個時候,你的版本中沒有相應的
在這裏插入圖片描述build(或者說有build但是你cd的話進不去)。這個時候,你先確定下有沒有這個:

				dpkg --list | grep 4.4.0-145-lowlatency | grep headers
				ii  linux-headers-4.4.0-145-lowlatency         4.4.0-145.171

如果沒有的話,

				sudo apt-get install --yes linux-headers-your-version
	比方說我的內核版本是4.4.0-145-lowtatency,那我對應的命令是
				sudo apt-get install --yes linux-headers-4.4.0-145-lowtatency

這樣的話,你的/lib/modules就有相應的內核的東西了。這樣的話就不會出現nasmesh complitation failed了。希望你也能編譯gnb成功。

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