Beginner issues with FreeDV 1.6.1

179 views
Skip to first unread message

Curt Nixon

unread,
Oct 4, 2021, 6:35:11 PM10/4/21
to digitalvoice

First, thanks for accepting my join request timely.  I was successful a number of years ago getting FDV going on HF when it was young but am having issues getting this new one going.

I am a relative newbie to Linux but have made it thru several builds from source and was an old Unix user so getting the hang of it again. 

Linux Mint Tricia on a Intel Pentium 4  3GHz  machine.   Its been running for about a yeat and my primary WSJT-x system for HF and EME.  Runs with an eMu 0204 USB soundcard  and also has the Intel HD Audio built in.

I had some issues with the build from source and saw the same fails several times during the build of the LCPNet portion.  It fails at 78% percent complete.  I thought it may be becasue the P-4 doesn't support the ACX code so whent past that fail to complete the build.

System launches and behaves as expected and I can run RX only with the USB cexternal SC with the test files.  Launching the local install only.

Test files run OK for 700c, 700e and 1600 but the application crashes when I try to start with 700D

This all started working in any form after I shut off Pulse Audio but the terminal still shows lots of unidentified audio devices attached to the surround multi channel capabilities of the built in audio.

Here is the terminal info while testing the wav files for 700e, 700c and the crash when I pushed start with 700D:

I'm wondering if I am whipping a dead horse with this system or if others are successfully using Mint and 1.6.1 at this point on an older CPU?

Appreciate any suggestions.

KU8L

xxxx_KU8L-Mint:~/freedv-gui$ ./build_linux/src/freedv
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map

(freedv:3257): Gtk-WARNING **: 23:04:02.431: Failed to measure available space: Error getting filesystem info for /media/root/05cca232-ebd3-4628-9790-7471d90de3b0: Permission denied
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map

