78 lines
3.3 KiB
Markdown
78 lines
3.3 KiB
Markdown
|
|
# SDRconnect Universal Linux Installer
|
||
|
|
|
||
|
|
A community-maintained installer script for [SDRconnect](https://www.sdrplay.com/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
|
||
|
|
|
||
|
|
1. Detects your Linux distribution and maps dependencies to the correct package names
|
||
|
|
2. Installs required system libraries (libusb, ALSA, hamlib, etc.) via your native package manager
|
||
|
|
3. Downloads the SDRconnect and RigControl binaries from SDRPlay's servers
|
||
|
|
4. Verifies download integrity via SHA256 checksums
|
||
|
|
5. Installs both applications to `/opt/sdrconnect` and `/opt/rigcontrol`
|
||
|
|
6. Configures udev rules for SDRPlay USB hardware
|
||
|
|
7. Creates desktop entries and icons (freedesktop.org standard)
|
||
|
|
8. Sets up a PATH profile script so the tools are available from the terminal
|
||
|
|
9. Optionally configures a systemd service for SDRconnect server mode
|
||
|
|
10. Generates an uninstaller at `/opt/sdrconnect/sdrconnect-uninstall.sh`
|
||
|
|
|
||
|
|
## Supported distributions
|
||
|
|
|
||
|
|
| Family | Distros |
|
||
|
|
|---|---|
|
||
|
|
| Debian | Debian, Ubuntu, and derivatives |
|
||
|
|
| Arch | Arch, Manjaro, EndeavourOS, Garuda, Artix |
|
||
|
|
| Fedora | Fedora, RHEL, CentOS, Rocky, Alma, Nobara |
|
||
|
|
| openSUSE | openSUSE (Leap/Tumbleweed), SLES |
|
||
|
|
|
||
|
|
Other derivatives are detected automatically via the `ID_LIKE` field in `/etc/os-release`.
|
||
|
|
|
||
|
|
## Usage
|
||
|
|
|
||
|
|
```bash
|
||
|
|
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 changes
|
||
|
|
- `ACCEPTLICENSE=1` — Skip the interactive license prompt
|
||
|
|
- `DONOTDOWNLOAD=1` — Use local tarballs instead of downloading (place them in the current directory)
|
||
|
|
- `NOTSUPPORTED=1` — Skip dependency checks entirely (install them yourself)
|
||
|
|
- `SYSTEMD_MODE=install SYSTEMD_TARGET=sdrconnectserver` — Enable the server systemd service
|
||
|
|
|
||
|
|
### Adding support for a new distro family
|
||
|
|
|
||
|
|
Define three functions and add a detection line:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 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](https://www.sdrplay.com). 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](https://www.sdrplay.com).
|