LD_PRELOAD因Skype失败
我正在尝试在Ubuntu 13.04上运行Skype,并在我的网络摄像头与其他应用程序(如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为什么会失败,还有其他人有运气吗?
使用以下命令启动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'
尝试:
-c 'LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so skype'