Last active
July 27, 2023 19:48
-
-
Save onetransistor/4cbe3a8ab5d47da22cde to your computer and use it in GitHub Desktop.
Script to compile and install Dream DRM receiver software on Ubuntu
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 | |
# *** Script to compile and install Dream DRM receiver software on Ubuntu | |
# *** and other APT based distros. | |
# *** More at: http://onetransistor.blogspot.com/2015/12/compile-install-dream-drm-linux.html | |
# *** based on instructions at: http://drm.sourceforge.net/wiki/index.php/Building_on_apt_based_distros | |
set -e | |
QMAKE_EXEC=qmake-qt4 | |
MAKE_ARGS=-j3 | |
# 1. Install required dependencies | |
sudo apt install libhamlib2 libqwt6abi1 | |
sudo apt install g++ unzip make qt4-dev-tools automake libtool libtool-bin libqtwebkit-dev libqtwebkit4 libqt5webkit5-dev libpulse-dev libhamlib-dev libfftw3-dev libqwt-dev libsndfile1-dev zlib1g-dev libgl1-mesa-dev libqt4-opengl-dev | |
# 2. Build and install FAAD2 library | |
wget http://downloads.sourceforge.net/faac/faad2-2.7.tar.gz | |
tar zxf faad2-2.7.tar.gz | |
cd faad2-2.7 | |
. bootstrap | |
./configure --enable-shared --without-xmms --with-drm --without-mpeg4ip | |
make $MAKE_ARGS | |
sudo cp include/faad.h include/neaacdec.h /usr/include | |
sudo cp libfaad/.libs/libfaad.so.2.0.0 /usr/local/lib/libfaad2_drm.so.2.0.0 | |
sudo ln -s /usr/local/lib/libfaad2_drm.so.2.0.0 /usr/local/lib/libfaad2_drm.so.2 | |
sudo ln -s /usr/local/lib/libfaad2_drm.so.2.0.0 /usr/local/lib/libfaad2_drm.so | |
cd .. | |
# 3. Build and install FAAC library | |
wget http://downloads.sourceforge.net/faac/faac-1.28.tar.gz | |
tar zxf faac-1.28.tar.gz | |
cd faac-1.28 | |
. bootstrap | |
./configure --with-pic --enable-shared --without-mp4v2 --enable-drm | |
make $MAKE_ARGS | |
sudo cp include/faaccfg.h include/faac.h /usr/include | |
sudo cp libfaac/.libs/libfaac.so.0.0.0 /usr/local/lib/libfaac_drm.so.0.0.0 | |
sudo ln -s /usr/local/lib/libfaac_drm.so.0.0.0 /usr/local/lib/libfaac_drm.so.0 | |
sudo ln -s /usr/local/lib/libfaac_drm.so.0.0.0 /usr/local/lib/libfaac_drm.so | |
cd .. | |
# 4. Build and install Dream | |
wget http://downloads.sourceforge.net/drm/dream-2.1.1-svn808.tar.gz | |
tar zxf dream-2.1.1-svn808.tar.gz | |
cd dream | |
sed -i -- 's#$$OUT_PWD#/usr#g' dream.pro | |
sed -i -- 's#faad_drm#faad2_drm#g' dream.pro | |
$QMAKE_EXEC | |
make $MAKE_ARGS | |
sudo cp dream /usr/local/bin/dream | |
sudo cp src/GUI-QT/res/MainIcon.svg /usr/share/icons/dream.svg | |
printf "[Desktop Entry]\nVersion=1.0\nType=Application\nName=Dream\nComment=Software Digital Radio Mondiale Receiver\nTryExec=/usr/local/bin/dream\nExec=/usr/local/bin/dream\nIcon=dream.svg\nCategories=Audio;AudioVideo;Science;Electronics\n" | tee dream.desktop | |
cp dream.desktop ~/.local/share/applications/dream.desktop | |
cd .. | |
sudo ldconfig | |
# 5. Cleanup | |
rm dream-2.1.1-svn808.tar.gz | |
rm faac-1.28.tar.gz | |
rm faad2-2.7.tar.gz | |
rm -rf ./dream | |
rm -rf ./faac-1.28 | |
rm -rf ./faad2-2.7 | |
# Optional: uncomment to remove dev libs | |
#sudo apt -y purge qt4-dev-tools automake libtool libtool-bin libqt5webkit5-dev libpulse-dev libhamlib-dev libfftw3-dev libqwt-dev libsndfile-dev | |
#sudo apt -y autoremove |
I am trying this on Ubuntu 14.04.5 (32bits) and what happens is that after making dream, it crashes with Segmentation fault (core dumped)
Also I needed to use qt5 (qt4 will not work)
Making faac and faad2 did go with many warning messages.
~/Downloads/SDR/dream$ qmake
Project MESSAGE: Qt 5 release GUI mode
Project MESSAGE: building on Linux
Project MESSAGE: with FAAD2
Project MESSAGE: with FAAC
Project MESSAGE: with libsndfile
Project MESSAGE: with hamlib
Project MESSAGE: with pulseaudio
Then
~/Downloads/SDR/dream$ make
g++ -Wl,-O1 -Wl,-rpath-link,/usr/lib/i386-linux-gnu -o dream obj/Pacer.o obj/Hamlib.o obj/Rig.o obj/RigDlg.o obj/drm_pulseaudio.o
obj/AMDemodulation.o obj/AMSSDemodulation.o obj/ChanEstTime.o obj/ChannelEstimation.o obj/IdealChannelEstimation.o
obj/TimeLinear.o obj/TimeWiener.o obj/DABMOT.o obj/DataDecoder.o obj/DataEncoder.o obj/epgutil.o obj/Experiment.o
obj/Journaline.o obj/crc_8_16.o obj/dabdgdec_impl.o obj/log.o obj/newsobject.o obj/newssvcdec_impl.o obj/NML.o obj/Splitter.o
obj/MOTSlideShow.o obj/DataIO.o obj/ChannelSimulation.o obj/DrmReceiver.o obj/DRMSignalIO.o obj/DrmSimulation.o
obj/DrmTransmitter.o obj/FAC.o obj/main.o obj/InputResample.o obj/BlockInterleaver.o obj/SymbolInterleaver.o obj/IQInputFilter.o
obj/MatlibSigProToolbox.o obj/MatlibStdToolbox.o obj/AFPacketGenerator.o obj/MDIDecode.o obj/MDIInBuffer.o obj/MDIRSCI.o
obj/MDITagItemDecoders.o obj/MDITagItems.o obj/PacketSinkFile.o obj/PacketSocket.o obj/PacketSourceFile.o obj/Pft.o
obj/RCITagItems.o obj/RSCITagItemDecoders.o obj/RSISubscriber.o obj/TagPacketDecoder.o obj/TagPacketDecoderMDI.o
obj/TagPacketDecoderRSCIControl.o obj/TagPacketGenerator.o obj/BitInterleaver.o obj/ChannelCode.o obj/ConvEncoder.o
obj/EnergyDispersal.o obj/Metric.o obj/MLC.o obj/QAMMapping.o obj/TrellisUpdateMMX.o obj/TrellisUpdateSSE2.o
obj/ViterbiDecoder.o obj/MSCMultiplexer.o obj/CellMappingTable.o obj/OFDMCellMapping.o obj/OFDM.o obj/Parameter.o
obj/PlotManager.o obj/ReceptLog.o obj/Resample.o obj/ResampleFilter.o obj/Scheduler.o obj/SDCReceive.o obj/SDCTransmit.o
obj/ServiceInformation.o obj/SimulationParameters.o obj/audiofilein.o obj/aac_codec.o obj/AudioCodec.o obj/AudioSourceDecoder.o
obj/AudioSourceEncoder.o obj/null_codec.o obj/opus_codec.o obj/FreqSyncAcq.o obj/SyncUsingPil.o obj/TimeSync.o
obj/TimeSyncFilter.o obj/TimeSyncTrack.o obj/TableCarMap.o obj/TableFAC.o obj/TableStations.o obj/TextMessage.o obj/CRC.o
obj/FileTyper.o obj/LogPrint.o obj/Reassemble.o obj/Settings.o obj/Utilities.o obj/Version.o obj/Logging.o obj/EPG.o obj/epgdec.o
obj/Util.o obj/BWSViewer.o obj/AnalogDemDlg.o obj/CodecParams.o obj/CWindow.o obj/DialogUtil.o obj/DRMPlot.o obj/EPGDlg.o
obj/EvaluationDlg.o obj/fdrmdialog.o obj/fmdialog.o obj/GeneralSettingsDlg.o obj/jlbrowser.o obj/JLViewer.o obj/LiveScheduleDlg.o
obj/MultColorLED.o obj/MultSettingsDlg.o obj/Schedule.o obj/SlideShowViewer.o obj/SoundCardSelMenu.o obj/StationsDlg.o
obj/TransmDlg.o obj/qrc_icons.o obj/moc_Rig.o obj/moc_RigDlg.o obj/moc_Logging.o obj/moc_BWSViewer.o
obj/moc_AnalogDemDlg.o obj/moc_CodecParams.o obj/moc_CWindow.o obj/moc_DialogUtil.o obj/moc_DRMPlot.o
obj/moc_EPGDlg.o obj/moc_EvaluationDlg.o obj/moc_fdrmdialog.o obj/moc_fmdialog.o obj/moc_GeneralSettingsDlg.o
obj/moc_jlbrowser.o obj/moc_JLViewer.o obj/moc_LiveScheduleDlg.o obj/moc_MultColorLED.o obj/moc_MultSettingsDlg.o
obj/moc_SlideShowViewer.o obj/moc_SoundCardSelMenu.o obj/moc_StationsDlg.o obj/moc_TransmDlg.o
-L/usr/lib -ldl -lrt -lfftw3 -lz -lfaad2_drm -lfaac_drm -lsndfile -lhamlib -lqwt -lpulse -lQt5WebKitWidgets -L/usr/lib/i386-linux-gnu
-lQt5Quick -lQt5OpenGL -lQt5PrintSupport -lQt5Location -lQt5WebKit -lQt5Qml -lQt5Widgets -lQt5Positioning -lQt5Sensors -lQt5Xml
-lQt5Network -lQt5Gui -lQt5Core -lGL -lpthread
Then
~/Downloads/SDR/dream$ dream
Segmentation fault (core dumped)
Can you help? Any suggestions ?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
In order to properly build the Dream I had to install also libqt4-opengl-dev.
Linux Mint 18 MATE.