Last active
February 22, 2018 23:30
-
-
Save Schm1tz1/5f307d5a6cf7c97cb2991781ff6ca828 to your computer and use it in GitHub Desktop.
Script for building RTL-SDR-Stuff, Gnuradio, GQRX....
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
STD_PREFIX="/opt/radio" | |
HERE=$PWD | |
bold(){ | |
echo -e \\033[1m$*\\033[0m | |
} | |
boldn(){ | |
echo -n -e \\033[1m$*\\033[0m | |
} | |
skip(){ | |
n=0 | |
rcode=0 | |
progname=$1 | |
bold $NAME: The Programm "'"$progname"'" might already be installed. | |
while [ $n = 0 ] | |
do | |
boldn $NAME: Do you want to skip the installation \[Y/N\]? | |
read answer | |
case $answer in "") | |
;; y) rcode=0 ; n=1 | |
;; Y) rcode=0 ; n=1 | |
;; yes) rcode=0 ; n=1 | |
;; Yes) rcode=0 ; n=1 | |
;; YES) rcode=0 ; n=1 | |
;; n) rcode=1 ; n=1 | |
;; N) rcode=1 ; n=1 | |
;; no) rcode=1 ; n=1 | |
;; No) rcode=1 ; n=1 | |
;; NO) rcode=1 ; n=1 | |
;; | |
esac | |
done | |
return $rcode | |
} | |
pkg_prepare() { | |
cd $HERE | |
echo "Preaparing package config..." | |
sudo dnf -y erase 'gnuradio*' | |
sudo dnf -y erase 'libgruel-*' | |
sudo dnf -y erase 'libgruel*' | |
# works for fedora 22+ | |
sudo dnf -y groupinstall "Engineering and Scientific" "Development Tools" "Software Development Tools" "C Development Tools and Libraries" | |
#sudo dnf -y install fftw-devel cppunit-devel wxPython-devel boost-devel alsa-lib-devel numpy gsl-devel python-devel pygsl python-cheetah python-mako python-lxml PyOpenGL qt-devel PyQt4-devel qwt-devel qwtplot3d-qt4-devel libusbx-devel cmake python-docutils PyQwt PyQwt-devel gtk2-engines xmlrpc-c-"*" tkinter orc-devel python-sphinx SDL-devel swig perl-ZMQ-LibZMQ2 perl-ZMQ-LibZMQ2 zeromq zeromq-devel python-requests gcc-c++ doxygen zeromq-ada-devel cppzmq-devel perl-ZeroMQ amavisd-new-zeromq amavisd-new-snmp-zeromq php-zmq python-zmq czmq uwsgi-logger-zeromq comedilib comedilib-develpygtk2 ncurses-"*" thrift-devel python-thrift scipy | |
sudo dnf install fftw-devel cppunit-devel wxPython-devel libusb-devel \ | |
guile boost-devel alsa-lib-devel numpy gsl-devel python-devel pygsl \ | |
swig python-sphinx orc-devel orc-compiler doxygen python-docutils \ | |
python-cheetah python-lxml guile-devel PyOpenGL PyQt4-devel qwt-devel \ | |
qwtplot3d-qt4-devel cmake xmlto graphviz PyQwt PyQwt-devel zeromq-devel \ | |
python-zmq SDL-devel cmake make gcc gcc-c++ boost-devel scipy \ | |
thrift-devel python-thrift python-mako gpsd-devel cppzmq-devel | |
} | |
checkout_src(){ | |
cd $HERE | |
echo "Fetching source code from GitHub..." | |
# RTL-SDR modules and tools | |
#git clone --recursive https://github.com/osmocom/rtl-sdr.git | |
#git clone https://github.com/keenerd/rtl-sdr.git | |
git clone https://github.com/rtlsdrblog/rtl-sdr.git | |
# GNURADIO and add-ons | |
git clone --recursive http://git.gnuradio.org/git/gnuradio.git | |
git clone --recursive https://github.com/osmocom/gr-iqbal.git | |
git clone --recursive https://github.com/osmocom/gr-osmosdr.git | |
git clone --recursive https://github.com/balint256/gr-baz.git | |
git clone --recursive https://github.com/bastibl/gr-rds.git | |
# UHD | |
git clone --recursive https://github.com/EttusResearch/uhd | |
# GQRX based on above stuff | |
git clone --recursive https://github.com/csete/gqrx.git | |
# baudline | |
wget http://www.baudline.com/baudline_1.08_linux_x86_64.tar.gz | |
} | |
make_uhd(){ | |
cd $HERE | |
echo "Compiling UHD..." | |
cd uhd/host | |
test -d build && skip UHD && return 0 | |
test -d build && rm -fr build | |
mkdir build | |
cmake -DCMAKE_INSTALL_PREFIX=$STD_PREFIX .. | |
make -j3 && make install | |
cd $HERE | |
echo "Fetching UHD firmwares..." | |
uhd_images_downloader | |
} | |
make_sdr(){ | |
cd $HERE | |
echo "Compiling RTL_SDR..." | |
cd rtl-sdr | |
test -d build && skip RTL-SDR && return 0 | |
test -d build && rm -fr build | |
mkdir build | |
cd build | |
cmake -DDETACH_KERNEL_DRIVER=ON -DCMAKE_INSTALL_PREFIX=$STD_PREFIX .. | |
make -j3 && make install | |
cd .. | |
echo Adding udev-rules and restarting udevd... | |
sudo cp rtl-sdr.rules /etc/udev/rules.d/15-rtl-sdr.rules | |
sudo killall -HUP systemd-udevd | |
sudo udevadm control --reload | |
} | |
set_vars(){ | |
export LD_LIBRARY_PATH=$STD_PREFIX/lib:$STD_PREFIX/lib64:$LD_LIBRARY_PATH | |
#export LIBRARY_PATH=$STD_PREFIX/lib:$STD_PREFIX/lib64:$LIBRARY_PATH | |
export PYTHONPATH=$STD_PREFIX/lib64/python2.7/site-packages | |
export PATH=$STD_PREFIX/bin:$PATH | |
} | |
make_gr(){ | |
cd $HERE | |
echo "Compiling GNURADIO..." | |
cd gnuradio | |
test -d build && skip GNURADIO && return 0 | |
test -d build && rm -fr build | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=$STD_PREFIX .. | |
make -j3 && make install | |
} | |
make_addons(){ | |
cd $HERE | |
echo "Compiling gr-osmosdr..." | |
cd gr-osmosdr | |
test -d build && skip gr-osmosdr && return 0 | |
test -d build && rm -fr build | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=$STD_PREFIX .. | |
make -j3 && make install | |
cd $HERE | |
echo "Compiling gr-iqbal..." | |
cd gr-iqbal | |
test -d build && skip gr-iqbal && return 0 | |
test -d build && rm -fr build | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=$STD_PREFIX .. | |
make -j3 && make install | |
cd $HERE | |
echo "Compiling gr-baz..." | |
cd gr-baz | |
test -d build && skip gr-baz && return 0 | |
test -d build && rm -fr build | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=$STD_PREFIX .. | |
make -j3 && make install | |
cd $HERE | |
echo "Compiling gr-rds..." | |
cd gr-rds | |
test -d build && skip gr-rds && return 0 | |
test -d build && rm -fr build | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=$STD_PREFIX .. | |
make -j3 && make install | |
} | |
make_gqrx() { | |
cd $HERE | |
sudo dnf install -y qwt-qt5-devel | |
echo "Compiling GQRX..." | |
cd gqrx | |
test -d build && skip GQRX && return 0 | |
test -d build && rm -fr build | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=$STD_PREFIX .. | |
make -j3 && make install | |
} | |
make_linrad() { | |
cd $HERE | |
svn checkout svn://svn.code.sf.net/p/linrad/code/trunk linrad-code | |
cd linrad-code | |
./configure --prefix=$STD_PREFIX | |
make -j3 | |
} | |
make_redsea() { | |
cd $HERE | |
# redsea RDS decoder and libdsp dependencies | |
git clone --recursive https://github.com/jgaeddert/liquid-dsp.git | |
git clone --recursive https://github.com/windytan/redsea.git | |
cd liquid-dsp | |
./bootstrap.sh | |
./configure --prefix=$STD_PREFIX | |
make -j3 && make install | |
cd $HERE | |
cd redsea | |
autoreconf --install | |
./configure --prefix=$STD_PREFIX | |
# maybe you need to link/copy liquid headers and explicitly give LIBRARY_PATH if libs are not found by linker (or change options) | |
make -j3 && make install | |
} | |
make_inspectrum() { | |
cd $HERE | |
git clone git://github.com/jgaeddert/liquid-dsp.git | |
git clone --recursive https://github.com/miek/inspectrum.git | |
git clone https://github.com/tresacton/dspectrum.git | |
cd inspectrum | |
test -d build && skip inspectrum && return 0 | |
test -d build && rm -fr build | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=$STD_PREFIX .. | |
make -j3 && make install | |
} | |
make_rtl433() { | |
cd $HERE | |
git clnoe https://github.com/merbanan/rtl_433.git | |
cd rtl_433 | |
test -d build && skip rtl_433 && return 0 | |
test -d build && rm -fr build | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=$STD_PREFIX .. | |
make -j3 && make install | |
} | |
make_kalibrate() { | |
cd $HERE | |
git clone https://github.com/mutability/kalibrate-rtl.git | |
cd kalibrate-rtl | |
./bootstrap && CXXFLAGS='-W -Wall -O3' | |
./configure --prefix=$STD_PREFIX | |
make -j3 && make install | |
} | |
make_sdrangel() { | |
cd $HERE | |
sudo dnf install -y qt5-qtmultimedia qt5-qtmultimedia-devel lz4 lz4-devel libusb-devel qt5-qttools-devel | |
git clone https://github.com/nanomsg/nanomsg.git | |
cd nanomsg | |
test -d build && skip nanomsg && return 0 | |
test -d build && rm -fr build | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=$STD_PREFIX .. | |
make -j3 && make install | |
cd $HERE | |
git clone https://github.com/f4exb/sdrangel.git | |
cd sdrangel | |
test -d build && skip sdrangel && return 0 | |
test -d build && rm -fr build | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=$STD_PREFIX .. | |
make -j3 && make install | |
} | |
echo "Default install is going to $STD_PREFIX ! Please make sure you have permissions to that directory !" | |
read -p "Press the enter to continue." | |
# | |
# more or less standard packages | |
# | |
pkg_prepare | |
checkout_src | |
make_uhd | |
make_sdr | |
set_vars | |
make_gr | |
make_addons | |
make_gqrx | |
# | |
# additional tools | |
# | |
#make_linrad | |
#make_redsea | |
#make_inspectrum | |
#make_kalibrate | |
#make_sdrangel | |
echo "*** ALL DONE ! ***" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment