Linux Users

cancel
Showing results for 
Search instead for 
Did you mean: 

No Audio output using LV8.6.1 on RHEL6 - 64 bit

Hello,

We are trying to output audio with Labview 8.6.1 installed on RHEL6 - 64 bit.

We are using the Vis of the Output Sound palette. Our application is working on an old custom RedHat 5 with the following packages installed :

- alsa-lib-1.0.21

- alsa-utils-1.0.21

This same application is not working on RHEL6, with the following packages (both in x86_64 and i686😞

- alsa-lib-1.0.21-3

- alsa-oss

- alsa-oss-libs

- alsa-utils

There is an error on Sound Output Configure.vi : "LabVIEW:  (Hex 0x12C0) Selected Device is Invalid"

We checked the following points :

1) I've read in the help that Output Sound Vis need to have the Open Sound System (OSS) driver installed. => Should be OK since alsa-oss and alsa-oss-libs are installed ?

2) Sound Output Configure.vi calls the library lvsound2.so, so we tried :

          ldd lvsound.so => libstdc++.so.5 was not found.

          So we replaced our libstdc++.so.6 package with libstdc++.so.5, but no improvements...

Note that our application also outputs sound using directly alsa library, and this is working OK on RHEL6.

Someone has any idea about the packages needed or what is missing ?

Thanks for your help,

Christophe

Christophe | qmt | Certified LabVIEW Architect
0 Kudos
Message 1 of 16
(11,742 Views)

I wonder if it has something to do with the increased SELinux that RHEL 6 has. Try turning that off and run and see what happens. We made some changes in LabVIEW 2011 for RHEL 6 to get around some SELinux items that popped up. That is why I bring this up.

Randy Hoskin

0 Kudos
Message 2 of 16
(5,661 Views)

Other idea :

lvsound.so was compiled with a previous version of gcc.

Maybe you could try with the compat-libstdc++ package for RHEL6 (find it on rpmsearch)

Florent

0 Kudos
Message 3 of 16
(5,661 Views)

Thank you guys for your answers :

1) disabled SELinux => no improvement

2) compat-libstdc++ was already installed. We reinstalled  libstdc++.so.6 just in case => no improvements

Christophe

Christophe | qmt | Certified LabVIEW Architect
0 Kudos
Message 4 of 16
(5,661 Views)

LabVIEW uses the older OSS sound driver. We discover devices by attempting to open /dev/dsp followed by /dev/dsp1 - /dev/dsp9 (or 0-15 for the newer LV sound API). Some newer distributions have moved the location of those OSS device files to places like /dev/sound. Check if you have a /dev/dsp* file, and if not try to figure out where it is and create a symlink to it at /dev/dsp.

If you don't have one at all then make sure that the OSS kernel module is loaded

Message 5 of 16
(5,661 Views)

Also, I'm confused about which sound API you are using. You mentioned both lvsound.so and lvsound2.so. If you are using the newer API (the one on the palettes, in vi.lib/sound2/lvsound2.llb) then you should be looking at lvsound2.so. However, if we were having trouble loading that library then the VIs would be broken rather than just returning errors at runtime. I suspect the real issue is a missing dsp device file.

0 Kudos
Message 6 of 16
(5,661 Views)

In a same way, an already used device could prevent library to initialize the device.

0 Kudos
Message 7 of 16
(5,660 Views)

Oss is no more supported in Rhel6 (=> no dsp* file to link).

Pulseaudio is used instead.

By using /etc/modprobe.d/dist-oss.conf it could be possible to activate oss but it's difficult to make it work.

Maybe we missing something ?

0 Kudos
Message 8 of 16
(5,660 Views)

This feature requires OSS*. You either need to find a way to install the OSS emulation on RHEL 6 or you won't be able to use the feature.

*The reason we used OSS in the newer API is because at the time that we were porting this feature to Linux some of our officially supported distributions still did not ship with the ALSA driver. OSS was the only driver we could use that was guaranteed to be supported on each distribution at that time.

<rant>It is unfortunate that Linux distributions routinely make changes like this which break third party applications. The result is that we just can't keep up with all the different ways that things can break in different Linux distributions, and unfortunately customers like you are stuck in the middle. If you ever find yourself asking why our support for Linux isn't better then this is the real reason.</rant>

0 Kudos
Message 9 of 16
(5,660 Views)

It seems indeed that it does not work because /dev/dsp* does not exist on the system.

I managed to create some by using the command "./MAKEDEV audio" but the /dev/dsp* does not appear after a reboot. And that does not solve the problem.

I also checked if OSS was loaded :

#lsmod|grep sndl

snd_seq_dummy           1750 0

snd_seq_oss            30764  0

snd_seq_midi_event      7235 1 snd_seq_oss

snd_seq                56557  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event

snd_seq_device          6626 3 snd_seq_dummy,snd_seq_oss,snd_seq

snd_hda_codec_analog    79931 1

snd_hda_intel          25194 0

snd_hda_codec          82097 2 snd_hda_codec_analog,snd_hda_intel

snd_hwdep               6746  1 snd_hda_codec

snd_pcm                84700  2 snd_hda_intel,snd_hda_codec

snd_timer              23087 2 snd_seq,snd_pcm

snd                    70021  9 snd_seq_oss,snd_seq,snd_seq_device,snd_hda_codec_analog,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer

soundcore               8052  1 snd

snd_page_alloc          8628 2 snd_hda_intel,snd_pcm

I expected to see snd_pcm_oss and snd_mixer_oss but not found !

I'm trying to load them but it seems a bit complex...

Christophe | qmt | Certified LabVIEW Architect
0 Kudos
Message 10 of 16
(5,654 Views)