(freedv:3257): Gtk-WARNING **: 23:04:38.985: Failed to measure available space: Error getting filesystem info for /media/root/05cca232-ebd3-4628-9790-7471d90de3b0: Permission denied
freedv: /home/curt/freedv-gui/codec2/src/ofdm.c:264: ofdm_create: Assertion `(int)floorf(ofdm->fs / ofdm->rs) == ofdm->m' failed.
Aborted (core dumped)
xxxxx_KU8L-Mint:~/freedv-gui$

Curt Nixon

unread,
Oct 4, 2021, 7:22:30 PM10/4/21
to digitalvoice
Here is where the LCPNet install fails:

[ 78%] Linking C executable test_vec
CMakeFiles/test_vec.dir/test_vec.c.o: In function `test_sgemv_accum16':
/home/curt/freedv-gui/LPCNet/src/test_vec.c:75: undefined reference to `sgemv_accum16_fast'
CMakeFiles/test_vec.dir/test_vec.c.o: In function `test_sparse_sgemv_accum16':
/home/curt/freedv-gui/LPCNet/src/test_vec.c:109: undefined reference to `sparse_sgemv_accum16_fast'
collect2: error: ld returned 1 exit status
src/CMakeFiles/test_vec.dir/build.make:94: recipe for target 'src/test_vec' failed
make[2]: *** [src/test_vec] Error 1
CMakeFiles/Makefile2:1537: recipe for target 'src/CMakeFiles/test_vec.dir/all' failed
make[1]: *** [src/CMakeFiles/test_vec.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2

Mooneer Salem

unread,
Oct 6, 2021, 10:21:31 AM10/6/21
to digita...@googlegroups.com
Hi Curt,

Apologies for not responding back sooner (Google's spam filters have been freaking out lately and forced your email into my spam folder). A few things:

1. Can you provide the output from the cmake run for LPCnet? It should have disabled anything related to AVX/AVX2 if not enabled on your CPU as per the following:

if(NOT DISABLE_CPU_OPTIMIZATION)
    if(UNIX AND NOT APPLE)
        message(STATUS "Looking for available CPU optimizations on Linux/BSD system...")
        execute_process(COMMAND grep -c "avx2" /proc/cpuinfo
            OUTPUT_VARIABLE AVX2)
        execute_process(COMMAND grep -c "avx " /proc/cpuinfo
            OUTPUT_VARIABLE AVX)
        execute_process(COMMAND grep -c "sse4_1 " /proc/cpuinfo
            OUTPUT_VARIABLE SSE)
        execute_process(COMMAND grep -c "neon" /proc/cpuinfo
            OUTPUT_VARIABLE NEON)
...
if(${AVX2} OR ${AVX2} GREATER 0)
    message(STATUS "avx2 processor flags found or enabled.")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx2 -mfma")
elseif(${AVX} OR ${AVX} GREATER 0)
# AVX2 machines will also match on AVX
    message(STATUS "avx processor flags found or enabled.")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx")
elseif(${SSE} OR ${SSE} GREATER 0)
# AVX and AVX2 machines will also match on SSE
    message(STATUS "sse processor flags found or enabled.")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.1")
endif()

2. Would you be able to add printf statements around that assertion to print out the values of ofdm->fs, ofdm->rs, and ofdm->m? Those calculations aren't AVX specific so I wouldn't expect them to have different results depending on that.

Thanks,

-Mooneer K6AQ

--
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 view this discussion on the web visit https://groups.google.com/d/msgid/digitalvoice/766731ae-8505-40fc-af80-e6154a598244n%40googlegroups.com.

Curt Nixon

unread,
Oct 6, 2021, 6:03:37 PM10/6/21
to digitalvoice
Thank You!  No problem of delay..I know you must have lots to do,    I thought I had the copies of terminial but missed the pc you want to see.  I am re-doing the entire step by step and saving each step.      

I understand what you are asking for with the printf but not quite sure at the moment how to do that.  Seems like I need to go to the pc of code and insert the printf    I'll spend some time to see if I can get my head around that part too.

I appreciate the help.

Curt

Curt Nixon

unread,
Oct 6, 2021, 7:46:21 PM10/6/21
to digitalvoice
I believe this is the assert section that you wanted to insert the printf into.

/* basic sanity checks */

    assert((int)floorf(ofdm->fs / ofdm->rs) == ofdm->m);
    assert(!strcmp(ofdm->state_machine, "voice1") ||
           !strcmp(ofdm->state_machine, "data") ||
           !strcmp(ofdm->state_machine, "voice2"));
    assert(ofdm->nuwbits <= MAX_UW_BITS);

I can locate this properly but cant get a syntax correct for adding the printf   I tried just adding 3 lines just ahead of the first assert:  printf(fs);    one for each string but that didn't work. 
I searched but could not find a good example for its use.

I will clip the other section of LCPNet build....I'm using the Xfce terminal and it doesn't provide color or formatting on save.   I will try a copy and paste to see if I can make it look more reasonable.

Curt

Curt Nixon

unread,
Oct 6, 2021, 8:32:43 PM10/6/21
to digitalvoice

I need to clarify the steps I am using because I don't see anything on building LPCNet until the instructions for "Install on Linux" steps.

Perhaps I am interpreting the instructions improperly.  

I am on the GitHub Drowe67 site and following instructions step by step.  
First I follow the steps under "BUILDING on UBUNTU LINUX (16-20)"   I am running Mint Tricia which is under Ubuntu 18
At the end of that series of steps it says I can run it by using "./build_linux/src/freedv
So, all the previous info is based upon that series of steps.

Do I have to run the steps on "INSTALLING on LINUX" further down the page where it includes make install for codec2, LPCNet, and Freedv????

I actually tried this on the first try but it doesn't complete...that is where the 78% incomplete segment came from in my first post.

I get the feeling I am missing something very basic.

Sorry for being a PITA but I don't use Linux enough to fill in any blanks in the instructions.

Thanks....learning by suffering I guess.  :)

Curt

Mooneer Salem

unread,
Oct 7, 2021, 10:08:13 AM10/7/21
to digita...@googlegroups.com
Hi Curt,

The line that should be added to the code (just above the first assertion in the code you pasted) is the following:

printf("fs: %f, rs: %f\n", ofdm->fs, ofdm->rs);

Also, running the build_linux.sh script in the source tree should take care of building everything for you and producing a freedv binary. The instructions in "Installing on Linux" simply place the compiled files into /usr/bin or wherever you have CMake place them. It sounds like "make install" is somehow rebuilding LPCNet again from your description? Definitely send over the build output when you can so we can take a closer look.

Thanks,

-Mooneer K6AQ


--
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.

Curt Nixon

unread,
Oct 7, 2021, 11:08:47 AM10/7/21
to digitalvoice
Thank you..

After I insert the printf line, do I need to back up and do the ./build_linux.sh  over again or will the .build_linux/src/freedv run the edit OK?

Curt Nixon

unread,
Oct 7, 2021, 11:47:21 AM10/7/21
to digitalvoice
Here is the entire terminal for build.  I wasn't sure exactly what part you needed to see.
Full Build 10_7.odt

Curt Nixon

unread,
Oct 7, 2021, 12:22:02 PM10/7/21
to digitalvoice

After reading your last question again about the re-building of LPCNet,  I may have seen a problem with what I was doing.

Are the two sets of instructions , ie  BUILDING ON UBUNTU LINUX  and INSTALLING ON LINUX   each complete and independant or does one the INSTALL series have to follow a complete BUILD series?

I know these are really basic questions try not to cough coffee out your nose please :)

Curt



Mooneer Salem

unread,
Oct 7, 2021, 2:11:02 PM10/7/21
to digita...@googlegroups.com
Hi Curt,

Once you add that line to the code, you'll need to do the following (instead of running build_linux.sh):

cd ~/freedv-gui/build_linux
make
src/freedv

Also, the installation steps need to be run after the build steps for sure, though if you try to run the installation steps on their own they will try to build the code first. 

BTW I took a look at the build log you provided and it looks like you executed the build correctly. I added https://github.com/drowe67/LPCNet/issues/41 on your behalf so that the build issue you ran into can be tracked and fixed.

Thanks,

-Mooneer K6AQ

--
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.

Curt Nixon

unread,
Oct 7, 2021, 4:24:18 PM10/7/21
to digitalvoice
Cannot get the print line to do anything.    I added it after doing the Git and the ./build_linux.sh
I DO have to run  the ./build/linux.sh the first time though, correct?   The codec2 directory doesn't exist until I do that.
Then I added the printf line as shown and ran make as you directed above.
Program launched and failed same way with no print line info.
Strange that the fail text shows the fail line in source code like the extra line for printf wasn't added.  (I can see the added line by go to freedv-gui/codec2/src and listing the ofdm.c file)    Is there a different ofdm.c file than the one annotated in the assertion fail?

BTW..I did this latest all from scratch again after clearing out the old freedv-gui directory.

Thank You Mooneer,

Curt

Mooneer Salem

unread,
Oct 8, 2021, 2:17:08 AM10/8/21
to digita...@googlegroups.com
Hi Curt,

Correct, build_linux.sh will need to be run at least once before you can run the application. As for the lack of output, let's try this instead of printf:

fprintf(stderr, "fs: %f, rs: %f\n", ofdm->fs, ofdm->rs);

Also, double check to make sure it's about that block of assertions. If that doesn't work, we can file another GitHub issue on freedv-gui itself and work on this off list.

Thanks,

-Mooneer K6AQ

Curt Nixon

unread,
Oct 8, 2021, 8:42:14 PM10/8/21
to digitalvoice
Good Evening Mooneer:

I tried that as well..... fprintf(stderr, "fs: %f, rs: %f\n", ofdm->fs, ofdm->rs);
Still no joy.   I did read a comment on the issue tag comments that a UBUNTU 20 worked ok,   I had 18.04  MATE also on the same machine so I tried it there.   Same failures .   

So I went crazy and built a new system on the same Pentium D 2 core hdware.   
Installed   Mint  20  Ulyana   Cinnamon  on Ubuntu 20.04   

First build of same instruction steps worked perfectly so far testing the .wav test files.  even the 700D which caused a fault on the other system.       

So it appears that this is indded related to the earlier versions of Mint/Ubuntu   I was running since same hdwr and all external USB devices etc.

I built on a fresh SSD so the original is preserved if something is found but at this moment, I will proceed to play with the new install to see how it goes configuring the Tx side of the problem.

Thanks for all your help on this....I learned a lot but am SOOO far off the curve as far as working with C and all the Linux commands.   At 73 I'm glad to have help getting these things going!

Curt
KU8L

Mooneer Salem

unread,
Oct 9, 2021, 11:29:01 AM10/9/21
to digita...@googlegroups.com
Hi Curt,

Glad you got FreeDV working, even if you had to reinstall your entire OS to do so. Let us know if you run into any other issues!

Thanks,

-Mooneer K6AQ

Brian Morrison

unread,
Oct 9, 2021, 12:00:37 PM10/9/21
to digita...@googlegroups.com
On Sat, 2021-10-09 at 08:28 -0700, Mooneer Salem wrote:
Glad you got FreeDV working, even if you had to reinstall your entire OS to do so.

<snort>  ;-)

/me is waiting for Fedora 35 in a couple of weeks...

-- 

Brian  G8SEZ

jtrager

unread,
Oct 18, 2021, 7:27:55 PM10/18/21
to digita...@googlegroups.com
Works great on Windows 10!  Why mess around with an inferior operating System?

John



Sent from my Verizon, Samsung Galaxy smartphone

Bruce Perens

unread,
Oct 18, 2021, 7:43:48 PM10/18/21
to digita...@googlegroups.com

Curt Nixon

unread,
Oct 19, 2021, 10:25:46 AM10/19/21
to digita...@googlegroups.com
Well...I have been running computers and OS's since way before microsoft existed.....I would definitely NOT say win 10 was better than Linux.

Interesting you would say that since the whole Freedv application was created on Linux.

BTW, my 1.6.1 is running very well on this older machine now.  

KU8L
You received this message because you are subscribed to a topic in the Google Groups "digitalvoice" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/digitalvoice/vQH62-g7oDY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to digitalvoice...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/digitalvoice/616e02f8.1c69fb81.fd46e.5973SMTPIN_ADDED_MISSING%40gmr-mx.google.com.


Virus-free. www.avast.com

Curt Nixon

unread,
Oct 19, 2021, 10:26:40 AM10/19/21
to digita...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages