安装ubutnu18.04,换源,apt-get update
一、虚拟机设置以及安装low-latency内核
给虚拟机分配尽可能多的cpu及内存。在USB控制器选项中,将USB兼容性设置为USB 3.1。
USRP B210需要用USB线连接到电脑的USB 3.0/3.1接口上,实现供电以及高速数据传输。
关闭虚拟机,进行如上设置
启动虚拟机,查看当前内核:
ubuntu默认为通用内核
安装lowlatency内核:
sudo apt-get install linux-lowlatency
sudo apt-get install linux-image-`uname -r | cut -d- -f1-2`-lowlatency
sudo apt-get install linux-headers-`uname -r | cut -d- -f1-2`-lowlatency
sudo reboot # 重启以加载新内核
ubuntu系统重启,查看是否成功更换内核:
已成功更换为lowlatency内核而
二、更新源列表、安装各种工具及依赖库
更新源列表与已安装软件、安装常用工具:
sudo apt update
sudo apt upgrade
sudo apt install net-tools vim ssh git git-gui htop
安装后来cmake时需要用到的一些依赖库:
sudo apt-get install cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev
安装GNU Radio 3.7.x需要的依赖库:
sudo apt install cmake git g++ libboost-all-dev python-dev python-mako \
python-numpy python-wxgtk3.0 python-sphinx python-cheetah swig libzmq3-dev \
libfftw3-dev libgsl-dev libcppunit-dev doxygen libcomedi-dev libqt4-opengl-dev \
python-qt4 libqwt-dev libsdl1.2-dev libusb-1.0-0-dev python-gtk2 python-lxml \
pkg-config python-sip-dev
安装其他一些依赖库:
sudo apt install python-setuptools python3-dev python3-setuptools python3-numpy python3-mako dpdk dpdk-dev
安装一个和DMA相关的库
注意,若终端中无法使用git clone命令克隆源代码,可直接在浏览器中打开网址,下载代码的压缩包,然后解压到ubuntu中合适的位置(记得重命名,或者后面cd到正确的目录下)。
up把安装过程中所有需要从github上下载的文件放在csdn了,https://download.csdn.net/download/WASEFADG/88031436。
git clone https://github.com/EttusResearch/liberio.git
sudo apt install autoconf libudev-dev
cd liberio/
autoreconf -i
./configure
make
sudo make install
三、UHD编译安装
如果把USRP设备比作显卡,那UHD就是显卡驱动,srsLTE则是3A游戏。正确安装UHD后,srsLTE程序才能调用USRP设备实现信号的处理与收发等。
下载uhd驱动程序和uhd镜像文件:(装3.11的后续麻烦少)
wget https://github.com/EttusResearch/uhd/archive/v3.11.0.0.tar.gz
下载uhd-images_3.11.0.0.zip
资源下载链接:https://download.csdn.net/download/WASEFADG/88031443
https://download.csdn.net/download/WASEFADG/88031440
安装uhd驱动:
cd uhd-3.11.0.0/host
mkdir build
cd build
cmake ../
make –j4
sudo make install
sudo ldconfig
make -j4成功之后应显示如下:
make编译成功
sudo make install和sudo ldconfig运行后未显示任何报错即为成功:
无报错即为成功
将uhd镜像 uhd-images_3.11.0 文件夹复制到正确的位置:
sudo mkdir -p /usr/local/share/uhd/images
sudo cp -r uhd-images_3.11.0/* /usr/local/share/uhd/images/
使用uhd指令查找设备:
sudo uhd_find_devices
若uhd成功识别到usrp设备,显示如下:
成功读取到连接的USRP设备信息
使用uhd指令检测uhd版本与ursp设备固件版本是否兼容:
sudo uhd_usrp_probe
若两者版本兼容,则会打印出usrp设备的详细信息,此时可直接跳转到本节最后一步:
若uhd和usrp固件兼容,则打印出详细的设备信息
若显示信息类似于下图,则说明版本不兼容,需要给ursp设备烧录正确的固件:
报错如上则为不兼容
使用指令自动下载和uhd版本对应的镜像,并烧录到usrp设备中。serial参数和type参数由之前的 sudo uhd_find_devices 指令获得.
sudo uhd_images_downloader
sudo uhd_image_loader --args=serial=8001989,type=b200
烧录正确的固件后再使用 sudo uhd_usrp_probe 指令,即可正确输出设备信息:
烧写正确的镜像文件,重新验证兼容性
正确安装uhd、检测到usrp设备并验证兼容性之后,此时只有root用户才能调用usrp设备。为解除普通用户的权限限制:
cd /usr/local/lib/uhd/utils
sudo cp uhd-usrp.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
这样普通用户也可以调用usrp设备了。
sudo gedit /etc/profile
打开后在文件最后面添加以下语句:
export UHD_IMAGES_DIR=/usr/local/share/uhd/images
sudo cp -r /usr/local/share/uhd/images /usr/share/uhd
sudo uhd_images_downloader
GNUradio是一个开源软件,完全免费,官网在https://www.gnuradio.org/,中文论坛在http://gnuradio.microembedded.com/,可以用于软件定义无线电的实验环境或者是纯软件的仿真。从形式上,它的使用方式很像Matlab中的Simulink,拖动模块连线,之后进行仿真,或者控制硬件的收发。GNUradio内部包含了诸多模块,可以对信号进行各种处理,不仅可以处理,还能生成各类信号,搭配USRP或者Hackrf或者是LimeSDR你可以做到各类无线信号的收发。
USRP是一个硬件,全称是Universal Software Radio Peripheral,我用一个比较简单的方式帮助你理解这个设备——你就把它当一个很不错的天线就可以了。它帮助你接收和发送各类信号,抽象出来就是一个又长又黑的天线。 参考: https://www.bilibili.com/read/cv6733375/
sudo add-apt-repository ppa:gnuradio/gnuradio-releases-3.7
sudo apt-get update
sudo apt install gnuradio
使用 uhd_fft -a=serial=8001989,master_clock_rate=16e6 -f 440e6 -A TX/RX -g=45
进行测试
出现Expected FPGA compatibility number 14, but got 16:问题 (版本问题,建议换低版本的,比如UHD3.11)
USRP B210 运行gnuradio时 FPGA固件版本冲突错误解决方法,参考:USRP B210 运行gnuradio时 FPGA固件版本冲突错误解决方法 - 哔哩哔哩