Попробую описывать подробно :) Хотя в результате пока 100% не уверен. Все нетривиально т.к. версии библиотек постоянно изменяются, ну и "железо" разное. У меня нет отдельного компа под Linux поэтому решил пробовать на Raspberry Pi 4.
1. SoapySDR
Эта библиотека используется для доступа к железу. Первая тонкость, последняя версия 0.8 не подходит, у них поменялись какие-то функции, надо ставить 0.7.
sudo apt-get update
sudo apt-get install build-essential autoconf gcc make cmake libasound2-dev pkg-config
wget
https://github.com/pothosware/SoapySDR/archive/refs/tags/soapy-sdr-0.7.2.tar.gz
tar -xf soapy-sdr-0.7.2.tar.gz
cd SoapySDR-soapy-sdr-0.7.2 && mkdir build && cd build
cmake ..
make -j4 && sudo make install && sudo ldconfig
cd ../..
После этого в консоли должна работать команда "SoapySDRUtil --info", которая должна показывать что-то типа
##################################
## Soapy SDR -- the SDR abstraction library ##
##################################
Available factories... none
Далее ставим библиотеки в зависимости от того, что планируем использовать. Есть 3 варианта: Audio (звуковая карта), UHD (USRP), Lime-Suite (LimeSDR). Лучше имхо ставить только то, что нужно, у меня в противном случае почему-то выбиралось не то устройство.
1.1 SoapyAudio
wget
https://github.com/pothosware/SoapyAudio/archive/refs/tags/soapy-audio-0.1.1.tar.gz
tar -xf soapy-audio-0.1.1.tar.gz
cd SoapyAudio-soapy-audio-0.1.1
mkdir build && cd build
cmake ..
make -j4 && sudo make install && sudo ldconfig
cd ../..
1.2 UHD (USRP)
sudo apt-get install libuhd-dev uhd-host
wget
https://github.com/pothosware/SoapyUHD/archive/refs/tags/soapy-uhd-0.4.1.tar.gz
tar -xf soapy-uhd-0.4.1.tar.gz
cd SoapyUHD-soapy-uhd-0.4.1
mkdir build && cd build
cmake ..
make -j4 && sudo make install && sudo ldconfig
cd ../..
1.3 LimeSDR
wget
https://github.com/myriadrf/LimeSuite/archive/refs/tags/v20.10.0.tar.gz
tar -xf v20.10.0.tar.gz
cd LimeSuite-20.10.0
mkdir build && cd build
cmake ..
make -j4 && sudo make install && sudo ldconfig
cd ../..
2. Osmocom-analog
git clone git://git.osmocom.org/osmocom-analog
cd osmocom-analog
autoreconf -if
./configure
make -j4
sudo make install
cd ..
Запуск
С компиляцией вроде все ок. Можно запустить командную строку и попробовать передать например сигнал PAL:
osmotv --sdr-soapy --sdr-tx-gain 60 -r 15000000 -c 21 --sdr-bandwidth 1500000 tx-fubk
Чтобы узнать имена антенных входов-выходов на SDR, можно запустить SoapySDRUtil --probe
Можно например запустить поддержку немецкой сети C-Netz и увидеть красивую картинку:
cnetz --sdr-soapy --sdr-rx-gain 30 --sdr-tx-gain 30 --sdr-samplerate 5000000 --sdr-bandwidth 15000000 -s 100000 -k 131 -k 135 -C 0,0
Увеличить
Die Mauer ist gefallen, забавно :)
В общем, трансмиттер запускается, но похоже скорости Raspberry Pi таки не хватает.
Но вот с AMPS как раз облом. Команда amps --sdr-soapy --channel 334 возвращает ошибку "231 error : No device for transceiver!"
Теоретически, можно запустить режим со звуковой картой, командой: amps -k 334 -F yes -p -d Но подходящего трансивера для звуковой карты у меня все равно нет, так что проверить не могу. Если у кого есть линукс-комп со звуковой картой, интересно было бы посмотреть результаты.
Описание работы с AMPS есть здесь, но про SDR там ни слова:
http://osmocom-analog.eversberg.eu/docs/amps.html