12/03/2007

Настройка веб-камеры Logitech QuickCam Messenger в Linux

Давно хотел приобрести подобное устройство (webcam), но было лень и не доходили руки. Пока мой давний друг не подарил мне сие чудо на день рожденья. О том, как с полпинка настроить веб камеру в Linux, будет говориться здесь.

Подготовка
Несколько предварительных замечаний - если вы не собирали сами, можно пропустить эту часть.
Нужно учесть, что видеокамера в Linux - такое же точно видеоустройство, как и TV-Tuner. Поэтому все замечания о настройке TV-Tuner в силе. Если у вас дистрибутивное ядро - там всё уже включено, а для любителей самосборных ядер нужно включить:
  • v4l и все его протоколы (само v4l монолитом, протоколы - модулями)
  • i2c и его протоколы (так же, фактически как при установке ТВ-тюнеров)
Если это в ядре есть, дальнейшее не составит проблем.


Установка
На коробке пишут: установка проста, как раз-два-три. В общем, у меня так и получилось:

1. Устанавливаем программное обеспечение.
Запускаем с балкона два прилагающихся диска и вместо этого ставим из репозитория:
sudo aptitude install gspca-source camorama
В каталоге /usr/src появится архив с исходниками gspca-source.tar.bz2 - распаковываем его прямо там. После этого переходим в каталог /usr/src/modules/gspca и там выполняем команду:
make
Модуль должен собраться без ошибок. Далее пишем:
sudo make install
Это установит наш модуль в каталог к другим модулям ядра. На всякий случай, можно после этого написать:
sudo depmod -a
Всё, время загрузить модуль ядра для вебкамеры:
sudo modprobe gspca
Теперь всё готово. Врубаем камеру и запускаем софт.


2. Подключаем камеру
Подключаем USBшный штекер камеры, она мигнёт зелёным светодиодом. На всякий случай смотрим выводы dmesg, появится что-то вроде:

usb 4-1: new full speed USB device using uhci_hcd and address 6
usb 4-1: configuration #1 chosen from 1 choice
/usr/src/modules/gspca/gspca_core.c: USB SPCA5XX camera found.(ZC3XX)
/usr/src/modules/gspca/gspca_core.c: [spca5xx_probe:3887] Camera type JPEG
/usr/src/modules/gspca/Vimicro/zc3xx.h: [zc3xx_config:515] Sensor ID:7
/usr/src/modules/gspca/Vimicro/zc3xx.h: [zc3xx_config:597] Find Sensor HV7131R(c)
/usr/src/modules/gspca/gspca_core.c: [spca5xx_getcapability:1165] maxw 640 maxh 480 minw 176 minh 144
usbcore: registered new interface driver gspca
/usr/src/modules/gspca/gspca_core.c: gspca driver 01.00.04 registered

Диагностические выводы показывают, что чип опознан. Теперь должен появиться файл устройства /dev/video0 - это и есть наша вебкамера. После этого запускаем программу по работе с камерами (её мы устанановили на предыдущем шаге):
$ camorama
Если всё было сделано верно, вы увидите видеоизображение в окошке программы и простой интерфейс управления изображением (яркость\контраст, насыщенность, фильтры и прочее). Вот что увидел я:


3. Общаемся
Свежеподключённое устройство теперь можно использовать в Wengophone для видеоконференций с друзьями и коллегами. Надо сказать, что процессор грузит обработка изображений с видеокамеры очень слабо, не более 4-5% (во всяком случае у меня на ноутбуке).

Помимо общения в системах VoIP, можно напрячь фантазию и найти много интересных применений вебкамерам. Можно это устройство использовать как охранную камеру или телеметрическую: streamer будет обращаться с ней, как с обычным тюнером, и дёргать оттуда изображения через задаваемые промежутки времени. В общем, много применений.


Итоги
Несмотря на то, что на коробке говорится только об Единственой На Планете Земля Операционной Системе, Logitech QuickCam Messenger отлично работает и в Линукс - и настраивается за те же три шага. Минус сотни мегабайт бесполезного проприетарного мусора.

В процессе настройки я пользовался вот этим замечательным и кратким руководством, так как у меня самосборное ядро. У тех, кто пользуется дистрибутивным, может быть полезно вот это руководство. Это руководство проверялось в следующих условиях: ядро 2.6.22, компилятор gcc 3.4, Debian GNU/Linux Etch v4.0, gspca-source 01.00.04-2.

