FreeDV on xubuntu 13.04

70 views
Skip to first unread message

Jonathan Coles

unread,
May 18, 2013, 2:34:23 PM5/18/13
to digita...@googlegroups.com
I'm a shortwave listener who sometimes likes to listen to the ham bands.

On my Xubuntu 13.04 system, I can't install the Ubuntu 12.04 FreeDV binary because it requires an (outdated?) libsox1b library, while libsox2 is what is available to me from Ubuntu.

I can install the Debian Wheezy binary, but it doesn't completely work. The Audio Config setup confirms audio input and output, but on the main screen there is no signal displayed in Waterfall, Spectrum, etc. Selecting Tools > Filter causes a segfault.

Compiling from source is a last resort for me. It's a bit more confusing than usual because FreeDV is made from parts of a larger project called Freetel. I understand that I need to build only the codec2-dev and fdmdv2 projects. Unfortunately, my compile of fdmdv2 ends in error because I don't have "portaudio-2.0", which is not available from the Ubuntu repositories.

Any suggestions on how to proceed?

Steve

unread,
May 18, 2013, 6:43:37 PM5/18/13
to digita...@googlegroups.com
The question would be, if you really need Version 13 OS.  If not, load the old version.

Jonathan Coles

unread,
May 18, 2013, 9:38:10 PM5/18/13
to digita...@googlegroups.com
I have the luxury of VirtualBox. So I installed Ubuntu 12.04
and FreeDV. Same result as with the Debian Wheezy binary on
13.04: the Audio Config setup confirms audio input and
output, but on the main screen there is nothing displayed in
Waterfall, Spectrum, etc.

Console messages suggest problems finding my audio hardware:
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM
cards.pcm.rear
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM
cards.pcm.center_lfe
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM
cards.pcm.side
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM
cards.pcm.surround71
ALSA lib setup.c:565:(add_elem) Cannot obtain info for CTL
elem (MIXER,'IEC958 Playback Default',0,0,0): No such file
or directory
ALSA lib setup.c:565:(add_elem) Cannot obtain info for CTL
elem (MIXER,'IEC958 Playback Default',0,0,0): No such file
or directory
ALSA lib setup.c:565:(add_elem) Cannot obtain info for CTL
elem (MIXER,'IEC958 Playback Default',0,0,0): No such file
or directory
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM
cards.pcm.hdmi
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM
cards.pcm.hdmi
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM
cards.pcm.modem
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM
cards.pcm.modem
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM
cards.pcm.phoneline
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM
cards.pcm.phoneline
ALSA lib audio/pcm_bluetooth.c:1614:(audioservice_expect)
BT_GET_CAPABILITIES failed : Input/output error(5)
ALSA lib audio/pcm_bluetooth.c:1614:(audioservice_expect)
BT_GET_CAPABILITIES failed : Input/output error(5)
ALSA lib audio/pcm_bluetooth.c:1614:(audioservice_expect)
BT_GET_CAPABILITIES failed : Input/output error(5)
ALSA lib audio/pcm_bluetooth.c:1614:(audioservice_expect)
BT_GET_CAPABILITIES failed : Input/output error(5)
ALSA lib pcm_dmix.c:957:(snd_pcm_dmix_open) The dmix plugin
supports only playback stream
Cannot connect to server socket err = No such file or directory
Cannot connect to server socket
jack server is not running or cannot be started
EXCHANGE_DATA_IN:
g_nSoundCards: 1
g_soundCard1InDeviceNum: 0
g_soundCard1OutDeviceNum: 6
g_soundCard1SampleRate: 44100
g_soundCard2InDeviceNum: -1
g_soundCard2OutDeviceNum: -1
g_soundCard2SampleRate: -1
setting focus of 0
setting focus of 5
rxInAudioDeviceNum: 0
rxOutAudioDeviceNum: 6
txInAudioDeviceNum: -1
txOutAudioDeviceNum: -1

No missing dependencies were listed at install time.
Installing jackd made no difference. No idea how to proceed
in Linux.
Perhaps I'll try my luck with the Windows version.

On 13-05-18 06:43 PM, Steve wrote:
> The question would be, if you really need Version 13 OS.
> If not, load the old version.
>
> --
> You received this message because you are subscribed to
> the Google Groups "digitalvoice" group.
> To unsubscribe from this group and stop receiving emails
> from it, send an email to
> digitalvoice...@googlegroups.com.
> To post to this group, send email to
> digita...@googlegroups.com.
> Visit this group at
> http://groups.google.com/group/digitalvoice?hl=en-US.
> For more options, visit
> https://groups.google.com/groups/opt_out.
>
>

