Мне кажется, что я её одолел. (Разговор о вебкамере Creative Live! Cam (Model VF0420) )

Хочу немного поведать о том, как я установил сабж в Gentoo Linux с ядром 2.6.30-gentoo-r8 и заставил ее работать под Skype 2.1.0.81, а точнее видео, т.к. звук в нем нормально работает со стандартными драйверами ядра из набора GSPCA: gspca_ov519, но вот видео завести мне никак не удавалось.
Видео с камеры также работало в различного рода программах, как то cheese или mplayer. Для mplayer достаточно в консоли набрать команду, принимая во внимание, что камера находится на /dev/video0
mplayer tv:// -tv driver=v4l:width=640:height=480:device=/dev/video0
и лицезреть в появившемся окошке изображение с камеры.
Но, для начала, поведаю о всех действиях которые я опробывал, чтобы решить проблему с видео в Skype. Оптимизма мне добавляло то, что камеру я заставил нормально жить со Skype на ядре 2.6.27, воспользовавшись хорошим описанием по этому адресу. Однако жизнь ушла вперед, мне понадобились более новые ядра, но вот развитие модуля ov51x-jpeg не спешило идти в ногу с развитием kernel. Потому при компилировании модуля на 2.6.30-gentoo-r8 выскакивала следующая ошибка:
ov51x-jpeg-1.5.9 # make
make -C /lib/modules/2.6.30-gentoo-r8/build M=/root/ov51x-jpeg-1.5.9 modules
make[1]: Entering directory `/usr/src/linux-2.6.30-gentoo-r8'
  CC [M]  /root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.o
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:543: error: ‘v4l_compat_ioctl32’ undeclared here (not in a function)
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c: In function ‘create_proc_ov511_cam’:
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:677: error: implicit declaration of function ‘info’
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:681: error: ‘struct proc_dir_entry’ has no member named ‘owner’
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:689: error: ‘struct proc_dir_entry’ has no member named ‘owner’
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:700: error: ‘struct proc_dir_entry’ has no member named ‘owner’
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:712: error: ‘struct proc_dir_entry’ has no member named ‘owner’
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c: In function ‘proc_ov511_create’:
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:766: error: ‘struct proc_dir_entry’ has no member named ‘owner’
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c: In function ‘ov51x_clear_snapshot’:
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:1691: error: implicit declaration of function ‘warn’
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c: In function ‘ov51x_v4l1_ioctl’:
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:6386: warning: passing argument 1 of ‘video_usercopy’ from incompatible pointer type
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:6386: warning: passing argument 2 of ‘video_usercopy’ makes integer from pointer without a cast
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:6386: warning: passing argument 4 of ‘video_usercopy’ makes pointer from integer without a cast
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:6386: error: too many arguments to function ‘video_usercopy’
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c: At top level:
/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:6651: warning: initialization from incompatible pointer type
make[2]: *** [/root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.o] Error 1
make[1]: *** [_module_/root/ov51x-jpeg-1.5.9] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.30-gentoo-r8'
make: *** [all] Error 2

После длительного поиска в инете я натолкнулся на следующую страницу, где данную проблему пытались решить путем включения в ядро следующих модулей:
CONFIG_VIDEO_ALLOW_V4L1=y
CONFIG_VIDEO_V4L1=m

и затем сам Skype запускать следующей командой:
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype

Аналогичного рода советы давались и на других ресурсах (первый, второй), однако мне от подобного рода советов никакой выгоды не было, потому как попросту выскакивала ошибка:
ERROR: ld.so: object '/usr/lib/libv4l/v4l2convert.so' from LD_PRELOAD cannot be preloaded: ignored

Подмена библиотек v4l2convert.so и v4l1compat.so на библиотеки из других дистрибутивов ничего не давала.
И вот я наткнулся на следующую статью , где предлагалось по svn установить нечто новое из ov51x-jpeg. Я и попробовал это сделать. Установив subversion я запустил следующую команду:
svn co svn://rastageeks.org/svn/ov51x-jpeg/trunk

но связь с данным ресурсом у меня отсутствовала

svn: Can't connect to host 'rastageeks.org': Connection refused

Тогда пришлось снова пускаться во все тяжкие в интернет поиске, ну и труды дали свои плоды. Я вышел на данный ресурс, где скачал следующие патчи к файлам модуля ov51x-jpeg:
kernel_messages.patch
ov51x-jpeg-2.6.29.patch
ov51x-jpeg-2.6.30.patch
noowner.patch
v4lcompat_old_kernels_only.patch
Затем обычными действиями накладываем патчи и пробуем заново откомпилировать:
#качаем
wget http://www.rastageeks.org/downloads/ov51x-jpeg/ov51x-jpeg-1.5.9.tar.gz
#распаковываем
tar xf ov51x-jpeg-1.5.9.tar.gz
cd ov51x-jpeg-1.5.9
#закачиваем патчи
wget https://svn.pardus.org.tr/pardus/2009/devel/kernel/default/drivers/module-ov51x-jpeg/files/kernel_messages.patch
wget https://svn.pardus.org.tr/pardus/2009/devel/kernel/default/drivers/module-ov51x-jpeg/files/ov51x-jpeg-2.6.29.patch
wget https://svn.pardus.org.tr/pardus/2009/devel/kernel/default/drivers/module-ov51x-jpeg/files/ov51x-jpeg-2.6.30.patch
wget https://svn.pardus.org.tr/pardus/2009/devel/kernel/default/drivers/module-ov51x-jpeg/files/noowner.patch
wget https://svn.pardus.org.tr/pardus/2009/devel/kernel/default/drivers/module-ov51x-jpeg/files/v4lcompat_old_kernels_only.patch
#накладываем патчи
patch -i kernel_messages.patch
patch -i noowner.patch
patch -i ov51x-jpeg-2.6.29.patch
patch -i ov51x-jpeg-2.6.30.patch
patch -i v4lcompat_old_kernels_only.patch
make

и о чудо, команда make завершается без ошибок:
ov51x-jpeg-1.5.9 # make
make -C /lib/modules/2.6.30-gentoo-r8/build M=/root/ov51x-jpeg-1.5.9 modules
make[1]: Entering directory `/usr/src/linux-2.6.30-gentoo-r8'
  CC [M]  /root/ov51x-jpeg-1.5.9/ov51x-jpeg-core.o
  CC [M]  /root/ov51x-jpeg-1.5.9/ov511-decomp.o
  CC [M]  /root/ov51x-jpeg-1.5.9/ov518-decomp.o
  CC [M]  /root/ov51x-jpeg-1.5.9/ov519-decomp.o
  LD [M]  /root/ov51x-jpeg-1.5.9/ov51x-jpeg.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /root/ov51x-jpeg-1.5.9/ov51x-jpeg.mod.o
  LD [M]  /root/ov51x-jpeg-1.5.9/ov51x-jpeg.ko
