Skip past navigation linksSecure Global Desktop 4.40 Administration Guide > Applications, Documents, and Application Servers > Troubleshooting Sound in X Applications

Troubleshooting Sound in X Applications

When sound is enabled and the user starts an X application, the SGD login script starts an SGD audio daemon (sgdaudio) on the application sever. The audio daemon connects to an SGD audio driver emulator (sgdadem) and starts an audio device node in the /tmp/SGD/dev/sgdaudio directory. The audio daemon sets the SGDAUDIODEV environment variable to the location of the audio device node. The audio device node is then used to play sound during the application session. The audio daemon transfers the audio data to the SGD server, which then sends the data to the client.

Select the section that best matches the problem:

No Sound Plays At All

If no sound is playing at all in the X application session, use the following checklist to resolve the problem:

Things To Check Description
Does the client device have an audio device? To be able to play sound, the client device must have an audio device. If there is an audio device, check that it works.

Users with Solaris Operating System (Solaris OS) or Linux client devices must also have read and write access to the following audio devices:

  • The /dev/audio device on Solaris Operating System (Solaris OS) platforms
  • The /dev/dsp device on Linux platforms

Note On Solaris OS platforms, if the AUDIODEV environment variable has been set to a different device, the SGD Client tries to use this device before trying the /dev/audio device.

Is the volume muted on the client device? Check the volume control on the client device to see whether the user has muted the volume or set the volume level too low to hear.
Has the UNIX audio service been enabled on the SGD server? By default, the UNIX audio service is disabled for an SGD array. Check that the UNIX audio service has been enabled on the the Global Settings » Client Device tab in the SGD Administration Console.
Has the sound quality been changed? By default, the UNIX audio service uses Medium Quality Audio. Changing the sound quality to Low Quality Audio or High Quality Audio limits the audio formats used in the X application session and might mean that the client cannot play sound.

Reset the sound quality to Medium Quality Audio on the the Global Settings » Client Device tab in the SGD Administration Console.

Is there a firewall between the application server and the SGD server? The SGD audio daemon connects to the SGD server on random ports. If there is a firewall between the application server and the SGD server, the firewall must allow connections on all ports from the application server to the SGD server.
Have you installed the audio module of the SGD Enhancement Module? To be able to play sound in X applications, you must install and run the audio module of the SGD Enhancement Module on the application server.

See the Secure Global Desktop Installation Guide for details of how to install the SGD Enhancement Module.

Note If you are using zones on Solaris OS platforms, the audio module only works if it is installed in the global zone.

Use the following command to check that UNIX audio processes are running:

Skip past command syntax or program code/opt/tta-tem/bin/tem status

You start the UNIX audio module with the install_dir/bin/tem startaudio command, where install_dir is /opt/tta_tem by default. You must be superuser (root) to use this command.

Is the volume muted on the application server? Check the volume control on the application server or in the application to see whether the user has muted the volume or set the volume level too low to hear.
Is the application hard-coded to use either the /dev/audio or the /dev/dsp device? If an application is hard-coded to use either the /dev/audio or the /dev/dsp device, you might have to enable the SGD audio redirection library to ensure that the SGD audio driver emulator is used by the application.

To enable the audio redirection library for the application:

  1. In the SGD Administration Console, click the Applications tab and select the X application.
  2. Click the Client Device tab.
  3. Select the Audio Redirection Library check box.
  4. Click Save.

Alternatively, use the following command:

Skip past command syntax or program code$ tarantella object edit --name obj --unixaudiopreload true
Is the application outputting sound in the right format? The SGD audio driver emulator is an OSS driver. The X application might have to be configured to use OSS. If your system uses the Advanced Linux Sound Architecture (ALSA), you might have to enable the ALSA OSS emulation modules in the kernel.
Is the SGD audio driver loaded in the kernel? When you install the SGD Enhancement Module on the application server, you install the SGD audio driver (sgdadem). Check that the audio driver is loaded in the kernel.
  • On Solaris OS platforms, use the modinfo -c command to check whether the sgdadem module is loaded.
  • On Linux platforms, use the lsmod command to check whether the sgdadem and soundcore modules are loaded.

If the audio driver is installed but not loaded, you can try to load the module manually, as follows:

  • On Solaris OS platforms, use the modload -i module_ID command (use the modinfo -c to find the module_ID).
  • On Linux platforms, use the modprobe sgdadem command.

If loading the audio driver manually produces any errors, try to correct those errors and load the driver again.

If the SGD audio driver is not listed, check the audio module installation log for any errors. The installation log is install_dir/var/log/tem_unixaudio_inst.log, where install_dir is /opt/tta_tem by default. If the log reports any errors, try to correct those errors and load the driver again.

If the audio driver does not load into the kernel, contact Technical Support.

Is the SGD audio daemon running? There is an SGD audio daemon (sgdaudio) running for each X application accessed through SGD. Use the following command to see the instances of the audio daemon:
Skip past preformatted textps -ef | grep -i sgdaudio

If the user does not have an audio daemon, check the audio daemon log files for any errors. The SGD audio daemon logs all fatal errors to the /install_dir/var/log/sgdaudioPID.log file, where install_dir is /opt/tta_tem by default.

Is there an SGD audio device node?

If the SGD audio daemon is running, it starts an audio device node in the /tmp/SGD/dev/sgdaudio directory. In the application session, check the value of the user's SGDAUDIODEV, AUDIODEV and AUDIO environment variables. These must be set to the location of the SGD audio device node.

If the environment variables are set correctly, check that the device file actually exists in the /tmp/SGD/dev/sgdaudio directory.

Does audio debug logging show any errors with the application? Enable Unix audio debug logging on the application server and check the log files for errors.

Sound Is Muffled Or Distorted

If sound is muffled or distorted, adjust the UNIX audio quality and audio compression settings to see if this improves the sound. You can adjust the following:

Note The net gain of compressing audio data, which is pre-compressed, is limited.

If the sound quality does not improve, enable audio debug logging on the application server and check the log files for errors.

Enabling UNIX Audio Debug Logging

To enable UNIX audio debug logging:

  1. Log in as superuser (root) on the application server.
  2. Open the /etc/sgdtem.conf file in a text editor.
  3. Enable debugging by changing the value of the SGDUNIXAUDIODEBUG environment variable, as follows:
    Skip past preformatted textSGDUNIXAUDIODEBUG=1; export SGDUNIXAUDIODEBUG
  4. Save the changes to the /etc/sgdtem.conf file.

To obtain debug logging output, the user must start a new instance of the application. Suspending and resuming the application does not generate any output as this does not start a new instance of the SGD audio daemon.

The debug logging output goes to the /install_dir/var/log/sgdaudioPID.log file, where install_dir is /opt/tta_tem by default.

Related Topics