当前位置: 代码迷 >> 综合 >> oai gnb 在docker 中编译的时候出现 nasmesh compilation failed的解决方法
  详细解决方案

oai gnb 在docker 中编译的时候出现 nasmesh compilation failed的解决方法

热度:108   发布时间:2023-10-25 08:32:36.0

出现这个问题,首先要检查一下你的宿主机器的kernel是否是lowlatency版本的:

				unmae -r4.4.0-145-lowlatency

如果不是的话,请转换成相应的lowlatency(至于内核是多少无所谓)这里给个方法:

				sudo apt-get updatesudo 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 headersii  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成功。

  相关解决方案