This does not fix sound for streaming media. That is a separate issue with gstreamer and should only be a problem for 64bit users.

Ok, well I will say that the fix was not easy to find but it is easy to do…. go figure. First off the distributions of secondlife even the newest beta versions and all other variants like Emerald(which I use) and CoolViewer come with an older version of libopenal.1. That also goes for Ubuntu even the newest 9.10(Karmic). I didn’t really research which version they came with I just know its older then the one required for being able to use openal with pulseaudio. Direct pulseaudio support didnt come into openal until 1.10 so up until this point you could possibly get openal to use alsa which pulseaudio has a plugin for. The only problem with the alsa plugin is its unstable and for some reason openal seems to make it scream. Maybe its the load it puts on it or something I don’t know. I do know that VLC using the alsa plugin for pulseaudio studders a little bit but works ok. So the solution to no audio for secondlife in Ubuntu 64bit and really 32bit is to compile a newer version of libopenal which is simple enough. Now for the 32bit version its a little bit easier because you just compile it like normal and move the libopenal.1.11.753 to the lib folder of secondlife and continue from there. Here is the step by step instructions to do so:

  • Step 1 – get essentials

    First we need to make sure you have all the essential build material installed like gcc and cmake so liked go ahead and install that stuff:

    # sudo apt-get install build-essential cmake libpulse-dev
    for 64bit you need to also install multilib support so that you can compile the 32bit version:
    # sudo apt-get install gcc-4.4-multilib gcc-multilib libc6-dev-i386

  • Step 2 – get openal and open it up

    Then we must download the latest openal which at the time of this artical is 1.10.622:

    # wget http://kcat.strangesoft.net/openal-releases/openal-soft-1.11.753.tar.bz2
    # tar -jxvf openal-soft-1.10.622.tar.bz2
    # cd
    openal-soft-1.10.622/build

  • Step 3 – compile openal

    This will also be done 2 different ways depending on if your on 32bit or 64bit ubuntu first we show 32bit:

    # cmake ..
    For 64bit version you have to do this:
    # CFLAGS=-m32 LDFLAGS=-m32 cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DLIB_SUFFIX=32

    If you see something like so then it compiled in pulseaudio support:
    – Building OpenAL with support for the following backends:
    –      ALSA, OSS, PulseAudio, WaveFile
    Then we compile(both 32bit and 64bit)
    # make

  • Step 4 – back up the old libopenal and copy the new one

    First we need to back up the old libopenal.so.1 just encase this one is messed up. I know, I know it didnt work anyways but still always backing up is a good practice :)

    # mv /path/to/your/secondlife/lib/libopenal.so.1 /path/to/your/secondlife/lib/libopenal.so.1.old
    Then we copy the new one over like so:
    # cp libopenal.so.1.10.622 /path/to/your/secondlife/lib/libopenal.so.1

  • Step 5 – making sure openal knows to use pulse as its audio source

    Now because openal defaults to alsa which pulse has a buggy plugin for we must override that with the user config file. The following command assumes you have nothing in the .alsoftrc yet because you really havent messed with it. If you have a .alsoftrc and have settings in it just simply set the drivers to pulse and now anything you may already have using openal will use pulse :) The only warning I have for this is that if you have other programs that come bundled with libopenal.1 may not have the newest version that supports pulse but you should be able to do the same for that program as you did with secondlife. If it breaks anything just change it back and look for another route or ask the providers of the other software too provide an update.

    # echo “drivers=pulse” > ~/.alsoftrc

Now you should have sound for secondlife :) You might want to restart your computer to make sure no sort of caching is going on. Remember this does not fix sound for streaming media I am still working on that. I will post and link from this one to the streaming media fix if/when I get one firgured out.

8 Responses to “SecondLife and 32bit/64bit Ubuntu and the easy fix for no sound”

  1. gcc-4.4-multilib can’t seem to be found!

  2. hey Bromo what version of Ubuntu are you running? You might need to run “gcc -v” to see what version of gcc your running and change the command to suit.

  3. Thank you for researching this type of issues for us all.

    Just a little note :
    You forgot the actual compile in step 3.
    After running cmake which results in the Makefile you still have to run make to do the actual compile.

    The resulting library worked, but did not resolve the issue i was trying to find a solution for. I still cannot start meerkat without the -novoice -noquicktime -noaudio flags on the commandline, but was a good start into debugging.

  4. AHAH! Thank you Jacq for that! I have updated the post for everyone else. Can’t believe I forgot that lol!

  5. Thanks for the post! But I am new to Linux, and have one stupid question: How do I find out what the path to my Second Life lib is?? I.e. I do not really know what to write in the commands in step 4.

  6. You can usually right click the secondlife folder and go to properties to see the file path.

  7. Ye, so gstreamer 64 …. hows that coming along? ;p

  8. It appears that unless your running a 64bit version of Secondlife the only way to get streaming media to work is to heavily modify the system and force an install of 32bit gstreamer to install. Something of which I cannot condone :P

    If anyone is looking for a 64bit version of the viewer, Imprudence has a v1.x version at http://imprudenceviewer.org/wiki/Downloads

    Linden is also working hard at fixing the code so its easier to compile viewer 2 as standalone 64bit so soon everyone will have a 64bit version and we’ll all be happy :) At least once I start compiling Kirstens Viewer successfully I’ll share it :D

Leave a Reply