Joel Stanley

unread,
May 19, 2013, 1:15:24 AM5/19/13
to digita...@googlegroups.com
Hi Jonathan,

On Sun, May 19, 2013 at 4:04 AM, Jonathan Coles <jcole...@rogers.com> wrote:

> Compiling from source is a last resort for me. It's a bit more confusing
> than usual because FreeDV is made from parts of a larger project called
> Freetel. I understand that I need to build only the codec2-dev and fdmdv2
> projects. Unfortunately, my compile of fdmdv2 ends in error because I don't
> have "portaudio-2.0", which is not available from the Ubuntu repositories.

In order to get up and running quickly, I suggest you do the following:

$ svn co https://freetel.svn.sourceforge.net/svnroot/freetel/fdmdv2
$ cd fdmdv2/src
$ make -f Makefile.linux
$ ./freedv

This is slow, as it will download all of the dependencies and then
statically link freedv against them.

In the medium term, there are a number of wheels in motion that will
make it easier for you to run freedv. This include a camke based build
system that detects and uses system dependencies, as well as various
packaging efforts.

Cheers,

Joel

Jonathan Coles

unread,
May 19, 2013, 7:55:33 AM5/19/13
to digita...@googlegroups.com
Thanks for the suggestion, Joel. But that's practically the
same compilation attempt that I made before. But I'm trying
it again.
Last time I built codec2-dev myself, but I see this time
your Makefile is building it within the src directory.

This time, the fdmdv2 INSTALL file isn't empty. The
instructions inside differ from yours. They include some
./configure incantations. So there's yet another attempt I
can make. Your instructions are the same as the ones in
README.linux. For someone like me who is not a professional
software developer, contradictory sets of instructions or
other information make the task even more confusing.

Result:

Unfortunately you don't download and build portaudio-2.0. I
cannot find this package in Synaptic and do not know how I
would obtain it or how safe it would be to add it to my
machine that already has ALSA, PulseAudio, maybe even Jack.

The compilation ends with a long stream of errors:

