This file contained an outdated installation log for Fedora, which is no longer required in the repository. |
||
|---|---|---|
| .gitignore | ||
| install_sdrplay_universal.sh | ||
| README.md | ||
SDRconnect Universal Linux Installer
A community-maintained installer script for SDRconnect and RigControl that works across major Linux distribution families.
The official SDRPlay installer only supports Debian and Ubuntu. This script extends that support to Arch/Manjaro, Fedora/RHEL, and openSUSE, while preserving full compatibility with Debian-based systems.
What it does
- Detects your Linux distribution and maps dependencies to the correct package names
- Installs required system libraries (libusb, ALSA, hamlib, etc.) via your native package manager
- Resolves the current SDRconnect and RigControl build hashes and the current end-user licence text by parsing SDRPlay's official
install.sh, falling back to built-in defaults if the upstream lookup fails (a prominent yellow warning is printed if the licence falls back, since the embedded copy may have drifted from upstream) - Downloads the SDRconnect and RigControl binaries from SDRPlay's servers
- Verifies download integrity via SHA256 checksums
- Installs both applications to
/opt/sdrconnectand/opt/rigcontrol - Configures udev rules for SDRPlay USB hardware
- Creates desktop entries and icons (freedesktop.org standard)
- Sets up a PATH profile script so the tools are available from the terminal
- Optionally configures a systemd service for SDRconnect server mode (This requires a distro that supports systemd).
- Generates an uninstaller at
/opt/sdrconnect/sdrconnect-uninstall.sh
Supported distributions
| Family | Distros |
|---|---|
| Debian | Debian, Ubuntu, Devuan, and derivatives |
| Arch | Arch, Manjaro, EndeavourOS, Garuda, Artix |
| Fedora | Fedora, RHEL, CentOS, Rocky, Alma, Nobara |
| openSUSE | openSUSE (Leap/Tumbleweed), SLES |
| Mandriva | OpenMandriva, Mageia, and derivatives |
Other derivatives are detected automatically via the ID_LIKE field in /etc/os-release.
Tested successfully on
- Tuxedo OS 3 (i.e. Ubuntu 24.04)
- Debian 13
- NOTE: Debian 13 and Ubuntu 24.04 renamed
libasound2tolibasound2t64as part of the Y2038 transition, but not every derivative followed (Devuan, for example, still shipslibasound2). The installer probesapt-cacheat runtime and selects whichever name is a real package on the host, so this is handled transparently across the Debian family.
- NOTE: Debian 13 and Ubuntu 24.04 renamed
- Devuan 6.1 Excalibur
- NOTE: server-mode installation is unavailable here, because Devuan does not use systemd. The installer detects this and refuses
SYSTEMD_MODE=installup front rather than failing mid-install.
- NOTE: server-mode installation is unavailable here, because Devuan does not use systemd. The installer detects this and refuses
- Manjaro
- Fedora 44
- OpenMandriva 6
- OpenSUSE Tumbleweed 20260430
NOTE ALSO: These tests are only for the installation process. If there are hardware sound issues, or USB issues, or other problems with your linux installation, these tests do not cover that. Consult your distro's documentation for more information. Good luck! :)
Usage
chmod +x install_sdrplay_universal.sh
./install_sdrplay_universal.sh
The script will present the SDRPlay license agreement and prompt for acceptance before proceeding.
Options
--dry-run— Print what would be done without making changesACCEPTLICENSE=1— Skip the interactive license promptDONOTDOWNLOAD=1— Use local tarballs instead of downloading (place them in the current directory). Also skips the upstream lookup (build hashes and licence text); pin filenames with the override variables belowNOTSUPPORTED=1— Skip dependency checks entirely (install them yourself)SYSTEMD_MODE=install SYSTEMD_TARGET=sdrconnectserver— Enable the server systemd service (requires systemd as PID 1; refuses to run otherwise)SDRCONNECT_GITBUILD=<hash>— Pin the SDRconnect build hash, bypassing the upstream lookupRIGCONTROL_GITBUILD=<hash>— Pin the RigControl build hash, bypassing the upstream lookup
By default the installer fetches the current build hashes and the current licence text from SDRPlay's official install.sh at runtime, so it tracks both new releases and licence updates without needing edits. If the fetch fails — or the licence block can't be parsed out — it falls back to copies baked into the script and prints a prominent yellow warning so you know the displayed licence may not match the current upstream version.
Adding support for a new distro family
Define three functions and add a detection line:
# 1. Package names for this family
mydistro_packages(){ echo "curl tar ca-certificates ..."; }
# 2. Check if a single package is installed (return 0/1)
mydistro_check(){ my-pkg-tool query "$1" >/dev/null 2>&1; }
# 3. Install one or more packages
mydistro_install(){
ensure_sudo
run_root my-pkg-tool install "$@"
}
# 4. Add detection in detect_distro_family()
# mydistro) DISTRO_FAMILY="mydistro" ;;
Disclaimer
This is not an official SDRPlay product. This installer is an independent, community effort based on SDRPlay's official installation script. It is not endorsed, supported, or maintained by SDRPlay Limited.
The SDRconnect software itself remains the property of SDRPlay Limited and is subject to their End User License Agreement. This project only modifies the installer mechanism to support additional Linux distributions.
Use at your own risk. While this script has been tested on Manjaro, it has not been exhaustively validated across every supported distribution. Your mileage may vary.
For official support, visit sdrplay.com.