Доброї пори доби. Тут як завжди біля мікрофону дядько Рост. Сьогодні я разом з вами вб'ю двох (а може трьох, ще не визначився) зайців. Перший заєць - то Fobos SDR. Ви разом зі мною розширите коло програм, де FobosSDR працює. Зайвим це точно не буде, а навпаки розширить наші можливості, вміння та знання. Другий - SDRangel в Debian 12. В Ubuntu мені легше та швидше вдалося його встановити. Третій - чи всіма цими маніпуляціями не розвалимо систему і SDR++ залишиться в робочому стані. Таки три зайці вийшло.
Для тих, в кого розшатані нерви, щоб не тримати інтригу, скажу. Все вийшло, все працює, нічого не впало і не розвалилося. Система залишилася в повністю робочому стані.
Як в кожної господині свій рецепт та смак борщу, так і в мене. Свій рецепт встановлення програми. Не скажу що він оптимальний та єдиноможливий, але працюючий. Тут все намішано. І досвід автора програми, і досвід хлопців з профільного чату, які допомагали мені консультаціями. Так так, саме про вас - власників нікнеймів Ukrop та Kir a/k/a Dober. Дуже вам вдячний! І трохи мого десь там зкраєчку є.
Процес довгий та нудний, через те що повністю все збирається з вихідних файлів. Не все є обов'язковим для встановлення. Якщо ви вже встановили собі libfobos, тоді її не потрібно знову збирати. Так само з підтримкою sdr приймачів. Якщо їх у вас немає, можна і не збирати їхні модулі. Я не збирав модулі підтримки USRP та XTRX.
Рецепт розрахований для встановлення необхідних модулів, плагінів, бібліотек на повністю чисту систему. В кого вже стоїть SDR++ з підтримкою Фобоса - частину з встановлення та перевірки роботи libfobos пропускаєте.
Наприкінці буде коротко про те, як почати sdrangel користуватися на прикладі прийому FM радіостанцій. Я не знайшов розгорнутої документації користувача, тому покажу мінімум, який я знаю. В програмі багато цікавого. На це потрібен час, тому потрошки буду викладати свій досвід роботи в ній.
Встановлюємо необхідні для початку пакети. Решта пакетів буде встановлюватися по мірі потреби.
sudo apt -y install libhamlib-dev
sudo apt -y install git
sudo apt -y install cmake
sudo apt -y install build-essential
sudo apt -y install soapysdr-tools
sudo apt -y install libsoapysdr-dev
sudo apt -y install libfftw3-dev
sudo apt -y install libglfw3-dev
sudo apt -y install libvolk2-dev
sudo apt -y install libzstd-dev
sudo apt -y install librtaudio-dev
sudo apt -y install librtlsdr-dev
sudo apt -y install libairspyhf-dev
sudo apt -y install libhackrf-dev
sudo apt -y install libiio-dev
sudo apt -y install libad9361-dev
sudo apt -y install libfec-dev
Якщо в системі не стоїть бібліотека підтримки FobosSDR, libfobos, її потрібно зібрати. Для цього виконайте наступні команди.
cd ~
git clone https://github.com/rigexpert/libfobos.git
cd libfobos
mkdir build
cd build
cmake ..
make
sudo make install
sudo udevadm control --reload-rules
sudo udevadm trigger
sudo cp /usr/local/lib/libfobos.so /usr/lib/
Тепер потрібно приєднати приймач до USB порту (якщо ви його ще не приєднали) та перевантажити комп'ютер. Далі перейти в каталог ~/libfobos/build
cd ~/libfobos/build
Та перевірити, як описано минулій частині чи коректно працює приймач з допомогою цих команд
./fobos_devinfo
./fobos_recorder
Так як SDRangel з FobosSDR буде працювати через прокладку SoapySDR, потрібно зібрати плагін підтримки. Інакше в програмі не буде видно приймача і ви не зможете ним керувати і отримувати з нього потік даних.
cd ~
git clone https://github.com/rigexpert/SoapyFobosSDR.git
cd SoapyFobosSDR
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig
Перевірте чи працює приймач через SoapySDR з допомогою команди.
SoapySDRUtil --probe="driver=fobos"
Якщо у вас так само як на цих малюнках, то мої вітання. У вас все вийшло. Ще один етап пройдено.
Час братися за збірку SDRangel.
Виконайте попередньо створення та налаштування необхідних для цього каталогів.
sudo mkdir -p /opt/build
sudo chown $USER:users /opt/build
sudo mkdir -p /opt/install
sudo chown $USER:users /opt/install
Однією такою великою командою довстановіть необхідні пакети.
sudo apt-get update && sudo apt-get -y install \
git cmake g++ pkg-config autoconf automake libtool libfftw3-dev libusb-1.0-0-dev libusb-dev libhidapi-dev libopengl-dev \
qtbase5-dev qtchooser libqt5multimedia5-plugins qtmultimedia5-dev libqt5websockets5-dev \
qttools5-dev qttools5-dev-tools libqt5opengl5-dev libqt5quick5 libqt5charts5-dev \
qml-module-qtlocation qml-module-qtpositioning qml-module-qtquick-window2 \
qml-module-qtquick-dialogs qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-layouts \
libqt5serialport5-dev qtdeclarative5-dev qtpositioning5-dev qtlocation5-dev libqt5texttospeech5-dev \
qtwebengine5-dev qtbase5-private-dev libqt5gamepad5-dev libqt5svg5-dev \
libfaad-dev libflac-dev zlib1g-dev libboost-all-dev libasound2-dev pulseaudio libopencv-dev libxml2-dev bison flex \
ffmpeg libavcodec-dev libavformat-dev libopus-dev doxygen graphviz
Зберіть з вихідних файлів всі нижчеперераховані залежності. Символ решітки вказує на назву модулю. Це коментар та орієнтир, щоб ви не загубилися в цьому морі команд. Вводяться лише команди. Поступово, акуратно, методично.
#APT
sudo apt -y install libsndfile-dev
cd /opt/build
git clone https://github.com/srcejon/aptdec.git
cd aptdec
git checkout libaptdec
git submodule update --init --recursive
mkdir build; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/aptdec ..
make -j $(nproc) install
#CM265cc
cd /opt/build
git clone https://github.com/f4exb/cm256cc.git
cd cm256cc
git reset --hard 6f4a51802f5f302577d6d270a9fc0cb7a1ee28ef
mkdir build; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/cm256cc ..
make -j $(nproc) install
#LibDAB
cd /opt/build
git clone https://github.com/srcejon/dab-cmdline
cd dab-cmdline/library
git checkout msvc
mkdir build; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libdab ..
make -j $(nproc) install
#MBElib
cd /opt/build
git clone https://github.com/szechyjs/mbelib.git
cd mbelib
git reset --hard 9a04ed5c78176a9965f3d43f7aa1b1f5330e771f
mkdir build; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/mbelib ..
make -j $(nproc) install
#SerialDV
cd /opt/build
git clone https://github.com/f4exb/serialDV.git
cd serialDV
git reset --hard "v1.1.4"
mkdir build; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/serialdv ..
make -j $(nproc) install
#DSDcc
cd /opt/build
git clone https://github.com/f4exb/dsdcc.git
cd dsdcc
git reset --hard "v1.9.5"
mkdir build; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/dsdcc -DUSE_MBELIB=ON -DLIBMBE_INCLUDE_DIR=/opt/install/mbelib/include -DLIBMBE_LIBRARY=/opt/install/mbelib/lib/libmbe.so -DLIBSERIALDV_INCLUDE_DIR=/opt/install/serialdv/include/serialdv -DLIBSERIALDV_LIBRARY=/opt/install/serialdv/lib/libserialdv.so ..
make -j $(nproc) install
#Codec2/FreeDV
sudo apt-get -y install libspeexdsp-dev libsamplerate0-dev
cd /opt/build
git clone https://github.com/drowe67/codec2-dev.git codec2
cd codec2
git reset --hard "v1.0.3"
mkdir build_linux; cd build_linux
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/codec2 ..
make -j $(nproc) install
#SGP4
cd /opt/build
git clone https://github.com/dnwrnr/sgp4.git
cd sgp4
mkdir build; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/sgp4 ..
make -j $(nproc) install
#LibSigMF
cd /opt/build
git clone https://github.com/f4exb/libsigmf.git
cd libsigmf
git checkout "new-namespaces"
mkdir build; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libsigmf ..
make -j $(nproc) install
#GGMorse
cd /opt/build
git clone https://github.com/ggerganov/ggmorse.git
cd ggmorse
mkdir build; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/ggmorse -DGGMORSE_BUILD_TESTS=OFF -DGGMORSE_BUILD_EXAMPLES=OFF ..
make -j $(nproc) install
Зберіть та встановіть модулі підтримки для своїх sdr приймачів. Можете зібрати всі, або лише ті, що вам потрібні.
#Airspy
cd /opt/build
git clone https://github.com/airspy/airspyone_host.git libairspy
cd libairspy
git reset --hard 37c768ce9997b32e7328eb48972a7fda0a1f8554
mkdir build; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libairspy ..
make -j $(nproc) install
#SDRplay RSP1
cd /opt/build
git clone https://github.com/f4exb/libmirisdr-4.git
cd libmirisdr-4
mkdir build; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libmirisdr ..
make -j $(nproc) install
#RTL-SDR
cd /opt/build
git clone https://github.com/osmocom/rtl-sdr.git librtlsdr
cd librtlsdr
git reset --hard 420086af84d7eaaf98ff948cd11fea2cae71734a
mkdir build; cd build
cmake -Wno-dev -DDETACH_KERNEL_DRIVER=ON -DCMAKE_INSTALL_PREFIX=/opt/install/librtlsdr ..
make -j $(nproc) install
#Pluto SDR
cd /opt/build
git clone https://github.com/analogdevicesinc/libiio.git
cd libiio
git reset --hard v0.21
mkdir build; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libiio -DINSTALL_UDEV_RULE=OFF ..
make -j $(nproc) install
#BladeRF
cd /opt/build
git clone https://github.com/Nuand/bladeRF.git
cd bladeRF/host
git reset --hard "2023.02"
mkdir build; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libbladeRF -DINSTALL_UDEV_RULES=OFF ..
make -j $(nproc) install
#HackRF
cd /opt/build
git clone https://github.com/greatscottgadgets/hackrf.git
cd hackrf/host
git reset --hard "v2022.09.1"
mkdir build; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libhackrf -DINSTALL_UDEV_RULES=OFF ..
make -j $(nproc) install
#LimeSDR
cd /opt/build
git clone https://github.com/myriadrf/LimeSuite.git
cd LimeSuite
git reset --hard "v20.01.0"
mkdir builddir; cd builddir
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/LimeSuite ..
make -j $(nproc) install
#AirspyHF
cd /opt/build
git clone https://github.com/airspy/airspyhf
cd airspyhf
git reset --hard 1af81c0ca18944b8c9897c3c98dc0a991815b686
mkdir build; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libairspyhf ..
make -j $(nproc) install
#Perseus
sudo apt -y install bsdmainutils
sudo apt -y install xxd
cd /opt/build
git clone https://github.com/f4exb/libperseus-sdr.git
cd libperseus-sdr
git checkout fixes
git reset --hard afefa23e3140ac79d845acb68cf0beeb86d09028
mkdir build; cd build
cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libperseus ..
make -j $(nproc)
make install
Нижченаведені модулі потрібні для роботи Фобоса, тому їх потрібно обов'язково зібрати.
#SoapySDR
cd /opt/build
git clone https://github.com/pothosware/SoapySDR.git
cd SoapySDR
mkdir build; cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/install/SoapySDR ..
make -j $(nproc) install
#Soapy Remote
sudo apt-get -y install libavahi-client-dev
cd /opt/build
git clone https://github.com/pothosware/SoapyRemote.git
cd SoapyRemote
git reset --hard "soapy-remote-0.5.1"
mkdir build; cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/install/SoapySDR -DSOAPY_SDR_INCLUDE_DIR=/opt/install/SoapySDR/include -DSOAPY_SDR_LIBRARY=/opt/install/SoapySDR/lib/libSoapySDR.so ..
make -j $(nproc) install
Зберіть SDRangel.
cd /opt/build
git clone https://github.com/f4exb/sdrangel.git
cd sdrangel
mkdir build; cd build
cmake -Wno-dev -DDEBUG_OUTPUT=ON -DRX_SAMPLE_24BIT=ON \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DMIRISDR_DIR=/opt/install/libmirisdr \
-DAIRSPY_DIR=/opt/install/libairspy \
-DAIRSPYHF_DIR=/opt/install/libairspyhf \
-DBLADERF_DIR=/opt/install/libbladeRF \
-DHACKRF_DIR=/opt/install/libhackrf \
-DRTLSDR_DIR=/opt/install/librtlsdr \
-DLIMESUITE_DIR=/opt/install/LimeSuite \
-DIIO_DIR=/opt/install/libiio \
-DPERSEUS_DIR=/opt/install/libperseus \
-DXTRX_DIR=/opt/install/xtrx-images \
-DSOAPYSDR_DIR=/opt/install/SoapySDR \
-DUHD_DIR=/opt/install/uhd \
-DAPT_DIR=/opt/install/aptdec \
-DCM256CC_DIR=/opt/install/cm256cc \
-DDSDCC_DIR=/opt/install/dsdcc \
-DSERIALDV_DIR=/opt/install/serialdv \
-DMBE_DIR=/opt/install/mbelib \
-DCODEC2_DIR=/opt/install/codec2 \
-DSGP4_DIR=/opt/install/sgp4 \
-DLIBSIGMF_DIR=/opt/install/libsigmf \
-DDAB_DIR=/opt/install/libdab \
-DGGMORSE_DIR=/opt/install/ggmorse \
-DCMAKE_INSTALL_PREFIX=/opt/install/sdrangel ..
make -j $(nproc) install
У SDRangel по замовчуванню не ввімкнена підтримка SoapySDR. Щоб її увімкнути потрібно ангела запускати з ключем --soapy
Запустіть її в консолі командою
/opt/install/sdrangel/bin/sdrangel --soapy
Перевірте журнал запуску. Він відображається в терміналі. Прокрутіть його догори. При вдалому завантаженні плагіна в ньому мають бути відповідні строки.
А тим часом на робочому столі з'явиться вікно програми.
Перше, що потрібно зробити, це додати радіо в програму. В головному меню є кніпочка, що називається Add Rx device.
І у випадному списку вибрати SoapySDR [2:0] fobos: Fobos SDR. Цифри в квадратних дужках у вас можуть відрізнятися. Це не критично.
Вікно прийме наступний вигляд. Натисніть ОК.
З'явиться панель керування приймачем та панель відображення спектру.
Коротко про кнопки.
Спробуйте повзунками вибрати рівень підсилення при якому приймач здатний прийняти ФМ станції. Приклад на малюнку.
Одразу звуку не буде тому що необхідно приєднати модулятор. Робиться це наступним чином. Я стрілкою вказав яку кнопку для цього потрібно нажати. Вона називається Add channels.
Тут як по аналогії вибору приймача. Тиснете на перевернутий трикутник.
Далі вибираєте WFM Demodulator.
Він відкриється у новому вікні.
Якщо ви вірно налаштувалися на частоту станції - почуєте в динаміках чи навушниках (в залежності що у вас підключено), що станція в даний момент передає.
Коротенько про кнопки, що присутні на панелі модулятора.
Програма насичена демодуляторами та різними кнопочками. Пробуйте та експериментуйте.
Хочу наголосити на те, що Soapy бачить лише вхід RX. Як відомо зі специфікації цей вхід працює від 25 МГц до 6 ГГц, тому щоб послухати короткі хвилі і все що знаходиться нижче 25 МГц потрібен буде апконвертер. Не забувайте будь ласка про це. Це стосується всіх програм, які взаємодіють з приймачем через Soapy.
До зустрічі !
73 ! de UT2YR
Комментариев нет:
Отправить комментарий