GNU与ANTSDR U220配置
这里简单记录一下配置USRP的过程,硬件设备是ANTSDR U220,一开始是对照着ANTSDR开发手册 GNU Radio篇 Rev. 1.0这个pdf搞的,但是里面有些过程有点残缺,而且还是在linux实体机上搞的。
这里记录一下虚拟机上配置以及踩坑的过程,主要参考那个手册以及github上的一部分指南。
基础环境配置
我们需要一个虚拟机,这里以Vmware workstation和Ubuntu为例。
我的虚拟机版本是Ubuntu 22.04.5 LTS,不清楚不同的版本会不会有不同的坑。
有的时候主机与虚拟机之间需要传输数据,这里借助ftp去传文件。
虚拟机安装VSFTPD(可跳过,直接用U盘也行)
sudo apt-get update
sudo apt-get install vsftpd
sudo nano /etc/vsftpd.conf
其中第三行是配置VSFTPD的配置文件,通常位于/etc/vsftpd.conf
这里需要:
- 启用本地用户访问:确保
local_enable=YES
被取消注释。 - 启用写权限:取消注释
write_enable=YES
。 - 启用chroot:取消注释
chroot_local_user=YES
以限制本地用户只能访问其主目录。
然后需要配置防火墙以允许FTP流量通过。使用以下命令打开FTP端口:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 10000:10100/tcp
sudo ufw enable
查看虚拟机的ip地址,输入ifconfig
在主机的FTP应用上连接虚拟机,我这里使用的是XFTP
完事了可以嘎嘎开传了。
这里的用户名最好能设置为root,如果没有root的密码,需要通过sudo passwd root
设置一次root的密码。不过有时候系统可能不支持以root用户的身份通过FTP连接到虚拟机上,那还是算了。(非root用户可能无法复制一些文件,这里直接chmod 777 [文件或目录名]把要复制的文件和目录权限改了就完事了)
GNURadio以及 UHD驱动安装
安装 UHD驱动
git clone https://github.com/MicroPhase/antsdr_uhd.git
cd antsdr_uhd/host/
mkdir build && cd build
cmake -DENABLE_X400=OFF -DENABLE_N320=OFF -DENABLE_X300=OFF -DENABLE_USRP2=OFF -DENABLE_USRP1=OFF -DENABLE_N300=OFF -DENABLE_E320=OFF -DENABLE_E300=OFF ../
make
sudo make install
sudo ldconfig
运行以下命令下载设备需要的固件(U220需要)。
cd /usr/local/lib/uhd/utils
sudo ./uhd_images_downloader.py
将微相提供的 usrp_b210_fpga.bin拷贝到目录/usr/local/share/uhd/images
虽然运行上面的downloader貌似也会下载usrp_b210_fpga.bin,但这个不知道为啥用不了,需要去找淘宝或者京东上的客服要这些文件,然后替换掉它。
将设备连接到电脑端 usb3.0接口,运行命令寻找设备。
uhd_find_devices
这里需要注意:Vmware workstation左上角的虚拟机-设置-USB控制器里的USB兼容性需要设置为3.1。
测试设备是否能正常运行命令:
uhd_usrp_probe
如果连接设备后找不着设备,可能是没连接到虚拟机上,看看虚拟机-可移动设备里能不能找着。
如果虚拟机上显示能找着这个设备,但是上面的指令找不着,也可能是执行权限的问题。
安装gnuradio软件
依赖安装
sudo apt install git cmake g++ libboost-all-dev libgmp-dev swig python3-numpy\
python3-mako python3-sphinx python3-lxml doxygen libfftw3-dev\
libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev python3-pyqt5\
liblog4cpp5-dev libzmq3-dev python3-yaml python3-click python3-click-plugins\
python3-zmq python3-scipy python3-gi python3-gi-cairo gir1.2-gtk-3.0\
libcodec2-dev libgsm1-dev
开始下载gnuradio源码并编译
git clone https://github.com/gnuradio/gnuradio.git
cd gnuradio
git checkout maint-3.8
git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 ../
make
sudo make install
sudo ldconfig
git clone时可能会因为报错,因为Git 的缓冲区大小默认设置较小,对于大型仓库可能导致问题。可以通过以下命令增加缓冲区大小:
git config --global http.postBuffer 524288000 git config --global https.postBuffer 524288000
cmake时也可能会报错
Prevented in-tree build. This is bad practice.
,注意切换回gnuradio下,删除CMakeFiles、CMakeCache.txt这俩东西。然后再重新回到build底下去执行cmake指令。
添加环境变量
gedit ~/.bashrc
在最后一行加入以下信息
export PYTHONPATH=/usr/local/lib/python3/dist-packages:/usr/local/lib/python3/dist-packages:$PYTHONPATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
(此时需要重启一下Terminal)
全部安装完成之后,可以打开 GNURadio,在终端中输入:
gnuradio-companion