Unable to connect to USRP via SoapyRemote-server

When I was trying to connect to a USRP B200mini via the SoapyRemote-server I ran into a problem.

The error I received:

[ERROR] [device.cpp:100] [UHD] Device discovery error: RuntimeError: get_xdg_config_home(): Unable to find $HOME or $XDG_CONFIG_HOME.

After some investigation and input from @aang23 I came to the conclusion that the process user from /usr/bin/SoapySDRServer --bind was missing these variables.

This solution assums you already have a working USRP system on the device where the SDR is connected, so no information on how to install and configure an USRP.

Therefor I changed the systemd unit responsible for the SoapyRemote-server.

First I created a new user that would be used by the service:

sudo useradd -c "SoapyRemote daemon" -d /home/soapyd -G plugdev,dialout -m -s /bin/bash -U soapyd

Then I changed the systemd unit file:

sudo systemctl edit soapyremote-server.service

I changed the file as shown below:

### Editing /etc/systemd/system/soapyremote-server.service.d/override.conf
### Anything between here and the comment below will become the new contents of the file

[Service]
User=soapyd
Group=soapyd

### Lines below this comment will be discarded

And finally executed the following commands:

sudo systemctl restart soapyremote-server.service
sudo systemctl status soapyremote-server.service

After this change one is able to select the USRP SDR with the help of a SoapyRemote enabled client. In my case this was SDR++ but should also work with GQRX.

1 Like