make[1]: Leaving directory `/usr/src/linux-2.6.30-gentoo-r8'

Затем командой:
make install

завершаем установку модуля. После этого, воспользовавшись рекомендациями с данной страницы завершаем настройку модуля для работы видео в Skype:
echo "options ov51x-jpeg forceblock=1" | sudo tee -a /etc/modprobe.d/options

Как было написано здесь:
Теперь еще одни глюк, что бы в skype работал предпросмотр камеры (в настройках и в "видеть себя"),
надо отключить получение изображения блоками.
Делается это очень просто, надо поставить параметр загрузки модуля в /etc/modprobe.d/options
options ov51x-jpeg forceblock=1

Или загружать его руками
modprobe ov51x-jpeg forceblock=1

потому я и выполнил команду echo, чтобы постоянно не выполнять modprobe.
Затем осталось только выставить в настройках Skype появившиеся устройства.
Микрофон:



Камера:



После этих действий я, «О чудо, не прошло и 3 года», смог наконец-то провести видеозвонок. Отмечу также, что настройку ядра я проводил по данному руководству, избавившись от модулей gspca_ov519 и аналогичных gspca_ov5*, чтобы в дальнейшем не было конфликтов с ov51x-jpeg.

Комментарии (11)

RSS свернуть / развернуть
+
0
а у тебя именно Gentoo стоит? а в чём её преимущество, например, с Убунту? просто ещё пока не решил, что себе ставить второй системой. хочу давно перелезть на линукс. Метлов предпочитает Gentoo, ты про эту систему пишешь. вот и интересуюсь.
avatar

degtyarchuk

  • 25 июня 2010, 17:02
+
0
Да черт его знает, в чем там преимущества, просто стала роднее, лучше с этим дистрибутивом знаком. У меня просто был неудачный опыт сидения на федоре и мандриве и после этого сказал «стоп — хватит». Особенно раздражало это обновления, которые сыпали вечно систему. Ну и так, когда процесс инсталляции происходит не в графике, а через консоль и потом тратишь достаточное время на настройку под себя, оно уже и родным становится, если где ошибка, никогда матом в сторону разработчиков не несешь, пытаешься что своими силами, что с помощью инета вылечить.
Одним словом, как писалось на одном из форумов в ответе на вопрос, какой из дистрибутивов посоветуете, ставьте тот, который стоит у вашего друга, который разбирается в нем.
avatar

yuginboy

  • 25 июня 2010, 19:14
+
0
значит убунту!
avatar

degtyarchuk

  • 25 июня 2010, 19:31
+
0
Ты ж про линуху еще зимой говорил, что хочешь перейти. Все руки не доходят? ;)
avatar

yuginboy

  • 25 июня 2010, 19:59
+
0
не доходят ((( но я не унываю и руки не опускаю! обязательно как-нить пересяду на убунту.
avatar

degtyarchuk

  • 25 июня 2010, 20:26
+
0
Да, ну и еще почему я на гентухе остановился, это то, что я не знаю как обстоят дела с шифрованием root-раздела в убунте и насколько легко там будет обстоять дела с переходом на новое ядро при сохранении шифрования. Когда я искал, мне тока нечто (скрипт, чтобы не ручками мастырить и перепаковывать ядро) попадалось под дебиан, можна предположить что и для бубунты будет. Ну а в генту: genkernel --luks --dmraid --lvm all делает это достаточно оперативно включая загрузку с рэйда, поддержкой лвмов ну и возможностью работы с зашифрованных корневых разделов. Я знаю, что многие пеняют на то, что генкернел включает много лишнего, но меня это не смущает, места на диске хватает, а универсальность и скорость перехода дают фору этому минусу.
avatar

yuginboy

  • 25 июня 2010, 20:20
+
0
просто поставить камеру… обалдеть
avatar

cyril

  • 28 июня 2010, 15:40
+
0
Это ж не просто камера, а та, на которую нет нормальных модулей в ядре. Есть уйма камер которые работают без вообще каких-либо лишних телодвижений, даже с инета не надо ничего тянуть.
avatar

yuginboy

  • 28 июня 2010, 20:01
+
0
Женя да я так… пользуясь случаем просто поворчал. Ты ведь знаешь мою позицию — все должно быть очень просто. Включил и пользуешься. На улице 2010 год однако. Танцы с бубном очень дорого обходятся.
avatar

cyril

  • 30 июня 2010, 02:51
+
+1
а ему всегда нравились картинки и фильмы с элементами садомозахизма )))
avatar

degtyarchuk

  • 30 июня 2010, 08:55
+
0
))))) +5
avatar

cyril

  • 30 июня 2010, 16:44

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Не забываем смотреть статистику:

Яндекс цитирования