Updated: July 18, 2015
All right. So the situation is as follows. You have just installed SteamOS 2.0 Beta, after having read about it and gotten all excited. You have followed my guide on how to get the system running in VirtualBox. You even have the Guest Additions piece figured out. However, when you try to launch Steam it hangs.
The errors you see, when you attempt to launch the program from the command line, reads something like Installing breakpad exception handler and libGL error: failed to get magic and along those lines. You want to fix this, don't you. Let's do it.
Problem
In more detail, the following happens. The full error set reads:
Running Steam on steamos 2.0 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(0)
libGL error: failed to get magic
libGL error: failed to load driver: vboxvideo
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
And the program just hangs without doing anything. Or it may just display the breakpad exception line without showing any additional output. But it will definitely hang, and the main interface won't launch.
You will see this error if you try to launch Steam (steam) from a terminal window inside SteamOS 2.0, running inside a virtual machine, using VirtualBox, but also other products of the same type. What this error tells us is that for some reason the program does not detect any 3D acceleration, hence the OpenGL error, and so you cannot play.
However, launching the program worked just fine in the first beta, and technically, you should have some limited 3D acceleration. But this error definitely prevents you from enjoying Steam. We will now resolve the issue.
Solution
Anyhow, before I give you the actual fix, I want to expand this tutorial a little bit to give you some additional pointers. You may assume the STEAM_RUNTIME environment variable might also be related. Indeed, in general, whenever is something spelled with all caps, it's probably a variable for the running shell, plus tweaking the values might render useful results. This is the kind of technical intuition you develop over the years.
If you export STEAM_RUNTIME to be anything else but =1, Steam will complain most horribly. This also rules out any problem related to the specific environment setup. It does not lead us toward our solution, but it is a useful exercise in trying to help you think and learn how to fix complex issues. My holy mission, right.
So we need something else. Indeed, the fix for this issue is not going to be simple. But if you spend some time reading, including VirtualBox forums, Debian forums, Steam community, and several other sources, it comes down to the following:
To provide the most optimized performance, Steam uses its own GCC and C++ runtime libraries, which are not compatible, for a good reason, with VirtualBox graphics drivers and other virtualization providers. In other words, if you want to be able to run Steam this way, you will need to change the LD_LIBRARY_PATH for steam or remove the offending libraries.
In this case, I recommend only removing the several libraries rather than editing the path, as it minimizes the number of changes. We do not need to delete these files, we just need to move them into another directory. While starting, Steam won't be able to find them, then it will default to the standard system libraries, and the program will run. The files that need to be removed from the steam directory inside your home directory are:
steam@steamos:~$ find . -name \*libstdc++\*
<X>/usr/lib/i386-linux-gnu/libstdc++.so.6
<X>/usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
<X>/usr/share/doc/libstdc++6
steam@steamos:~$ find . -name \*libgcc_s\*
<X>/lib/i386-linux-gnu/libgcc_s.so.1
Just replace <X> with ./.local/share/Steam/ubuntu12_32/steam-runtime/i386/. I did a bit of editing for brevity. Anyhow, once you remove these files, Steam will launch without any problems. Solved!
The only exception is that you will need to do this EVERY time Steam updates, so you might as well write a small wrapper script that searches for these files and moves them away before starting Steam. Again, only for testing, and you will never need to do these things on your production hosts, but during the Beta phase and virtual machine games, this is the way forward.
Conclusion
We have reached the end of another tutorial. See what I did there? The first time, we struggled with graphics drivers and Guest Additions, but we fixed those. With this second beta, we have some more OpenGL issues, and like the last time, we were able to overcome them with some command line trickery.
I hope this little guide helps you expand and enjoy your exploration of SteamOS. You may also have learned a few other useful tips, when it comes to debugging software. The more you do it, the easier it becomes. After all, that's the whole point of this exercise. Plus, we are giving more people more chance to test SteamOS, and thus, we are making it a better product, and that's a noble goal for us Linux nerds. Party on, fellas.
Cheers.