在Windows上要使用usrp需要使用Windows版本的GNU Radio,但是用起来的体验一言难尽,打开慢而且闪退几率较大,因而考虑使用Linux版本的GNU Radio,正好Windows系统安装了Linux子系统(WSL,版本为Ubuntu18.04),因而考虑在WSL中安装GNU Radio和UHD驱动,从而实现操作USRP。
直接在Microsoft Store搜索Ubuntu,安装你想要安装的版本即可,我装的时间比较早,就选了Ubuntu18.04。
安装WSL
接着,需要把WSL版本从1升级到2,命令如下:
wsl --set-version Ubuntu-18.04 2
装了其它版本的只需要把Ubuntu-18.04替换为你安装的版本。
sudo add-apt-repository ppa:gnuradio/gnuradio-releases
sudo apt-get update
sudo apt-get install gnuradio xterm python3-gi gobject-introspection gir1.2-gtk-3.0
一般来说,上面的步骤已经装了UHD驱动了,不需要另外安装
具体的过程可以参考微软的连接USB设备[1]这篇文章,有任何问题请仔细阅读这篇文章的说明。
首先,需要安装USBIPD-WIN,下面我就列出简单的步骤:
下载USRP
当然,如果你电脑上装了winget,可以使用winget install --interactive --exact dorssel.usbipd-win
命令安装USBIPD-WIN,并手动重启电脑。
接着,在Linux子系统中执行下列命令
sudo apt install linux-tools-5.4.0-77-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20
最后,需要将USB从Windows映射到Linux子系统中,步骤如下
usbipd wsl list
usbipd wsl attach --busid <busid>
lsusb
就能看到刚刚挂载的USB设备,即USRP设备。
当我们在Ubuntu中执行uhd_find_devices
时会出现could not find path for image
,并且让我们执行/usr/lib/x86_64-linux-gnu/uhd/utils/uhd_images_downloader.py
这个文件,但是你用python执行的时候,提示没有这个文件,实际查找发现,这个文件正确的路径为/usr/lib/uhd/utils/uhd_images_downloader.py
,使用python执行一下即可。
sudo python3 /usr/lib/uhd/utils/uhd_images_downloader.py
你会发现下载速度特别慢,这是因为服务器在国外,只能各显神通了。
安装完了之后,可以在开始菜单的Ubuntu18.04中找到GNU Radio Companion,点击即可打开使用
开始菜单其中查看fft的效果如下
开始菜单
[1]
连接USB设备: https://learn.microsoft.com/zh-cn/windows/wsl/connect-usb