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.