|
|
| (Nu s-a afișat o versiune intermediară efectuată de același utilizator) |
| Linia 1: |
Linia 1: |
| | Script pentru instalarea tuturor pachetelor necesare pentru utilizarea SDRPlay pe Raspberry Pi. |
| Acest script se găsește și pe github la adresa [https://github.com/yo3iti/Dual-SDR-install.git https://github.com/yo3iti/Dual-SDR-install.git] | | Acest script se găsește și pe github la adresa [https://github.com/yo3iti/Dual-SDR-install.git https://github.com/yo3iti/Dual-SDR-install.git] |
|
| |
|
| Linia 17: |
Linia 18: |
| exit 1 | | exit 1 |
| fi | | fi |
| | ..... |
| | </syntaxhighlight> |
|
| |
|
| # Update system
| | (restul pe [https://github.com/yo3iti/Dual-SDR-install.git github]) |
| echo "[1/7] Updating system..."
| |
| sudo apt-get update
| |
| sudo apt-get upgrade -y
| |
| | |
| # Install system dependencies
| |
| echo "[2/7] Installing system packages..."
| |
| sudo apt-get install -y \
| |
| python3-pip \
| |
| python3-dev \
| |
| build-essential \
| |
| cmake \
| |
| git \
| |
| libusb-1.0-0-dev \
| |
| pkg-config \
| |
| libxml2-dev \
| |
| bison \
| |
| flex \
| |
| libavahi-client-dev \
| |
| libavahi-common-dev \
| |
| libserialport-dev \
| |
| libcdk5-dev \
| |
| libaio-dev \
| |
| libzstd-dev
| |
| | |
| # Create build directory
| |
| BUILD_DIR="$HOME/sdr_build"
| |
| mkdir -p "$BUILD_DIR"
| |
| cd "$BUILD_DIR"
| |
| | |
| # ===== STEP 1: Install libiio FIRST (critical!) =====
| |
| echo "[3/7] Installing libiio..."
| |
| | |
| if [ -d "libiio" ]; then
| |
| rm -rf libiio
| |
| fi
| |
| | |
| git clone https://github.com/analogdevicesinc/libiio.git
| |
| cd libiio
| |
| git checkout v0.25 # Use stable version
| |
| | |
| mkdir -p build && cd build
| |
| cmake .. \
| |
| -DCMAKE_INSTALL_PREFIX=/usr/local \
| |
| -DWITH_SERIAL_BACKEND=ON \
| |
| -DENABLE_IPV6=ON
| |
| | |
| make -j$(nproc)
| |
| sudo make install
| |
| sudo ldconfig
| |
| | |
| # Verify libiio installation
| |
| if ! pkg-config --exists libiio; then
| |
| echo "ERROR: libiio pkg-config not found"
| |
| exit 1
| |
| fi
| |
| | |
| echo "libiio installed successfully"
| |
| cd "$BUILD_DIR"
| |
| | |
| # ===== STEP 2: Install libad9361 with proper linking =====
| |
| echo "[4/7] Installing libad9361..."
| |
| | |
| if [ -d "libad9361-iio" ]; then
| |
| rm -rf libad9361-iio
| |
| fi
| |
| | |
| git clone https://github.com/analogdevicesinc/libad9361-iio.git
| |
| cd libad9361-iio
| |
| | |
| # Fix CMakeLists.txt to link libiio properly
| |
| cat > CMakeLists_fix.patch <<'EOF'
| |
| --- a/CMakeLists.txt
| |
| +++ b/CMakeLists.txt
| |
| @@ -1,6 +1,9 @@
| |
| cmake_minimum_required(VERSION 2.8.7)
| |
| project(ad9361 C)
| |
|
| |
| +# Find libiio
| |
| +find_package(PkgConfig REQUIRED)
| |
| +pkg_check_modules(LIBIIO REQUIRED libiio)
| |
| +
| |
| set(LIBAD9361_VERSION_MAJOR 0)
| |
| set(LIBAD9361_VERSION_MINOR 2)
| |
| set(LIBAD9361_VERSION ${LIBAD9361_VERSION_MAJOR}.${LIBAD9361_VERSION_MINOR})
| |
| @@ -32,6 +35,8 @@ add_library(ad9361 SHARED ${LIBAD9361_SOURCES})
| |
| set_target_properties(ad9361 PROPERTIES
| |
| VERSION ${LIBAD9361_VERSION}
| |
| SOVERSION ${LIBAD9361_VERSION_MAJOR}
| |
| + LINK_FLAGS "${LIBIIO_LDFLAGS}"
| |
| + COMPILE_FLAGS "${LIBIIO_CFLAGS}"
| |
| )
| |
| target_link_libraries(ad9361 LINK_PRIVATE ${LIBIIO_LIBRARIES})
| |
|
| |
| EOF
| |
| | |
| # Apply patch if CMakeLists doesn't already link libiio
| |
| if ! grep -q "pkg_check_modules(LIBIIO" CMakeLists.txt; then
| |
| patch -p1 < CMakeLists_fix.patch || true
| |
| fi
| |
| | |
| mkdir -p build && cd build
| |
| cmake .. \
| |
| -DCMAKE_INSTALL_PREFIX=/usr/local \
| |
| -DLIBIIO_INCLUDEDIR=/usr/local/include \
| |
| -DLIBIIO_LIBDIR=/usr/local/lib
| |
| | |
| make -j$(nproc)
| |
| sudo make install
| |
| sudo ldconfig
| |
| | |
| echo "libad9361 installed successfully"
| |
| cd "$BUILD_DIR"
| |
| | |
| # ===== STEP 3: Install SoapySDR =====
| |
| echo "[5/7] Installing SoapySDR..."
| |
| | |
| if [ -d "SoapySDR" ]; then
| |
| rm -rf SoapySDR
| |
| fi
| |
| | |
| git clone https://github.com/pothosware/SoapySDR.git
| |
| cd SoapySDR
| |
| git checkout soapy-sdr-0.8.1 # Stable version
| |
| | |
| mkdir -p build && cd build
| |
| cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
| |
| make -j$(nproc)
| |
| sudo make install
| |
| sudo ldconfig
| |
| | |
| echo "SoapySDR installed successfully"
| |
| cd "$BUILD_DIR"
| |
| | |
| # ===== STEP 4: Install SDRPlay API (if you have SDRPlay) =====
| |
| echo "[6/7] SDRPlay setup..."
| |
| echo "NOTE: SDRPlay requires manual API installation from https://www.sdrplay.com/downloads/"
| |
| echo "After installing SDRPlay API, install SoapySDRPlay3:"
| |
| echo ""
| |
| | |
| read -p "Do you have SDRPlay API installed? (y/n) " -n 1 -r
| |
| echo
| |
| if [[ $REPLY =~ ^[Yy]$ ]]; then
| |
| if [ -d "SoapySDRPlay3" ]; then
| |
| rm -rf SoapySDRPlay3
| |
| fi
| |
|
| |
| git clone https://github.com/pothosware/SoapySDRPlay3.git
| |
| cd SoapySDRPlay3
| |
| mkdir -p build && cd build
| |
| cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
| |
| make -j$(nproc)
| |
| sudo make install
| |
| sudo ldconfig
| |
|
| |
| echo "SoapySDRPlay3 installed successfully"
| |
| else
| |
| echo "Skipping SoapySDRPlay3 installation"
| |
| fi
| |
| | |
| cd "$BUILD_DIR"
| |
| | |
| # ===== STEP 5: Install Python packages =====
| |
| echo "[7/7] Installing Python packages..."
| |
| | |
| # Upgrade pip
| |
| pip3 install --upgrade pip
| |
| | |
| # Install basic packages
| |
| pip3 install numpy scipy matplotlib pyyaml tqdm
| |
| | |
| # Install pyadi-iio (for PlutoSDR)
| |
| pip3 install pyadi-iio
| |
| | |
| # Install SoapySDR Python bindings
| |
| cd "$BUILD_DIR/SoapySDR"
| |
| cd python
| |
| pip3 install .
| |
| | |
| echo ""
| |
| echo "===== Installation Complete ====="
| |
| echo ""
| |
| echo "Installed components:"
| |
| echo " - libiio (for PlutoSDR)"
| |
| echo " - libad9361 (for PlutoSDR)"
| |
| echo " - SoapySDR"
| |
| echo " - Python packages"
| |
| echo ""
| |
| echo "Testing installations:"
| |
| echo ""
| |
| | |
| # Test libiio
| |
| echo "Testing libiio..."
| |
| if command -v iio_info &> /dev/null; then
| |
| echo "✓ iio_info available"
| |
| iio_info -V
| |
| else
| |
| echo "✗ iio_info not found"
| |
| fi
| |
| | |
| # Test SoapySDR
| |
| echo ""
| |
| echo "Testing SoapySDR..."
| |
| if command -v SoapySDRUtil &> /dev/null; then
| |
| echo "✓ SoapySDRUtil available"
| |
| SoapySDRUtil --info
| |
| else
| |
| echo "✗ SoapySDRUtil not found"
| |
| fi
| |
| | |
| # Test Python imports
| |
| echo ""
| |
| echo "Testing Python imports..."
| |
| python3 << EOF
| |
| import sys
| |
| try:
| |
| import numpy
| |
| print("✓ numpy")
| |
| except:
| |
| print("✗ numpy")
| |
|
| |
| try:
| |
| import scipy
| |
| print("✓ scipy")
| |
| except:
| |
| print("✗ scipy")
| |
|
| |
| try:
| |
| import adi
| |
| print("✓ pyadi-iio (PlutoSDR)")
| |
| except:
| |
| print("✗ pyadi-iio")
| |
|
| |
| try:
| |
| import SoapySDR
| |
| print("✓ SoapySDR")
| |
| except:
| |
| print("✗ SoapySDR")
| |
| EOF
| |
| | |
| echo ""
| |
| echo "Quick start:"
| |
| echo ""
| |
| echo "For PlutoSDR (USB):"
| |
| echo " iio_info -u ip:192.168.2.1"
| |
| echo " python3 -c 'import adi; sdr=adi.Pluto(\"ip:192.168.2.1\"); print(sdr)'"
| |
| echo ""
| |
| echo "For SDRPlay:"
| |
| echo " SoapySDRUtil --probe=driver=sdrplay"
| |
| echo ""
| |
| echo "Clean up build files:"
| |
| echo " rm -rf $BUILD_DIR"
| |
| </syntaxhighlight>
| |
Script pentru instalarea tuturor pachetelor necesare pentru utilizarea SDRPlay pe Raspberry Pi.
Acest script se găsește și pe github la adresa https://github.com/yo3iti/Dual-SDR-install.git
Este foarte important să se instaleze înainte driverele oficiale pentru SDRPlay.
#!/bin/bash
# install_sdr_fixed.sh - Fixed installation script for Raspberry Pi
set -e
echo "===== SDR Interface Installation (Fixed) ====="
# Check if running as root
if [ "$EUID" -eq 0 ]; then
echo "WARNING: Don't run as root during build. Run specific commands with sudo."
echo "Usage: ./install_sdr_fixed.sh"
exit 1
fi
.....
(restul pe github)