make[1]: Leaving directory
`/home/jont/freedv/fdmdv2/src/libctb-0.16/build'
Package portaudio-2.0 was not found in the pkg-config search
path.
Perhaps you should add the directory containing
`portaudio-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'portaudio-2.0' found
g++ -D_NO_AUTOTOOLS_
-I/home/jont/freedv/fdmdv2/src/wxWidgets-2.9.4/build_gtk/lib/wx/include/gtk2-unicode-2.9
-I/home/jont/freedv/fdmdv2/src/wxWidgets-2.9.4/include
-D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread
-Icodec2-dev/src -Isox-14.4.0/src/ -Ilibctb-0.16/include -I.
-g -Wall -O3 -DSVN_REVISION='"1250"' -MMD -MP -c
topFrame.cpp -o topFrame.o
topFrame.cpp: In constructor �TopFrame::TopFrame(wxWindow*,
wxWindowID, const wxString&, const wxPoint&, const wxSize&,
long int)�:
topFrame.cpp:71:17: warning: variable
�m_menuItemCaptTxInStream� set but not used
[-Wunused-but-set-variable]
topFrame.cpp:194:17: warning: variable �bSizer141� set but
not used [-Wunused-but-set-variable]
Package portaudio-2.0 was not found in the pkg-config search
path.
Perhaps you should add the directory containing
`portaudio-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'portaudio-2.0' found
g++ -D_NO_AUTOTOOLS_
-I/home/jont/freedv/fdmdv2/src/wxWidgets-2.9.4/build_gtk/lib/wx/include/gtk2-unicode-2.9
-I/home/jont/freedv/fdmdv2/src/wxWidgets-2.9.4/include
-D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread
-Icodec2-dev/src -Isox-14.4.0/src/ -Ilibctb-0.16/include -I.
-g -Wall -O3 -DSVN_REVISION='"1250"' -MMD -MP -c
fdmdv2_main.cpp -o fdmdv2_main.o
In file included from fdmdv2_main.h:71:0,
from fdmdv2_main.cpp:22:
fdmdv2_pa_wrapper.h:44:9: error: �PaStreamCallback� does not
name a type
fdmdv2_pa_wrapper.h:45:9: error: �PaStreamFinishedCallback�
does not name a type
fdmdv2_pa_wrapper.h:46:15: error: �PaStreamCallbackTimeInfo�
does not name a type
fdmdv2_pa_wrapper.h:48:9: error: �PaStreamParameters� does
not name a type
fdmdv2_pa_wrapper.h:49:9: error: �PaStreamParameters� does
not name a type
fdmdv2_pa_wrapper.h:52:9: error: �PaStreamCallbackFlags�
does not name a type
fdmdv2_pa_wrapper.h:60:9: error: �PaDeviceIndex� does not
name a type
fdmdv2_pa_wrapper.h:61:9: error: �PaDeviceIndex� does not
name a type
fdmdv2_pa_wrapper.h:62:9: error: �PaStreamParameters� does
not name a type
fdmdv2_pa_wrapper.h:68:41: error: �PaStreamCallback� has not
been declared
fdmdv2_pa_wrapper.h:69:65: error: �PaStreamCallback� has not
been declared
In file included from fdmdv2_main.h:71:0,
from fdmdv2_main.cpp:22:
fdmdv2_pa_wrapper.h:70:73: error: �PaStreamFinishedCallback�
has not been declared
fdmdv2_pa_wrapper.h:72:50: error: �PaStreamParameters� does
not name a type
fdmdv2_pa_wrapper.h:72:70: error: ISO C++ forbids
declaration of �inputBuffer� with no type [-fpermissive]
fdmdv2_pa_wrapper.h:73:44: error: �PaDeviceIndex� has not
been declared
fdmdv2_pa_wrapper.h:78:45: error: �PaTime� has not been declared
fdmdv2_pa_wrapper.h:80:9: error: �PaTime� does not name a type
fdmdv2_pa_wrapper.h:81:30: error: expected �;� at end of
member declaration
fdmdv2_pa_wrapper.h:81:58: error: expected �)� before �dev�
fdmdv2_pa_wrapper.h:83:45: error: �PaDeviceIndex� has not
been declared
fdmdv2_pa_wrapper.h:87:46: error: �PaTime� has not been declared
fdmdv2_pa_wrapper.h:89:9: error: �PaTime� does not name a type
fdmdv2_pa_wrapper.h:92:51: error: �PaStreamParameters� does
not name a type
fdmdv2_pa_wrapper.h:92:71: error: ISO C++ forbids
declaration of �outputBuffer� with no type [-fpermissive]
fdmdv2_pa_wrapper.h:93:41: error: �PaStreamCallbackTimeInfo�
has not been declared
fdmdv2_pa_wrapper.h:96:29: error: �PaStreamParameters� does
not name a type
fdmdv2_pa_wrapper.h:97:29: error: �PaStreamParameters� does
not name a type
fdmdv2_pa_wrapper.h:98:29: error: �PaStreamCallbackFlags�
does not name a type
In file included from fdmdv2_main.h:71:0,
from fdmdv2_main.cpp:22:
fdmdv2_pa_wrapper.h: In member function �int
PortAudioWrap::getDeviceCount()�:
fdmdv2_pa_wrapper.h:59:73: error: �Pa_GetDeviceCount� was
not declared in this scope
fdmdv2_pa_wrapper.h: In member function �PaError
PortAudioWrap::setStreamCallback(PortAudioStream*, int*)�:
fdmdv2_pa_wrapper.h:69:95: error: �m_pStreamCallback� was
not declared in this scope
In file included from fdmdv2_main.h:71:0,
from fdmdv2_main.cpp:22:
fdmdv2_pa_wrapper.h: In member function �void
PortAudioWrap::setInputBuffer(const int&)�:
fdmdv2_pa_wrapper.h:72:92: error: �class PortAudioWrap� has
no member named �m_inputBuffer�
fdmdv2_pa_wrapper.h: In member function �void
PortAudioWrap::setOutputBuffer(const int&)�:
fdmdv2_pa_wrapper.h:92:92: error: �class PortAudioWrap� has
no member named �m_outputBuffer�
fdmdv2_pa_wrapper.h: In member function �void
PortAudioWrap::setTimeInfo(int*)�:
fdmdv2_pa_wrapper.h:93:92: error: �class PortAudioWrap� has
no member named �m_pTimeInfo�
In file included from fdmdv2_main.cpp:22:0:
fdmdv2_main.h: At global scope:
fdmdv2_main.h:337:39: error: �PaStreamCallbackTimeInfo� does
not name a type
fdmdv2_main.h:337:65: error: ISO C++ forbids declaration of
�outTime� with no type [-fpermissive]
fdmdv2_main.h:338:33: error: �PaStreamCallbackFlags� has not
been declared
fdmdv2_main.h:346:39: error: �PaStreamCallbackTimeInfo� does
not name a type
fdmdv2_main.h:346:65: error: ISO C++ forbids declaration of
�outTime� with no type [-fpermissive]
fdmdv2_main.h:347:33: error: �PaStreamCallbackFlags� has not
been declared
fdmdv2_main.cpp: In member function �virtual void
MainFrame::OnToolsComCfg(wxCommandEvent&)�:
fdmdv2_main.cpp:1442:13: warning: unused variable
�iLineState� [-Wunused-variable]
fdmdv2_main.cpp: In member function �void
MainFrame::initPortAudioDevice(PortAudioWrap*, int, int,
int, int, int)�:
fdmdv2_main.cpp:1793:29: error: �class PortAudioWrap� has no
member named �getInputDefaultLowLatency�
fdmdv2_main.cpp:1801:30: error: �class PortAudioWrap� has no
member named �getOutputDefaultLowLatency�
fdmdv2_main.cpp: In member function �void
MainFrame::startRxStream()�:
fdmdv2_main.cpp:1946:49: error: no matching function for
call to �PortAudioWrap::setCallback(int (&)(const void*,
void*, long unsigned int, const int*, int, void*))�
fdmdv2_main.cpp:1946:49: note: candidate is:
In file included from fdmdv2_main.h:71:0,
from fdmdv2_main.cpp:22:
fdmdv2_pa_wrapper.h:68:29: note: PaError
PortAudioWrap::setCallback(int*)
fdmdv2_pa_wrapper.h:68:29: note: no known conversion for
argument 1 from �int(const void*, void*, long unsigned int,
const int*, int, void*)� to �int*�
fdmdv2_main.cpp:1985:53: error: no matching function for
call to �PortAudioWrap::setCallback(int (&)(const void*,
void*, long unsigned int, const int*, int, void*))�
fdmdv2_main.cpp:1985:53: note: candidate is:
In file included from fdmdv2_main.h:71:0,
from fdmdv2_main.cpp:22:
fdmdv2_pa_wrapper.h:68:29: note: PaError
PortAudioWrap::setCallback(int*)
fdmdv2_pa_wrapper.h:68:29: note: no known conversion for
argument 1 from �int(const void*, void*, long unsigned int,
const int*, int, void*)� to �int*�
fdmdv2_main.cpp: At global scope:
fdmdv2_main.cpp:2397:35: error: �PaStreamCallbackTimeInfo�
does not name a type
fdmdv2_main.cpp:2397:61: error: ISO C++ forbids declaration
of �timeInfo� with no type [-fpermissive]
fdmdv2_main.cpp:2398:29: error: �PaStreamCallbackFlags� has
not been declared
fdmdv2_main.cpp: In static member function �static int
MainFrame::rxCallback(const void*, void*, long unsigned int,
const int*, int, void*)�:
fdmdv2_main.cpp:2460:12: error: �paContinue� was not
declared in this scope
fdmdv2_main.cpp: At global scope:
fdmdv2_main.cpp:2952:35: error: �PaStreamCallbackTimeInfo�
does not name a type
fdmdv2_main.cpp:2952:61: error: ISO C++ forbids declaration
of �outTime� with no type [-fpermissive]
fdmdv2_main.cpp:2953:29: error: �PaStreamCallbackFlags� has
not been declared
fdmdv2_main.cpp: In static member function �static int
MainFrame::txCallback(const void*, void*, long unsigned int,
const int*, int, void*)�:
fdmdv2_main.cpp:3011:12: error: �paContinue� was not
declared in this scope
fdmdv2_main.cpp:3012:1: warning: control reaches end of
non-void function [-Wreturn-type]
fdmdv2_main.cpp: In static member function �static int
MainFrame::rxCallback(const void*, void*, long unsigned int,
const int*, int, void*)�:
fdmdv2_main.cpp:2461:1: warning: control reaches end of
non-void function [-Wreturn-type]
In file included from fdmdv2_main.h:71:0,
from fdmdv2_main.cpp:22:
fdmdv2_pa_wrapper.h: In member function �int
PortAudioWrap::getDeviceCount()�:
fdmdv2_pa_wrapper.h:59:76: warning: control reaches end of
non-void function [-Wreturn-type]
make: *** [fdmdv2_main.o] Error 1

I could waste a lot of time on this. I'll try again when I
see updates to your repo.

I'm about to try the Windows binary.

Thanks again.
Reply all
Reply to author
Forward
0 new messages