web-dev-qa-db-fra.com

LD_PRELOAD échoue avec Skype

J'essaie d'exécuter Skype sur Ubuntu 13.04 et d'obtenir un vide noir au lieu de l'entrée de ma webcam, lorsque celle-ci fonctionne avec d'autres applications telles que Cheese.

La solution traditionnelle est de courir

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

Cependant, cela ne fonctionne pas maintenant, avec

$ 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
/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so
/usr/lib/x86_64-linux-gnu/libv4l/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

J'ai aussi essayé sans ld_preloading. Pourquoi LD_PRELOAD peut-il échouer et quelqu'un d'autre a-t-il eu de la chance?

2
user234461

démarrez skype avec la commande suivante

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

Si cela ne fonctionne pas, assurez-vous d'installer le paquet 32 ​​bits libv4l-0 en premier.

Votre Skype est une version 32 bits et nécessite le package 32 bits libv4l-0 (même si votre Ubuntu est en 64 bits). Si vous ne l'avez pas, installez-le avec les commandes suivantes.

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

Si vous ne voulez pas taper cette longue commande à chaque fois que vous lancez Skype, vous devez éditer le fichier /usr/share/applications/skype.desktop et ajouter les éléments suivants à la ligne Exec, de sorte à ressembler à ceci:

Exec=sh -c 'LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so skype'
3
ugly_duck

Essayer:

-c 'LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so skype'
0
Michael xGrind