Вопрос: LD_PRELOAD терпит неудачу с помощью Skype


Я пытаюсь запустить Skype на Ubuntu 13.04 и получать черную пустоту вместо ввода веб-камеры, когда моя веб-камера работает с другими приложениями, такими как Cheese.

Традиционное решение - запустить

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

Однако сейчас это не работает,

$ 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

Я также пробовал без ld_preloading что-нибудь. Почему LD_PRELOAD будет терпеть неудачу и кому-нибудь еще повезло?


2
2017-07-02 22:25


Источник


Насколько это воспроизводится? - Braiam


Ответы:


запустите skype со следующей командой

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

Если это не сработает, убедитесь, что вы сначала установили 32-битный пакет libv4l-0.

Ваш Skype является 32-битной версией и ему нужен 32-битный пакет libv4l-0 (даже если ваш ubuntu - 64 бит). Если у вас его нет, установите его с помощью следующих команд.

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

Если вы не хотите вводить эту длинную команду каждый раз при запуске Skype, вы должны отредактировать /usr/share/applications/skype.desktop файл и добавьте следующее в строку Exec, чтобы оно выглядело следующим образом:

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

3
2018-01-01 21:47





Пытаться:

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

0
2017-10-31 05:23