Quirks of RHEL based distributions - jketterl/openwebrx GitHub Wiki
Introduction
First of all, if you really need to use a derivate of RHEL for a WebSDR, then go for it. If you never (like me) before worked with a RHEL based distro, please be advised that they shipping with SELinux enforcing. If you don't know how to work with that, for example to make USB devices work for non-root users, then consider using a Debian or Arch based distribution.
Thus I recommend to not use a RHEL based distribution for this application unless you are knowledgeable of RHEL.
The following is a lose list of quirks and workarounds as I find them.
udev
We want our devices to work also for non-root users
The usual tips don't apply
Wikis and discussion threads surrounding getting USB devices to work for non-root users offer two paths:
- adjust r/w rights to
dev/snd*
ordev/usb*
devices - add the desired user to the
plugdev
group - Adjust ACLs
Yet none of theses approaches work for CentOS or persists boots when it appears to work.
Adjust udev rules
Drivers for SDRplay and airspy devices created udev rules which are a good start, but do not work for CentOS.
Go to /etc/udev/rules.d/
and check for files name xx-devicename.rules
. For example: 52-airspy.rules
For an airspy device, use this line:
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="1d50", ATTR{idProduct}=="60a1", SYMLINK+="airspy-%k", MODE:="0666"
x
For an airspyhf device, use this line:
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03eb", ATTR{idProduct}=="800c", SYMLINK+="airspyhf-%k", MODE="0666"
For SDRplay devices, these lines might work:
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="2500",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="3000",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="3010",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="3020",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="3030",MODE:="0666"
I believe the trick is SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device"
and MODE:="0666"
Direwolf
You need to add your user to the group sound so that the virtual sound card required for direwolf can be accessed also by non-root users. Because otherwise your user has not access to this device. This is also true if the user is part of the wheel
user group.
usermod -a -G sound username