I'm trying to run Skype on Ubuntu 13.04, and getting a black void instead of my webcam input, when my webcam works with other applications such as Cheese.

The traditional solution is to run

LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so /usr/bin/skype

However, this is now failing to work, with

$ LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so /usr/bin/skype
ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so' from LD_PRELOAD cannot be preloaded: ignored.

$ locate v4l1compat.so

file `which skype`
/usr/bin/skype: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xe7a4372f77f31bca55d7b0e26422b8901d916e51, stripped

I have also tried without ld_preloading anything. Why might LD_PRELOAD be failing and has anyone else had any luck?

  • Is this reproducible anymore? – Braiam May 9 '14 at 22:02

start skype with the following command

LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so skype

If this doesn't work, make sure you install the 32bit libv4l-0 package first.

Your Skype is a 32bit version and it needs the 32bit libv4l-0 package (even though your ubuntu is 64 bit). If you don't have it install it by the following commands.

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libv4l-0:i386

If you don't want to type this long command every time while launching Skype, you should edit the /usr/share/applications/skype.desktop file and add the following at the Exec line so that it looks like this:

Exec=sh -c 'LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so skype'
| improve this answer | |


-c 'LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so skype'
| improve this answer | |

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.