Проблема, с которой я столкнулся недавно, имеет начало где-то с 2008 года (при переходе с Ubuntu 8.04 на 8.10). Решение неоднократно описывалось, в том числе на сайте Ubuntu и Skype, однако, когда мне пришлось столкнуться с этой проблемой в конце 2013 года, я не сразу вспомнил об этом, вернее, даже сразу не подумал о том, что данная проблема всё еще актуальна, причем, как для Skype версии 2.2 так и для Skype 4.2.
Заключается она в том, что при определяемой системой и самим Skype камерой, изображение с неё именно в Skype не передается, хотя доступно для программ захвата изображения и других приложений.
Решение описано здесь, однако на всякий случай, я дам перевод на русский язык.
Для 32-битной системы необходимо осуществлять запуск Skype следующим образом:
bash -c 'LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype'
(или же только команду в апострофах, если запуск осуществляется из терминала) для 64-битной системы:
bash -c 'LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so skype'
Если решение не подошло, то альтернативой может быть следующее: для 32 бит:
bash -c 'LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so skype'
для 64 бит:
bash -c ‘LD_PRELOAD=/usr/lib32/libv4l/v4l2convert.so skype’
Если и это не поможет, то попробуйте ПЕРЕД выполнением предыдущей команды, выполнить следующее:
export XLIB_SKIP_ARGB_VISUALS=1
Если описанное решает проблему, но не подходит, из-за того, что другая программа осуществляет запуск Skype, например, как Pidgin в моем случае, можно сделать решение скриптом. Выполним
sudo nano /usr/local/bin/skype
куда поместим нужные нам команды, например,
#!/bin/bash
LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so /usr/bin/skype (здесь уже должен быть полный путь!)
Сохраняем файл и выходим из редактора. Осталось только сделать файл исполняемым:
sudo chmod a+x /usr/local/bin/skype
Т.к. путь /usr/local/bin проверяется раньше, чем /usr/bin, при выполнении команды skype, будет запускаться наш скрип. Решение применялось в Ubuntu 13.04 для довольно старой веб-камеры Canyon.