OpenAirInterface 安装USRP或BLADERF时Hash校验和不符问题

在安装USRP和BLADERF驱动的时候,都遇到了
W: 无法下载 http://ppa.launchpad.net/bladerf/bladerf/ubuntu/dists/trusty/main/binary-amd64/Packages Hash 校验和不符

W: 无法下载 http://ppa.launchpad.net/bladerf/bladerf/ubuntu/dists/trusty/main/i18n/Translation-en Hash 校验和不符
问题

注意这个地方实际上是OpenAirInterface自己要从这个源下载USRP或者是BLADERF的驱动。

那么当出现这个Hash校验和不符问题时一般可能是由于国内网络连接问题,或者是国内服务器缓存内容与源内容不一致导致的。可以尝试以下几种方法:
(1) 重新换一个源,可以尝试使用国内高校的源,并执行以下命令:

sudo rm -rf /var/lib/apt/list/*
sudo apt-get update 

(2) 修改源,如图中所示,可以看出是由于bladerf/bladerf/的源出了问题(你可以根据具体情况看是哪个源的问题),可以在目录 /etc/apt/sources.list.d 找到juju的源配置文件 bladerf/bladerf/-stable-trusty.list,内容为:
deb http://ppa.launchpad.net/bladerf/bladerf/stable/ubuntu trusty main

手动将内容改为:
deb http://ppa.launchpad.net/bladerf/bladerf/stable/ubuntu/dists trusty main
然后执行sudo apt-get update

笔者按第二种方法改完之后,发现每次执行
./build_oai -I -w USRP
命令之后,/etc/apt/sources.list.d 目录下的配置文件又被添加了没有dists的条目。。所以又编译不过了

OpenAirInterface的./build_oai调用的是
openairinterface5g/cmake_targets/tools目录下的build_helper和openairinterface5g/targets目录下的build_helper.bash(build_oai.bash)
所以说修改build_helper和build_helper.bash中的内容,打开这两个文件,搜索USRP
把build_helper.bash中

check_install_usrp_uhd_driver(){
    if [ ! -f /etc/apt/sources.list.d/ettus.list ] ; then 
        $SUDO bash -c 'echo "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu`lsb_release -cs` `lsb_release -cs` main" >> /etc/apt/sources.list.d/ettus.list'
        $SUDO apt-get update
    fi 
    $SUDO apt-get install -t $UBUNTU_REL_NAME uhd
    test_install_package python 
    test_install_package libboost-all-dev 
    test_install_package libusb-1.0-0-dev
    #test_install_package uhd
}

替换为

check_install_usrp_uhd_driver(){
    if [ ! -f /etc/apt/sources.list.d/ettus.list ] ; then 
        #$SUDO bash -c 'echo "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu/dists`lsb_release -cs` `lsb_release -cs` main" >> /etc/apt/sources.list.d/ettus.list'
        $SUDO apt-get update
    fi 
    $SUDO apt-get install -t $UBUNTU_REL_NAME uhd
    test_install_package python 
    test_install_package libboost-all-dev 
    test_install_package libusb-1.0-0-dev
    #test_install_package uhd
}

把build_helper中的

check_install_usrp_uhd_driver(){
        #first we remove old installation
        $SUDO apt-get remove -y uhd || true
        $SUDO apt-get remove libuhd-dev libuhd003 uhd-host -y
        v=$(lsb_release -cs)
        $SUDO apt-add-repository --remove "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu$v $v main"
        #The new USRP repository
        $SUDO add-apt-repository ppa:ettusresearch/uhd -y
        $SUDO apt-get update
        $SUDO apt-get -y --allow-unauthenticated install  python python-tk libboost-all-dev libusb-1.0-0-dev
        $SUDO apt-get -y --allow-unauthenticated install libuhd-dev libuhd003 uhd-host
}

替换成

check_install_usrp_uhd_driver(){
        #first we remove old installation
        $SUDO apt-get remove -y uhd || true
        $SUDO apt-get remove libuhd-dev libuhd003 uhd-host -y
        v=$(lsb_release -cs)
        $SUDO apt-add-repository --remove "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu/dists$v $v main"
        #The new USRP repository
        #$SUDO add-apt-repository ppa:ettusresearch/uhd -y
        $SUDO apt-get update
        $SUDO apt-get -y --allow-unauthenticated install  python python-tk libboost-all-dev libusb-1.0-0-dev
        $SUDO apt-get -y --allow-unauthenticated install libuhd-dev libuhd003 uhd-host
}

其实就是把添加源的语句注释掉了,让他直接根据最开始修改的源来update,不要自己再添加源就可以了。

注意看这句话
#$SUDO add-apt-repository ppa:ettusresearch/uhd -y
为什么注释掉这句话,大家应该可以理解了吧(取消添加源的操作)

写在最后,笔者在编译完成后
出现状态如下:

.......
正在设置 libuhd-dev (3.5.5-1) ...
正在设置 uhd-host (3.5.5-1) ...
net.core.rmem_max = 50000000
net.core.wmem_max = 1048576
Processing triggers for libc-bin (2.19-0ubuntu6.13) ...
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
uhd-host 已经是最新的版本了。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 402 个软件包未被升级。

You do not have write permissions at the install location!
build have failed

You do not have write permissions at the install location!
build have failed!

简直头皮发麻,经过一天的努力,解决方法见本博客另外一篇博文。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LTE环境指的是Long Term Evolution(长期演进)的通信网络环境,OpenAirInterface5G(简称OAI)是一种开源的5G通信网络软件平台,而USRP B210是一种通用软件无线电平台。 USRP B210是由Ettus Research公司开发的一款具备高性能、低成本的通用软件无线电平台,可以用于实现各种无线通信系统的开发和实验。它支持多种无线通信技术,包括LTE、WiFi、蓝牙等,并采用开放架构,具有良好的可扩展性,可以方便地进行硬件和软件的定制和升级。 OpenAirInterface5G是由欧洲5G早期研发项目(EURECOM和UPMC)推出的一种开源的5G通信网络软件平台,它提供了一整套用于5G网络研究和开发的完整软件堆栈。OAI支持LTE和NR(New Radio)两种5G技术,并提供了5G核心网、无线接入网和终端设备的模拟器等关键组件,可以用于进行各种5G场景的仿真和测试。 在LTE环境下,使用USRP B210与OpenAirInterface5G搭建的通信系统可以实现对LTE网络进行仿真和测试。USRP B210作为物理层的无线电设备,通过OpenAirInterface5G平台提供的协议栈和控制平面,可以进行与实际LTE网络相似的信号传输、射频接口和协议栈层面的通信。同,由于OpenAirInterface5G是开源软件平台,可以方便地进行系统定制和功能扩展,对于LTE网络的研究和开发有着重要的作用。 总之,使用USRP B210与OpenAirInterface5G可以搭建一个具备LTE环境的软件定义无线电通信系统,方便进行LTE网络的仿真、测试和研究工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值