Troubleshooting Sound Issues on Linux

Troubleshooting sound is not an easy task on Linux. There are many factors that can play into sound problems.

Start Natively

Before determining the problem is with CrossOver, please verify that native sound works.

  1. Find a local sound file
  2. Verify that it plays with a native media player
    If it does not, please check the usual suspects.
    • Is it plugged in?
    • Is it turned on?
    • Is system sound muted?
    • Is it properly configured?

Testing Sound in CrossOver

Open up the Wine Configuration menu for the specific bottle.

From the GUI

  1. Open the bottle manager
  2. Select the bottle in question
  3. Select the "Control Panel" tab
  4. Launch "Wine Configuration"

From Terminal

/opt/cxoffice/bin/wine --bottle "nameofbottle" winecfg
or

~/cxoffice/bin/wine --bottle "nameofbottle" winecfg

With Wine Configuration launched, choose the Audio tab. Verify that either "winepulse.drv" or "winealsa.drv" is the selected driver. If it is not, please double-check your installed packages (see below) or file a support ticket.

From here, click the "Test Sound" button.

  • If this plays a sound, the problem may be within the game settings. We know from testing in-house that some games (like Diablo III) can benefit from toggling the in-game settings.
  • If this does not play a sound, and you are using the winealsa.drv driver, you can try adjusting the devices CrossOver is trying to use. Using "System Default" or "default" is recommended. If that doesn't work, you can try using one of the hardware devices directly, but that may prevent other applications from using your sound hardware simultaneously with CrossOver.

Check the Libraries

If the sound issue is not resolved, verify that the 32 bit libraries CrossOver needs to use are present.

From Terminal

/opt/cxoffice/bin/cxdiag
or
~/cxoffice/bin/cxdiag
If you are using PulseAudio (very common), make sure there are no warnings about missing "pulse" packages. If you are not, make sure there are no warnings about ALSA and/or asound. Some games and applications also require libmpg123, openal, and libgsm.

For more information about libraries missing on your system, please visit our full diagnostic page available here.

Outlier Cases

In rare cases, it is better to use a generic sound device rather than what the system defaults to, with caution, add the following line to the end of /etc/modprobe.d/alsa-base.conf:

options snd-hda-intel model=generic
Reboot the system for the changes to take effect. On reboot, launch Wine Configuration again and select the new audio device to see if sound works.

Advanced CrossOver Adjustments

++color:blue++with thanks to our community, advocates and developers++
++color:red++with CrossOver 15 this line should be removed from all CrossOver bottles++

Go to the directory of the affected bottle. Make sure no applications within that bottle are running. Find a file called cxbottle.conf.

The path in a default installation is:

~/.cxoffice/bottlename/cxbottle.conf
Search for this line:

"PULSE_LATENCY_MSEC"="20"
Comment it out so that the line looks like this:

;;"PULSE_LATENCY_MSEC"="20"
If this works for that particular bottle, then do the same for any other bottles that have issues. If this is something that should be a permanent change to all future bottles, make the same adjustments to the bottle template file located at:

/opt/cxoffice/share/crossover/bottle_data/cxbottle.conf
or
~/cxoffice/share/crossover/bottle_data/cxbottle.conf

Advanced PulseAudio Adjustments

++color:blue++with thanks to our community, advocates and developers++

++background-color:cornsilk++Note that most links for additional information point to the Arch Linux wiki. As we searched for the best way to explain each setting, we consistently found ourselves on the Arch Linux wiki. We have provided these links as a convenience and a point of reference. There are other explanations and tutorials out there that explain each setting. These settings are generally the same over each Linux distribution.++

The following tips are gathered from the community and should not be used without decent Linux knowledge. This section can always be improved upon and as Wine and Linux mature, the information here may become outdated. This is our polite way of saying proceed with caution.

Adjusting the buffer size

This setting can be useful if the sound quality is generally poor.

Before making this adjustment, it may be best to read about it here.

In some cases, PulseAudio's default settings are not ideal. With extreme caution, edit the configuration file at:

/etc/pulse/daemon.conf
search for default-fragment-size-msec' and try a smaller number. This setting is usually '10 but putting a smaller number in place may yield better results. The line should look something like:

default-fragment-size-msec = 10
After making the adjustment, restart PulseAudio from terminal with:

pulseaudio -k

Toggling the Timer-based scheduling

this setting can be useful if the sound is skipping or glitching

Before making this adjustment, it may be best to read about it here.

With extreme caution, edit the configuration file at:

/etc/pulse/default.pa
look for the line that includes:

load-module module-udev-detect
And add tsched=0 to the end so that the above example would look like this:
++color:green++if there are other parameters in this line, do not delete them, simply add tsched=0 to the end of the line.++

load-module module-udev-detect tsched=0
After making the adjustment, restart PulseAudio from terminal with:

pulseaudio -k

Tell PulseAudio to use less memory

PulseAudio attempts to reserve more space than it actually needs and when Wine is using enough of that virtual memory, it causes an out of memory condition. It is possible to reduce the amount of memory PulseAudio reserves.

With caution, edit both /etc/pulse/client.conf' and '/etc/pulse/daemon.conf and add the following line to them:

shm-size-bytes=1048576

Last modified on 2023-09-29 12:47:48 UTC by Andrew Balfour