Here is a short summary of how my game stopped working on Linux, and what I did to make it work again.
Few months ago, the Linux version of Icewind Dale: Enhanced Edition was installed successfully on my laptop. It is an old machine with Intel video card, running Debian. Played the game some time (a true classic), then uninstalled it.
Last week decided to install it again. Download and installation went without error. Then I started the game ... and nothing happened.
OK, that was strange, the same game was running OK few months ago. Tried to start the game from a terminal, and there it was, the error message:
libGL error: unable to load driver: i965_dri.so Spent the next few hours on the Internets, only to find this has happened to many people. The driver might be for a different video card, the issue is the same. There were many solutions proposed - update your packages, edit files, and so on. None of them solved my issue. It was really strange, because I havent changed anything in the setup of my machine. The only changes were the regular package updates.
And, finally, the solution was found. It is described on the GOG Wiki (an interesting site I've never heard of):
Game fails to start and prints "libGL error" As recommended there, I've renamed 'libstdc++.so.6' to 'libstdc++.so.6_BACKUP' in game's 'lib' directory. Started the game from the terminal ... and this time there was another error:
IcewindDale: symbol lookup error: /usr/lib/i386-linux-gnu/libxcb-dri3.so.0: undefined symbol: xcb_send_request_with_fds Again, WTF situation. What if I try the same trick as above? Well, it worked - renamed 'libxcb.so.1' to 'libxcb.so.1_BACKUP', and the game started without issues!
So, it seems stuff like this could happen when you:
* Run a game based on the Infinity engine.
* Use a Linux distribution that is not Ubuntu, and update your system regularly.
Hope this information would be helpful if you find yourself in the same situation.