42 комментария:

  1. Миша, ты в букве ошибся (и прямо меня в заблуждение ввёл:)). Поправь Messanger на Messenger.

    ОтветитьУдалить
  2. ну наверное всё-таки depmod, а не depmode :)
    вот только после подгрузки модуля он ругается на FATAL: Error inserting gspca (/lib/modules/2.6.18-5-686/kernel/drivers/usb/media/gspca.ko): Invalid module format

    Как поправить?

    ОтветитьУдалить
  3. dmesg еще выдал:
    gspca: version magic '2.6.18-5-686 SMP mod_unload 686 REGPARM gcc-4.2' should be '2.6.18-5-686 SMP mod_unload 686 REGPARM gcc-4.1'

    ОтветитьУдалить
  4. у меня эта же камера уже год живёт. в ubuntu dapper ставил драйвер сам, в edgy - из репа исходники потом module assistant, в feisty - из коробки, в gutsy тоже.

    проблемы с ней есть: драверы gspca/spca5xx (в ubuntu gutsy/feisty) не поддерживают все её настройки - не умеют менять частоту кадров между 25 и 30 Гц (мерцание источников света), регулировка баланса белого похоже тоже не работает. видео в разрешении vga с частотой 30 кадров снимать не умеет. переключение разрешения рушит camoramу, ekiga ещё живёт после этого, но не долго.

    кроме camorama есть ещё cheese -- он проще, умеет писать видео, есть какие-то эффекты.

    а ещё интересно было бы задействовать кнопку камеры. есть подозрение, что scannerbuttond её проглотит, если приучить его вопринимать камеру (где-то в исходниках прописать device id).

    ОтветитьУдалить
  5. > Запускаем с балкона два прилагающихся диска и вместо этого ставим из репозитория:
    > sudo aptitude install gspca-source camorama

    Хыхы, debian-way :)

    ОтветитьУдалить
  6. 2 Tigro пишет...

    Миша, ты в букве ошибся (и прямо меня в заблуждение ввёл:)). Поправь Messanger на Messenger.
    Аркадий, спасибо! Как ж я это проглядел? :-) Спасибо большое.


    2 RiZN пишет...
    ну наверное всё-таки depmod, а не depmode :)
    Да, конечно :-) Странно, вроде брал текст из вывода команд, а всё равно косяк пролез. Спасибо за багфикс.

    вот только после подгрузки модуля он ругается на FATAL: Error inserting gspca (/lib/modules/2.6.18-5-686/kernel/drivers/usb/media/gspca.ko): Invalid module format
    Скорее всего, ядро собрано одной версией компилятора, а модуль - другой.


    gspca: version magic '2.6.18-5-686 SMP mod_unload 686 REGPARM gcc-4.2' should be '2.6.18-5-686 SMP mod_unload 686 REGPARM gcc-4.1'

    Так и есть: ставьте версию 4.1 gcc и соберите модуль снова.

    2 dmig пишет...
    у меня эта же камера уже год живёт.
    Это понятно - просто решил поделиться, как камеру поднимал. А то народ на убунтуфоруме искать не любит - сюда посылать буду :-)

    проблемы с ней есть: драверы gspca/spca5xx (в ubuntu gutsy/feisty) не поддерживают все её настройки - не умеют менять частоту кадров между 25 и 30 Гц (мерцание источников света), регулировка баланса белого похоже тоже не работает. видео в разрешении vga с частотой 30 кадров снимать не умеет. переключение разрешения рушит camoramу
    Да, что-то с разрешением там криво. Но я её приспособил как ИК-камеру (снял фильтр) и в таком виде она меня устраивает.

    ОтветитьУдалить
  7. У меня Logitech QuickCam Connect.
    Пробовал настроить камеру с помощью руководства "Set up your web cam on Debian Etch"

    dmesg:
    usb 2-4: new full speed USB device using ohci_hcd and address 4
    usb 2-4: configuration #1 chosen from 1 choice
    Linux video capture interface: v2.00
    /usr/src/modules/spca5xx/drivers/usb/spca5xx.c: USB SPCA5XX camera found. Logitech QC IM/Connect
    /usr/src/modules/spca5xx/drivers/usb/spca5xx.c: [spca5xx_probe:5480] Camera type JPEG
    /usr/src/modules/spca5xx/drivers/usb/zc3xx.h: [zc3xx_config:558] Find Sensor HV7131R(c)
    /usr/src/modules/spca5xx/drivers/usb/spca5xx.c: [spca5xx_getcapability:1765] maxw 640 maxh 480 minw 176 minh 144
    usbcore: registered new driver spca5xx
    /usr/src/modules/spca5xx/drivers/usb/spca5xx.c: spca5xx driver 00.60.00 registered
    usbcore: registered new driver snd-usb-audio
    ioctl32(camorama:3446): Unknown cmd fd(19) cmd(803c7601){00} arg(ffa02f90) on /dev/video0

    Выдает

    ОтветитьУдалить
  8. Выдает ошибку:
    Could not connect to video device (/dev/videoO).
    Please check connection.

    ОтветитьУдалить
  9. Миша, спасибо за пост!

    У меня тоже валяется на полке какая-то безымянная USB-камера. Всё никак руки не дойдут попробовать, работает ли. Твои опыты обнадёживают :)

    ОтветитьУдалить
  10. Несколько предварительных замечаний - если вы не собирали сами, можно пропустить эту часть.
    Чего-то не хватает... :)

    ОтветитьУдалить
  11. 2 gio пишет...

    У меня Logitech QuickCam Connect.
    Пробовал настроить камеру с помощью руководства "Set up your web cam on Debian Etch"

    А она поддерживается gspca?

    И ещё - такое сообщение, которое вы получили, говорит скорее всего об отсутствии прав на /dev/video0

    2 jetxee пишет...
    Миша, спасибо за пост!
    Пожалуйста. Пост лежал довольно продолжительное время - всё руки не доходили его выкатить.

    У меня тоже валяется на полке какая-то безымянная USB-камера.
    Очень может быть, что оно как раз заведётся с полоборота. Безродная китайщина, как правило, изощрённые чипы не использует :-)

    2 Анонимный пишет...
    Чего-то не хватает...
    А чего? Я забыл modprobe telepathy_wireless

    ОтветитьУдалить
  12. Но я её приспособил как ИК-камеру (снял фильтр)
    оппа... :)))

    ЗЫ зря сказал!!

    ОтветитьУдалить
  13. 2 virens пишет...

    А она поддерживается gspca?

    spca5xx точно поддерживает

    И ещё - такое сообщение, которое вы получили, говорит скорее всего об отсутствии прав на /dev/video0

    Права на /dev/video0 есть...

    ОтветитьУдалить
  14. >> Чего-то не хватает...
    > А чего?
    Когда читал не понял, что я мог собирать сам.. Первая мысль была про камеру.. А оказалось ядро :)

    ОтветитьУдалить
  15. 2gio zei...
    == spca5xx driver 00.60.00
    Проблема, кажется, в версии драйвера - поставьте что-нибудь поновее.
    У меня с ядром 2.6.18 пришла гораздо более свежая версия - можно ставить через apt-get

    2 All
    Кто-нибудь ее в режиме 640х480 заставил работать?

    ОтветитьУдалить
  16. У меня камера Logitech Quickam Connect. Для настольного компа Ваша инструкция мне помогла. На ноуте камера завелась почему-то сразу (просто подключил и запустил камораму)...

    ОтветитьУдалить
  17. никто не пробовал подключать камеру телефона Sony Eri k750i как веб-камеру?

    ОтветитьУдалить
  18. Эх.. Если бы все камеры так легко заводились. Было бы мне счастье. Я вот пытался заставить работать Genius Slim 320. И ни в какую...

    ОтветитьУдалить
  19. Спасибо за пост, использовал его в качестве отправной точки при подключении веб камеры genius look 110.
    Пара замечаний все же есть.
    1) Те кто пользуются стандартным ядром в etch могут установить готовый пакет с модулями прямо из репозитория, к примеру gspca-modules-2.6-686, без дополнительных телодвижений с исходниками, make-ами и пр. (что хорошо для новичков).
    2) Способ сборки модулей через make - это скорее слака-вэй, имхо. Я делал так:
    view /usr/src/gspca-01.00.20/debian/README.Debian (ключевой момент - читаем документацию :))
    m-a -l 2.6.24 prepare
    m-a a-b -l 2.6.24 gspca
    в результате получаем готовый .deb пакет, который можно устанавливать или удалять с помощью dpkg (т.е. общепринятыми в debian средствами). Если есть возможность, думаю это стоит отразить в статье.
    3) И еще, при сборке модулей для ядра 2.6.24 из исходников gspca в etch-е получал ошибки (...CFLAGS was changed in "/usr/src/modules/gspca/Makefile"...). Взял gspca-source из testing - и все прошло гладко

    ОтветитьУдалить
  20. Модуль загрузился, устройство /dev/video0 имеется, но при запуске camorama виснет. В логах ничего нет. Камера Logitech QuickCam Sphere MP. Где могут быть грабли?

    ОтветитьУдалить
  21. После перезагрузки все заработало. Хотелось бы узнать как избежать перезагрузки

    ОтветитьУдалить
  22. а как подключить веб камеру к skype?

    ОтветитьУдалить
  23. Ну ты Михан, маладец удалец, что собрал ядро 22 версии. А я не смог. Достал меня devfs с ошибками. Его же нету уже. А камера у меня кажись другая. Тоже Logitech. QuickCam как-то так. Вообщем я юзал UVC модуль и прогу camstreams. Ну и твой метод тоже поюзал. Ни то и ни то не пашет. Я этот сайт скорей всего забуду. Я обычно на nixp.ru форуме. Если будет время глянь.

    ОтветитьУдалить
  24. Подскажите пожалуйста, можно ли настроить цифровую камеру Sony DCR-DVD610E как WEB. И если да, то как это сделать?

    ОтветитьУдалить
  25. недавно перешел на линукс и с модулями не особо силён =(
    делал всё по мануалу, но в папке /dev видео девайсы так и не появились, соответственно камера не работает. Хелп плз.
    Debian Lenny 2.6.26.1-486
    -----
    phenix@phen:~$ lsmod | grep i2c
    i2c_nforce2 5536 0
    i2c_core 19828 2 nvidia,i2c_nforce2
    phenix@phen:~$ lsmod | grep v4l
    phenix@phen:~$ sudo modprobe gspca
    [sudo] password for phenix:
    phenix@phen:~$ lsmod | grep v4l
    v4l1_compat 12260 1 videodev
    phenix@phen:~$ dmesg | tail
    [ 71.556015] eth0: no IPv6 routers present
    [ 144.266984] Linux video capture interface: v2.00
    [ 144.304742] usbcore: registered new interface driver gspca
    [ 144.304750] gspca: gspca driver 01.00.20 registered
    [ 160.460026] usb 1-3: new full speed USB device using ohci_hcd and address 2
    [ 160.672002] usb 1-3: configuration #1 chosen from 1 choice
    [ 160.689021] usb 1-3: New USB device found, idVendor=17a1, idProduct=0128
    [ 160.689033] usb 1-3: New USB device strings: Mfr=32, Product=38, SerialNumber=0
    [ 160.689036] usb 1-3: Product: USB2.0 JPEG WebCam
    [ 160.689039] usb 1-3: Manufacturer: TASCORP

    ОтветитьУдалить
  26. анониму:

    Если вы не собирали ядро самостоятельно (а скорее всего так и есть), то для стандартных дистрибутивных ядер достаточно доустановить пакет gspca-modules-ВЕРСИЯ (версию своего ядра можно узнать, выполнив команду uname -r). В этом случае ничего собирать самостоятельно не нужно. Я так и делаю :)

    Моя безымянная камера после этого заработала и в Camorama, и в Skype. Нужный модуль загружается автоматически при подключении камеры.

    ps. Считайте, что модули — это «драйвера». Каждый из них — это отдельный файл, который система может подключить при необходимости. Автоматически или принудительно (по команде modprobe). В случае Linux модули большинства устройств обычно распространяются в исходном виде и входят в стандартную поставку ядра. В редких случаях их нужно доустановить/собрать отдельно.

    ОтветитьУдалить
  27. gspca-modules для моего ядра стоят. ядро я поставил из репов.
    правда не пойму почему, но после перезагрузки модуль qspca не загружается автоматически.
    з.ы. чтобы не захламлять тему, если у кого есть желание помочь - пишите в аську 106-девять-три-семь-176, буду очень благодарен
    //предыдущий аноним

    ОтветитьУдалить
  28. theres a new sensor update for tascorp. look at http://linuxtv.org/hg/~jfrancois/gspca/

    ОтветитьУдалить
  29. Привет, Всем! Народ, видео на компутере есть! И в Cheese и в Skype всё функционирует! Подскажите, а что делать чтобы заработала camorama под Ubuntu 8.10, ядро 2.6.27-11, патаюсь вот собрать модуль из исходников sudo aptitude install gspca-source camorama, но вот что получается...
    /usr/src/modules/gspca#make
    make -C /lib/modules/`uname -r`/build SUBDIRS=/usr/src/modules/gspca CC=cc modules
    make[1]: Вход в каталог `/usr/src/linux-headers-2.6.27-11-generic'
    CC [M] /usr/src/modules/gspca/gspca_core.o
    /usr/src/modules/gspca/gspca_core.c:54:27: error: asm/semaphore.h: No such file or directory
    /usr/src/modules/gspca/gspca_core.c: В функции ‘spca5xx_ioctl’:
    /usr/src/modules/gspca/gspca_core.c:2463: ошибка: неявная декларация функции ‘video_usercopy’
    /usr/src/modules/gspca/gspca_core.c: На верхнем уровне:
    /usr/src/modules/gspca/gspca_core.c:2609: ошибка: неизвестное поле ‘owner’ в инициализаторе
    /usr/src/modules/gspca/gspca_core.c:2609: предупреждение: несовместимый тип указателя в инициализации
    /usr/src/modules/gspca/gspca_core.c:2611: ошибка: неизвестное поле ‘type’ в инициализаторе
    /usr/src/modules/gspca/gspca_core.c: В функции ‘spca50x_create_sysfs’:
    /usr/src/modules/gspca/gspca_core.c:2769: ошибка: неявная декларация функции ‘video_device_create_file’
    /usr/src/modules/gspca/gspca_core.c:2780: ошибка: неявная декларация функции ‘video_device_remove_file’
    /usr/src/modules/gspca/gspca_core.c: В функции ‘spca5xx_probe’:
    /usr/src/modules/gspca/gspca_core.c:4301: ошибка: несовместимые типы в присваивании
    make[2]: *** [/usr/src/modules/gspca/gspca_core.o] Ошибка 1
    make[1]: *** [_module_/usr/src/modules/gspca] Ошибка 2
    make[1]: Выход из каталога `/usr/src/linux-headers-2.6.27-11-generic'
    make: *** [default] Ошибка 2

    ...Заранее СПАСИБО!

    ОтветитьУдалить
  30. ...дополнительный вывод к предыдущему вопросу...
    lsmod | grep v4l
    v4l1_compat 22404 1 videodev

    ОтветитьУдалить
  31. Абсолютно таже проблема.Поэтому попробывал сам установить драйвер через репозиторий,программу тоже.При запуске программы изображение вылезает,но смазанное и в полосочку,сразу после этого выскакивает ошибка.В чем проблема?Скайп камеру чикать не хочет.

    ОтветитьУдалить
  32. Промучался с той же проблемой...
    Под 8.10 gpca уже изначально есть. Только некоторые приложения требуют v4l1 а не v4l2.
    Собственно ответ на вопрос как запустить видео описан на https://bugs.launchpad.net/ubuntu/+source/gspca/+bug/291723

    ОтветитьУдалить
  33. вот такой получился результат:
    /usr/src/modules/gspca$ make
    make -C /lib/modules/`uname -r`/build SUBDIRS=/usr/src/modules/gspca CC=cc modules
    make: *** /lib/modules/2.6.26-2-686/build: No such file or directory. Stop.
    make: *** [default] Error 2

    ОтветитьУдалить
  34. Как подключить Веб-Камеру? Куда втыкать питание? если на проц нет гнезда?

    ОтветитьУдалить
  35. Установи пакет
    linux-headers-2.6.26-2-686

    ОтветитьУдалить
  36. Начинающий: сразу споткнулся на первом пункте "В каталоге /usr/src появится архив с исходниками gspca-source.tar.bz2 - распаковываем его прямо там." Пытаюсь распаковать, выпадает окошко "Не достаточно прав для распаковки архивов в папке /usr/src"

    ОтветитьУдалить

  37. Scyphius пишет...
    вот такой получился результат:
    /usr/src/modules/gspca$ make
    make -C /lib/modules/`uname -r`/build SUBDIRS=/usr/src/modules/gspca CC=cc modules
    make: *** /lib/modules/2.6.26-2-686/build: No such file or directory. Stop.
    make: *** [default] Error 2

    У меня тоже самое, что делать?

    ОтветитьУдалить
  38. поможи, пожалуйста, не могу разобраться, получил дебиант тестинг, раньше был ленни, все по тебе работало, а теперь каморама и чииз тока после
    "export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so"
    но skype не дышит :(

    ОтветитьУдалить
  39. У меня веб-камера Logitech Webcam C160.Подключила.В Агенте пытаюсь сделать видео вызов.Меня слышат,но не видят.Почему так?Помогите настроить видеосвязь.

    ОтветитьУдалить
  40. Спасибо за статью, в своё время очень помогла. Только, возможно, стоит добавить, что в Squeeze (в данный момент testing) это уже не требуется, а gspca-source нет в репозиториях, т.к. он уже включён в новые ядра.

    ОтветитьУдалить
  41. Люди если у вас размытое изображение то под объективом некоторых веб камер есть что-то типо колёсика- покрутите его и изображение настроится

    ОтветитьУдалить
  42. Уважаемые а можно вопросик? Я хотел бы приобрести веб камеру примерно от 500-700 рублей, но не знаю какую модель подобрать. По Вашему рецепту подойдёт любая из семейства Logitech?

    ОтветитьУдалить