Přihlásit | Registrovat

Nastavení systému pro zprovoznění webové kamery

Následující odstavec platí pro Mandriva Linux 2010.0 32 bit a USB kamerky

  1. Zakoupit podporovanou kameru (podporovaný čip)
  2. Připojit k USB portu a do konzoly zadat příkaz dmesg. Mělo by se objevit něco podobného:
usb 4-2.3: New USB device found, idVendor=045e, idProduct=00f7
usb 4-2.3: New USB device strings: Mfr=0, Product=1, SerialNumber=0
usb 4-2.3: Product: USB camera
usb 4-2.3: configuration #1 chosen from 1 choice
usb 4-4.1: new low speed USB device using ehci_hcd and address 6
Linux video capture interface: v2.00
gspca: main v2.8.0 registered
gspca: probing 045e:00f7
sonixj: Sonix chip id: 11
gspca: /dev/video0 created
gspca: probing 045e:00f7
gspca: intf != 0
gspca: probing 045e:00f7
gspca: intf != 0
usbcore: registered new interface driver sonixj
sonixj: registered
usbcore: registered new interface driver snd-usb-audio

Podstatná je informace o použitém ovladači, v tomto případě jde o kamerku s čipem Sonix, ovladač se jmenuje sonixj.

Cesta nejsnadnější: kamerka funguje. Ověřte si její funkci, nejlépe v programu Cheese - jde o jednoduchý a funkční prográmek se základními funkcemi. Získáte-li obrázky či video, máte vyhráno. Pokud kamerka nebude fungovat, pokračujte postupem uvedeným dále.

Kamerka nefunguje automaticky

Zda je ovladač zaveden zjistíte příkazem modinfo:

# modinfo sonixj
modinfo: could not find module sonixj

Takže systém pozná kamerku (viz výpis výše), ví jaký je zapotřebí ovladač (sonixj), ale ten (zdánlivě) není k dispozici. Je zapotřebí upravit soubor /etc/modprobe.preload (pozor, nesplést si s adresářem /etc/modprobe.preload.d) tak, že na konec souboru přidáte řádek obsahující slovo gspca. To přikáže systému, aby modul gspca který obsahuje ovladače pro různé čipy používané ve webkamerách a který sám je obsažen v jádře, zavedl jako aktivní (zjednodušeně řečeno). Soubor pak vypadá takto:

 # /etc/modprobe.preload: kernel modules to load at boot time.
#
# This file should contain the names of kernel modules that are
# to be loaded at boot time, one per line.  Comments begin with
# a `#', and everything on the line after them are ignored.
# this file is for module-init-tools (kernel 2.5 and above) ONLY
# for old kernel use /etc/modules


psmouse

pcspkr

gspca

A opět zkuste program Cheese. Máte obrázky?

Kamerka stále nefunguje - výměna jádra

Pokud by ani toto nepomohlo, pak lze doporučit vyměnit jádro za novější. V mém případě jsem použil kernel-tmb-desktop-2.6.31.8-1mdv-1-1mdv2010.0 společně s kernel-tmb-desktop-devel-2.6.31.8-1mdv-1-1mdv2010.0. Oba balíčky jsou ve zdroji Contrib-updates. Při následném startu systému s novým jádrem (a dříve upraveným souborem /etc/modprobe.preload) dojde k automatickému vygenerování modulu sovladačem grafické karty, virtualboxu (a případně dalších) - první start tedy trvá déle.

Pokud nyní spustíte Cheese, měl by vám poskytnout první obrázky z vaší webky. Pokud se tak nestalo ani nyní, máte asi kamerku, která v linuxu podporu nemá. Vyměňte ji ;-)

Návod na zprovoznění kamery s čipem Microdia

návod byl vytvořen pro Mandriva 2010.0, jádro kernel-desktop-2.6.31.6-1

Otestované kamery: Canyon CN-WCAM313 - identifikována jako: 0c45:6270 Microdia PC Camera (SN9C201 + MI0360/MT9V011 or MI0360SOC/MT9V111) U-CAM PC Camera NE878, Whitcom WHC017)

Webkamera Canyon CN-WCAM313 plně funkčí v jádru kernel-desktop-2.6.31.12-1 bez nějaké úpravy / instalace

pozn.: přidejte sem další kameru, pokud se vám podaří rozběhnout dle tohoto návodu

Ověření, zda kamera má čipset Microdia

v terminálu pod rootem:

su
(heslo)
lsusb

Pokud naleznete stejné číslo z výpisu jako je zde v seznamu, je vaše kamera s čipem Microdia

   0c45:6240 0c45:6242 0c45:6243 0c45:6248 0c45:624b 0c45:624c 0c45:624e 0c45:624f 0c45:6253
   0c45:6260 0c45:6262 0c45:6270 0c45:627a 0c45:627b 0c45:627c 0c45:627f 0c45:6280 0c45:6282
   0c45:6283 0c45:6288 0c45:628a 0c45:628b 0c45:628e 0c45:628f 0c45:62a0 0c45:62b0 0c45:62b3
   0c45:62ba 0c45:62bb 0c45:62bc 0c45:62be
   
   0c45:xxxx je webkamera s čipem Microdia

Minimální požadavky na software

je potřeba mít nainstalovano:
git
kernel-devel
(například kernel-desktop-devel-2.6.31.6-1mnb)
gcc
make
libv4l

Stažení zdrojového kódu

git clone http://repo.or.cz/r/microdia.git 

Vytvoření ovladače Microdia ze zroje

cd microdia
make

není důležité, pokud se objeví chybová hláška „Error 127“

Nahrání ovladače - pod rootem

insmod ./sn9c20x.ko

Problémy a řešení

- zobrazí-li se chyba typu: insmod: error inserting 'sn9c20x.ko': -1 File exists, z výpisu se dovíme, který modul je již nainstalován:

lsmod | grep sn9c20x 

a výsledek něco jako:

gspca_sn9c20x 31616  0
gspca_main    26816  1 gspca_sn9c20x 

v tomto případě je to modul gspca_sn9c20x a nahradíme jej:

rmmod gspca_sn9c20x
insmod sn9c20x.ko

Test, zda nový modul funguje správně

LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so mplayer tv:// \ -tv driver=v4l2:width=640:height=480:fps=25:device=/dev/video0 -vo x11

Instalace ovladače Microdia

strip -g sn9c20x.ko
mkdir -p /lib/modules/`uname -r`/kernel/drivers/media/video/usbvideo/
cp sn9c20x.ko /lib/modules/`uname -r`/kernel/drivers/media/video/usbvideo/
depmod -a

Test, zda funguje ve Skype

Mandriva Wiki
hardware/webcam.txt · Poslední úprava: 2010/12/23 17:19 autor: yullaw