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