How i can fix this problem with "Portal"? I have only used Ubuntu for a few days (Ubuntu 14.04).

AppFramework : Unable to load module vguimatsurface.so!
Unable to load interface VGUI_Surface030 from vguimatsurface.so
  • I not have Steam. I will download game from torrent. And i found fix for my trouble!Go to Settings - Software and Updates - Other Software, click add and write deb http://archive.ubuntu.com/ubuntu/ raring main restricted universe multiverse, for next run terminal and say him "sudo apt-get update and sudo apt-get install ia32-libs"
    – user271751
    Apr 21, 2014 at 22:03
  • The vguimatsurface.so library is located inside the tree of portal. However it requires some 32-bit libraries to run. You can check which libraries are not found with ldd bin/vguimatsurface.so. In my case I needed to install several libraries from source to get the right version. Oct 1, 2021 at 22:50

5 Answers 5



I managed to solve this issue and run Counter Strike: Source by installing Ubuntu's i386 versions of libs mentioned on ArchLinux forum by buhman.


Run following command in Terminal(Ctrl + Alt + T):

sudo apt-get install fontconfig:i386 libgtk2.0-0:i386 libxi6:i386 libnss3:i386 libpango1.0-0:i386 libpng3:i386 libasound2:i386 libcairo2:i386 libsdl2-2.0-0:i386 libsdl2-gfx-1.0-0:i386 libgcrypt11:i386

Hope it helps.

  • 1
    That worked to solve the same problem in different Valve's game. Too bad, I can't accept the solution (it is not my question). Oct 24, 2015 at 8:07
  • worked on Ubuntu 14.04 Jul 14, 2017 at 9:06

My solution for Half-Life2 and Ubuntu 22.04.1, Jammy:

cd ~/Games/Half-Life_2/
LD_LIBRARY_PATH=bin ldd bin/vguimatsurface.so | grep 'not'

check which library is missing. In my case:

libpng12.so.0 => not found

I had to build this from the source and needed x86 version, my machine is x86_64. So, let's cross compile:

sudo apt-get install gcc-multilib-i686-linux-gnu
sudo apt install zlib1g-dev:i386

mkdir ~/src
cd ~/src
wget https://ppa.launchpadcontent.net/linuxuprising/libpng12/ubuntu/pool/main/libp/libpng/libpng_1.2.54.orig.tar.xz
tar Jxvf libpng_1.2.54.orig.tar.xz
cd libpng-1.2.54/
CC="i686-linux-gnu-gcc" ./configure
sudo make install

libpng12 library is now installed in /usr/local/lib

To run the game:

cd ~/Games/Half-Life_2/
LD_LIBRARY_PATH=/usr/local/lib ./hl2.sh

In steam option just type :

optirun -b primus %command% -windowed -nojoy 
  • He didn't even say that he's using optirun or Steam... Oct 5, 2014 at 14:58

You just have to install the ia-32libs. To do that on later versions of Ubuntu, just enter the following commands one after the another and you are done!!

sudo -i
cd /etc/apt/sources.list.d
echo "deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse" >ia32-libs-raring.list
apt-get update
apt-get install ia32-libs


As the other answers indicate, you need ia32-libs.

For Ubuntu 14.04 there is a small trick you need to use to install ia32-libs:

sudo -i
cd /etc/apt/sources.list.d
echo "deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse" > ia32-libs-raring.list
apt-get update
apt-get install ia32-libs

source: https://stackoverflow.com/a/23194339/3494126

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.