Skip past navigation linksSecure Global Desktop 4.31 Administration Guide > Applications, documents and hosts > Troubleshooting sound in X applications

Troubleshooting sound in X applications

When sound is enabled and the user starts an X application, the Secure Global Desktop (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
Can the Secure Global Desktop client play sound? The Sun Secure Global Desktop Client on all platforms can play sound.

See the Secure Global Desktop Release Notes for details of which classic clients can play sound.

Does the client have an audio device? To be able to play sound, the client must have an audio device. If the client has a 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 Sun Secure Global Desktop Native 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 Array properties panel in Array Manager.
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 may mean that the client cannot play sound.

Reset the sound quality to Medium Quality Audio on the Array properties panel in Array Manager.

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.

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 root to run 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 may 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, check the UNIX Audio - enable LD_PRELOAD (--unixaudiopreload true) box on the Advanced panel in Object Manager.

Is the application outputting sound in the right format? The SGD audio driver emulator is an OSS driver. The X application may have to be configured to use OSS. If your system uses the Advanced Linux Sound Architecture (ALSA), you may 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 will not load into the kernel, contact Sun Support.

Is the SGD audio daemon running? There should be 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 should start 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 should all 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.

To enable UNIX audio debug logging:

  1. Log in as 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 will 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.

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, may be limited.

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

Related topics