解决群晖DSM7.1 USB无法映射到docker内(附Ubuntu中安装OpenWebRX全过程)

发布于 / NAS / 2 条评论

前几天给群晖从DSM6.1.7升级到了DSM7.1,发现SDR站:https://websdr.mmuaa.com/ 突然找不到SDR设备了。

我使用的SDR设备是SDRPlay RSP1a,插在群晖USB口上,群晖中使用Docker运行OpenWebRX,宿主机的USB设备映射到Docker内。

在DSM宿主机内lsusb,有SDR设备。在OpenWebRX的docker容器内lsusb,没有SDR设备,说明USB设备没有成功映射到docker容器内。

找到了这篇帖子:DSM 7 USB support in docker (modprobe) : synology (reddit.com),群晖在DSM7.1内禁止了部分USB设备,并且无法给docker使用

image.png

但是DSM的VMM套件贴心的提供了USB设备映射的功能,这一映射是直通的,因此可以不受DSM的限制。需要映射的USB设备可以使用VMM映射到虚拟机内使用。

Ubuntu虚拟机中中安装OpenWebRX

群晖的VMM中新建一个虚拟机,镜像选择Ubuntu minimal 22.04。注意,如果你想运行OpenWebRX1.0以上的版本,必须选择Ubuntu22.04,否则会有很多依赖无法安装,(博主使用Ubuntu 20.04亲测)

如果你要安装OpenWebRX稳定版(0.8版),输入下面的命令即可:

wget -O - https://repo.openwebrx.de/debian/key.gpg.txt | gpg --dearmor -o /usr/share/keyrings/openwebrx.gpg
echo "deb [signed-by=/usr/share/keyrings/openwebrx.gpg] https://repo.openwebrx.de/ubuntu/ jammy main" > /etc/apt/sources.list.d/openwebrx.list
apt-get update
apt-get install openwebrx

如果要安装实验版(1.1版),输入下面的命令:

wget -O - https://repo.openwebrx.de/debian/key.gpg.txt | gpg --dearmor -o /usr/share/keyrings/openwebrx.gpg
echo "deb [signed-by=/usr/share/keyrings/openwebrx.gpg] https://repo.openwebrx.de/ubuntu/ unstable main" > /etc/apt/sources.list.d/openwebrx-unstable.list
apt-get update
apt-get install openwebrx

安装后,访问IP:8073会看到openwebrx的页面。

SDRPlay支持

如果你使用的SDRPlay设备,有一定概率发生找不到SDR设备的情况.

访问你刚刚搭建好的SDR的后台,找到Feature report页面,发现SDRPlay的支持后面状态是NO

image.png

但是lsusb中能正常显示出来sdr设备,这说明驱动安装有误。

首先去这里下载API:Software – SDRplay

image.png

在你的机器上运行下载好的脚本,即可正常安装API。

接着安装SoapySDR

git clone https://github.com/pothosware/SoapySDR.git
cd SoapySDR
mkdir build
cd build
sudo cmake ..
sudo make
sudo make install
sudo ldconfig

接着还要输入下面命令安装SoapySDRPlay3,才能让OpenWebRX使用SDRPlay

sudo apt-get update &&\
sudo apt-get install git build-essential cmake libfftw3-dev python3 python3-setuptools rtl-sdr netcat libsndfile-dev librtlsdr-dev automake autoconf libtool pkg-config libsamplerate-dev libpython3-dev

git clone https://github.com/pothosware/SoapySDRPlay3.git
cd SoapySDRPlay3
mkdir build
cd build
cmake ..
make
sudo make install
cd ../..

接着重启OpenWebRX

service openwebrx restart

发现OpenWebRX已能正常使用

转载原创文章请注明,转载自: 斐斐のBlog » 解决群晖DSM7.1 USB无法映射到docker内(附Ubuntu中安装OpenWebRX全过程)
  1. LbOfficial

    重启群晖或插拔usb设备后需要重新在vmm里面分配给虚拟机,这个问题有解决方案吗?

  2. 神奇的海螺

    这个是不是还要安装一个SoapySDRPlay才能安装SoapySDRPlay3