Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: kgochev в May 11, 2010, 17:12



Титла: Драйвер за WEB камера - как?
Публикувано от: kgochev в May 11, 2010, 17:12
Опитвам се да си подкарам камерата. Първо разбрах това:
dmesg | less
433.279177] Linux video capture interface: v2.00
[  433.298069] uvcvideo: Found UVC 1.00 device USB2.0 PC CAMERA (18ec:3290)
[  433.302230] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
[  433.306067] input: USB2.0 PC CAMERA as /devices/pci0000:00/0000:00:03.1/usb3/3-1/3-1:1.0/input/input9
[  433.306660] usbcore: registered new interface driver uvcvideo
[  433.310699] USB Video Class driver (v0.1.0)

то е само част от изхода при тази команда, но от него се разбира какъв тип е камерата, в смисъл кой е производителят. След това изпълних:

lsusb -v -d 18ec:3290

Bus 003 Device 002: ID 18ec:3290 Arkmicro Technologies Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x18ec Arkmicro Technologies Inc.
  idProduct          0x3290

в края на което пише

wMaxPacketSize     0x03c8  1x 968 bytes
        bInterval               1
cannot read device status, Operation not permitted (1)

т.е. не ще да се разбере с нея.

Накрая намерих драйвер за камерата, който би следвало да се постави на мястото на uvcvideo.ko Драйверът е на http://bitbucket.org/hiranotaka/dvb-pt1/src/dc1b11be42d7/linux/drivers/media/video/uvc/uvc_driver.c
Предполагам, че е програмен код, който трябва да се компилира, защото uvcvideo.ko пък е обектен код и не мога да го "видя" с никаква програма.

Та въпросът ми е: Как да сменя едното с другото и дали това е начинът?



Титла: Re: Драйвер за WEB камера - как?
Публикувано от: ROKO__ в May 11, 2010, 18:14
.ko е самият модул но както и да е няма да ти свърши работа


Титла: Re: Драйвер за WEB камера - как?
Публикувано от: ROKO__ в May 11, 2010, 18:15
Пробва ли първо да заредиш всички модули в ядрото в секцията Device Drivers Multimedia V4L Devices GSPCA based cam


Титла: Re: Драйвер за WEB камера - как?
Публикувано от: pulsari в May 11, 2010, 20:37
На мен това ми свърши работа:http://skss.learnfree.eu/archives/738 ($2)


Титла: Re: Драйвер за WEB камера - как?
Публикувано от: tolostoi в May 12, 2010, 11:39
Май uvc драйвер ти трябва, но не си казал с какво дистро си и до къде са я докарали там нямам идея  ???  Виж тук https://help.ubuntu.com/community/UVC ($2)


