The problem is because there can't be two sound devices open at once. Might depend on if you are using OSS or ALSA. I had this problem playing Counter-Strike on Wine.
Some external info:
http://jackaudio.org/faqhttp://www.linux.com/articles/113775####Programming Stuff - For no sound option####
These are the files where sound is required:
game.cpp
core_data.cpp
intro.cpp
program.cpp
main_menu.cpp
faction.cpp
command_type.cpp
faction_type.cpp
skill_type.cpp
unit_type.cpp
tileset.cpp
time_flow.cpp
unit_updater.cpp
A check would need to be added, for each place where sound is loaded, to see if sound is wanted.
Another option might be to create an empty FactorySound to load
Shared::Sound::OpenAL::SoundSource
Shared::Sound::OpenAL::StaticSoundSource
Shared::Sound::OpenAL::StreamSoundSource
Shared::Sound::SoundPlayer
Shared::Sound::Ds8::SoundPlayerDs8
Shared::Sound::OpenAL::SoundPlayerOpenAL
Shared::Sound::SoundFactory
Shared::Sound::Ds8::SoundFactoryDs8
Shared::Sound::OpenAL::SoundFactoryOpenAL
Shared::Sound::Sound
Shared::Sound::StaticSound
Shared::Sound::StrSound
Shared::Sound::Ds8::SoundBuffer
Shared::Sound::Ds8::StaticSoundBuffer
Shared::Sound::Ds8::StrSoundBuffer