Ohjelmistoradio-ohjelmien asentaminen debianiin
RTL-SDR
Suosin itse keenerdin haaraa, koska siinä on muun muassa parannuksia viritinpiirin ohjaukseen. Mukana on myös skannaustyökalu rtl_power.
Asennus tehdään muistaakseni näin:
sudo apt-get install git cmake build-essential libusb-1.0-0-dev git clone https://github.com/keenerd/rtl-sdr cd rtl-sdr mkdir build cd build cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON make sudo make install sudo ldconfig
Linrad
Ota uusimman version tbz-tiedosto sivulta http://www.sm5bsz.com/linuxdsp/linrad.htm
Esimerkiksi versiolle 04.06:
sudo apt-get install nasm libx11-dev libasound2-dev portaudio19-dev tar jxvf lir04-06.tbz cd linrad-04.06/ ./configure make xlinrad64
Käyttö: mene samaan hakemistoon ja tee:
./xlinrad64
(32-bittisillä koneilla korvaa xlinrad64 xlinrad:lla)
SDRplay ja sitä varten itse käännetty gr-osmosdr ja gqrx
Ohje on suunnilleen SDRplayn oman ohjeen mukainen, mutta koko gnuradiota ei ole pakko kääntää itse.
Lataa ajuri: http://www.sdrplay.com/linuxdl.php
chmod +x SDRplay_RSP_MiricsAPI-Linux-1.95.3.run ./SDRplay_RSP_MiricsAPI-Linux-1.95.3.run
Jos olet jo asentanut gqrx:n tai gr-osmosdr:n, poista ne ensin: sudo apt-get autoremove gr-osmosdr gqrx-sdr
sudo apt-get install git cmake gnuradio-dev libboost-all-dev liblog4cpp5-dev libqt5svg5-dev qt5-default
Osoitteessa https://github.com/SDRplay/gr-osmosdr oli aiemmin bugikorjauksia gr-osmosdr:n SDRplay-tukeen, mutta se näyttää hävinneen internetistä. Voit kuitenkin lisätä korjaukset kopiomalla tästä patchin.
git clone git://git.osmocom.org/gr-osmosdr cd gr-osmosdr git apply -
diff --git a/lib/sdrplay/sdrplay_source_c.cc b/lib/sdrplay/sdrplay_source_c.cc index 9a9ee40..93e4095 100644 --- a/lib/sdrplay/sdrplay_source_c.cc +++ b/lib/sdrplay/sdrplay_source_c.cc @@ -1,6 +1,7 @@ /* -*- c++ -*- */ /* - * Copyright 2015 SDRplay Ltd <support@sdrplay.com> + * SDRplay interface initial code by Mirics Ltd + * additional code and fixes by Doug Lung * Copyright 2012 Dimitri Stolnikov <horiz0n@gmx.net> * Copyright 2012 Steve Markgraf <steve@steve-m.de> * @@ -142,11 +143,17 @@ sdrplay_source_c::sdrplay_source_c (const std::string &args) */ sdrplay_source_c::~sdrplay_source_c () { - free(_dev); - _dev = NULL; + if (_dev != NULL) + { + free(_dev); + _dev = NULL; + } _buf_mutex.lock(); + std::cerr << "in destructor: _running=" << _running << std::endl; if (_running) { + std::cerr << "mir_sdr_Uninit started" << std::endl; + mir_sdr_Uninit(); _running = false; } _uninit = true; @@ -233,11 +240,20 @@ int sdrplay_source_c::work( int noutput_items, if (_buf_offset) { - for (int i = _buf_offset; i < _dev->samplesPerPacket; i++) + for (int i = _buf_offset; (i < _dev->samplesPerPacket) && (i < (cnt + _buf_offset)); i++) { *out++ = gr_complex( float(_bufi[i]) * (1.0f/2048.0f), float(_bufq[i]) * (1.0f/2048.0f) ); } - cnt -= (_dev->samplesPerPacket - _buf_offset); + if (cnt >= (_dev->samplesPerPacket - _buf_offset)) + { + cnt -= (_dev->samplesPerPacket - _buf_offset); + _buf_offset = 0; + } + else + { + _buf_offset += cnt; + cnt = 0; + } } while ((cnt - _dev->samplesPerPacket) >= 0) @@ -250,7 +266,6 @@ int sdrplay_source_c::work( int noutput_items, cnt -= _dev->samplesPerPacket; } - _buf_offset = 0; if (cnt) { mir_sdr_ReadPacket(_bufi.data(), _bufq.data(), &sampNum, &grChanged, &rfChanged, &fsChanged);
(paina tässä välissä ctrl+d)
mkdir build cd build cmake ../ -DENABLE_NONFREE=TRUE -DENABLE_AIRSPY=OFF -DENABLE_BLADERF=OFF make sudo make install sudo ldconfig
(Jätin airspyn ja bladerf:n tuen pois, koska ainakin ylämontun koneella niitä kääntäessä tuli virheitä eikä huvittanut selvittää asiaa sen enempää.)
git clone http://github.com/csete/gqrx mkdir build cd build cmake .. make sudo make install