Титла: Re: Драйвер за WEB камера - как?
Публикувано от: kgochev в May 12, 2010, 20:57
Дистрибуцията ми е Ubuntu 10.04-LTS.
По отношение на инсталиране на всички модули, може би не ми е ясно, но ми се струва, че като сложа камерата, системата я "намира", т.е. има съответния модул. В първия ми пост съм приложил изходите от dmesg | less и lsusb -v -d 18ec:3290. От резултата на първата команда става ясно, че камерата "се познава", но във функционално отношение не е съвместима с определена "проба" (uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.) Точно този проблем се решава от програмния код в посочения линк. (http://bitbucket.org/hiranotaka/dvb-pt1/src/dc1b11be42d7/linux/drivers/media/video/uvc/uvc_driver.c) Аз предполагам, че от това може да стане модул или част от него, но не знам как да го направя и всъщност в това ми е проблема.
Благодаря и на pulsari и tolostoi, но предложените линкове не покриват проблема ми. Първият - не е такава "картинката" и съответният пакет е вече инсталиран, а вторият касае по-ранните  кернели, в които няма uvc драйвери (само че аз съм си виновен, защото наистина не съм писал каква ми е дистрибуцията).
Все пак, искам да помоля roco да ми обясни по-подробно (или да ми каже къде да прочета), как да да заредя всички модули в ядрото в секцията Device Drivers Multimedia V4L Devices GSPCA based cam, защото това не ми е ясно.(не съм разбутвал кернел, не разбирам от това пък и засега ме е страх да се уча "на сляпо")


Титла: Re: Драйвер за WEB камера - как?
Публикувано от: tolostoi в May 12, 2010, 21:40
Аха, тогава, ако това което си дал ти трябва (понеже не съм в течение с това което питаш, предполагам си проучил въпроса), то пробвай така.
Код:
sudo apt-get install module-assistant mercurial
sudo m-a prepare
hg clone http://bitbucket.org/hiranotaka/dvb-pt1
cd dvb-pt1
т. е. вече имаш сорса, там имаш и хелп файл, четеш и компилираш. Ето какво пише там
Mauro Carvalho Chehab                                   2006 Apr 26

V4L/DVB building procedures are based at the use of Makefile rules.
Those rules are close to the ones at Linux Kernel, to allow an easier
usage.

=======================================================================
Quick building procedure is:
 make all
======================================================================

For those who may want more than just build all stuff there are some
other interesting parameters to make:

======================
Normal building rules:
all      - build all modules

clean      - Cleans compiled files from the tree,
    but keeping the latest
    used configuration and kernel version

distclean   - Cleans compiled files from the tree,
    latest used configuration and kernel
    version.

default      - Continues building the latest module selection
    This is the behavior when just typed:
   make

install      - Installs all modules at kernel's default dir
    for V4L/DVB. Requires root access.

man_install   - Install V4L2 API man pages.

rminstall   - cleans previous installations of V4L/DVB modules

sound-install   - installs the sound modules related to V4L/DVB
    tree.

======================
Firmware rules:

firmware   - Create the firmware files that are enclosed at the
    tree.
    Notice: Only a very few firmwares are currently here

firmware_install- Install firmware files under /lib/firmware

======================
Documentation rules:
spec      - Creates both V4L and DVB API specification

man      - Creates V4L2 API man pages

=======================
Module selection rules:
(Those may require write access to kernel tree)

allmodconfig   - Called by make all. Selects all modules that are known
    to compile against the kernel version used.

xconfig      - Generate a xconfig menu. Requires full
    kernel source, since it depends on kernel's
    qconf stript;

gconfig      - Generate a qt menu. Requires full
    kernel source, since it depends on kernel's
    gconf stript;

config      - Generate a text-mode menu. Requires full
    kernel source, since it depends on kernel's
    conf stript;

menuconfig   - Generate a ncurses menu. Requires full
    kernel source, since it depends on kernel's
    mconf and lxconfig stripts;

release      - Allows changing kernel version.
    Typical usage is:
   make release VER=2.6.12-18mdk
   (to force compiling to 2.6.12-18mdk)
   (This will work only if
    /lib/modules/2.6.12-18mdk/build/
    points to that kernel version)
    Or
   make release DIR=~/linux-git
   (to force using kernel at a specific dir)
    To use current kernel version instead:
   make release

======================
Module handling rules:
(require root access)

insmod      - inserts all modules from V4L/DVB tree

rmmod      - removes all modules from V4L/DVB tree

reload      - removes then reinserts all modules

===================
Tree merging rules:

ivtv      - enable merged ivtv build, using the latest ivtv sources
    from ivtvdriver.org (requires subversion)

cx88-ivtv   - enable cx88-blackbird ivtv API emulation

ivtv-update   - update ivtv sources from ivtvdriver.org

==========================================
Patch preparation and tree handling rules:
(used by developers)

kernel-links   - Generate links to V4L/DVB at kernel tree.
    Requires write access to kernel tree.

cardlist   - Updates Documentation/video4linux/CARDLIST.*

update      - updates the tree from master repository

commit      - commits the change, asking for a commit msg

push      - sends outgoing stuff to master repository

checkemacs   - checks codingstyle and reports to emacs
    using "make checkemacs" at emacs compile menu,
    will report the lines with errors inside emacs.

checkpatch   - checks codingstyle and reports using the same
    format as c. This way, c error parsers will
    handle it.

checkterse   - checks codingstyle and reports using terse
    syntax, used on several compilaton tools.

mismatch   - checks for linker section mismatch. In other words,
    check if some driver has functions not properly
    declared with __init/__exit, and similar tags.
    It will also be more pedantic by dealing with
    compilation warnings as if they are errors.


Титла: Re: Драйвер за WEB камера - как?
Публикувано от: kgochev в May 13, 2010, 16:47
Направих последното, което ме посъветва toostoi. Резултатът е, че се опитва да създаде модули, но разширението с което ги прави е  .о, докато моите са с .ко В края на краищата, командата sudo make дава грешка и фактически не мога след това да инсталирам модулите. Единственият резултат, (който обаче не е свързан с това, което правих), е че подкарах камерата с guvcview (това обаче не означава, че имам видео в Skype). Ако можете, помагайте, пък аз продължавам да чета....


Титла: Re: Драйвер за WEB камера - как?
Публикувано от: tasmaniec в May 13, 2010, 20:06
Здравей,прочети тука.На мен ми свърши работа. http://skss.learnfree.eu/archives/738


Титла: Re: Драйвер за WEB камера - как?
Публикувано от: kgochev в May 14, 2010, 10:55
Благодаря на всички! Проблемът се реши по начина, предложен от pulsari и tasmaniek. Съжалявам, но отначало мислех, че това не е моя случай и просто, когато го предложи pulsari, не съм го пробвал докрая. Сега го направих и стана. Още един път Благодаря на всички!!!