Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

Possible Duplicate:
Skype video not working after upgrade from 11.10 to 12.04

I am trying to troubleshoot my webcam and make it work with skype.

One workaround that is often suggested is to LD_PRELOAD the v4l1compat.so file. But when trying that, I get an error message:

fdr@maggie:~$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so skype
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so' from LD_PRELOAD cannot be preloaded: ignored.

and I am rather sure the path is correct:

fdr@maggie:~$ ls /usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so 
/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so

and the kernel and skype have matching architecture:

fdr@maggie:~$ uname -a
Linux maggie 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
fdr@maggie:~$ dpkg -s skype | grep Architecture
Architecture: amd64

So my question is:

What is causing the "... from LD_PRELOAD cannot be preloaded: ignored" error message?

share|improve this question

marked as duplicate by hbdgaf, Eliah Kagan, izx, jokerdino, James Henstridge Aug 16 '12 at 3:52

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

    
@aking1012 I don't think it is a dupe, that other question boils down to "the path to the .so has been changed", while in the text of this question I checked I was pointing to the correct path. Let me know if I am wrong, though. –  fdierre Aug 15 '12 at 10:06
    
no the other page boils down to it's an x86 app not an x64 app –  hbdgaf Aug 15 '12 at 10:07

1 Answer 1

I think I found out.

Although installed from the 64 bit package, Skype is compiled for 32 bit:

fdr@maggie:~$ file `which skype`
/usr/bin/skype: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=0xd6667f895e58d47966d6a572b13125e9110ee256, stripped

Hence of these two:

fdr@maggie:~$ locate v4l1compat
/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so
/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so

the i386 one must be used in LD_PRELOAD.

share|improve this answer
1  
like the answer in the duplicate i suggested... –  hbdgaf Aug 15 '12 at 10:20
    
@aking1012 yes. :-) Although I was confused because it seemed to me that the answer you suggested only applies to 32-bit systems, and one should change the relevant path for 64-bit. That's where I had it wrong. –  fdierre Aug 15 '12 at 11:05

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