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!

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

猜你喜欢

转载自blog.csdn.net/prowc/article/details/75304259
今日推荐