2. A webkamera támogatásának engedélyezése Linux alatt

2.1. Meghajtók és modulok

A webkamera üzembe helyezéséhez szükséges a csatlakozás típusának és az adott kamera hardverének támogatása. Azok, akik jártasak a rendszermag (kernel) és modulok fordításában, és ismerik ezek betöltésének módját, ugorjanak a 2.2 fejezetre, amely a csatlakozás támogatását fejti ki. Ha tudod, hogy az USB, IEEE 1394 (vagy más csatlakozás, amellyel a kamerád csatlakozik a géphez) már be van állítva és működik, akkor ugorj a 2.3 fejezetre, amelyben az egyes webkamerák vannak felsorolva.

A webkamerák meghajtói általában háromféle módon érhetők el: a rendszermagon belül, modulba fordítva, vagy a Linux összeállítás terjesztője által előfordított bináris csomagban.

2.1.1. Modulként vagy rendszermagba fordítva?

Az alaptelepítésű Linux-terjesztésed gyári rendszermagja (azaz az operációs rendszer lelke) rendszerint már tartalmazhatja azt a támogatást, amire szükséged van. Valószínű, hogy a terjesztés összeállítója már előre belefordította a leggyakoribb opciókat, beleértve a busz- vagy csatlakozás-típust, és a leggyakoribb kamerák meghajtóit. A meghajtó vagy betölthető modulként, vagy a már futó rendszermag részeként lehet jelen a rendszeredben.

Egyszerűen megtudhatjuk, hogy a szükséges modul engedélyezve van-e: használjuk a dmesg parancsot a less parancsba pipe-olva (hogy könnyebben lapozhassunk):

   $  dmesg | less

...aminek valami ilyesmi lesz az eredménye (attól függően, milyen hardverünk van):

   Dec 18 17:35:18 localhost kernel: hub 5-0:1.0: USB hub found
   Dec 18 17:35:18 localhost kernel: hub 5-0:1.0: 2 ports detected
   Dec 18 17:35:18 localhost kernel: Linux video capture interface: v1.00
   Dec 18 17:35:18 localhost kernel: quickcam: QuickCam USB camera found (driver version QuickCam USB $Date: 2005/02/22 14:02:28 $)
   Dec 18 17:35:18 localhost kernel: quickcam: Kernel:2.6.7 bus:1 class:FF subclass:FF vendor:046D product:0840
   Dec 18 17:35:18 localhost kernel: quickcam: Sensor HDCS-1000/1100 detected
   Dec 18 17:35:18 localhost kernel: quickcam: Registered device: /dev/video0
   Dec 18 17:35:18 localhost kernel: usbcore: registered new driver quickcam

Ha nem látod a szükséges meghajtót, valószínűleg betölthető modulként létezik. Ha tudod, hogy mi a modul neve, keresd meg a find segítségével; az alábbi példában az "ibmcam" modult keressük:

  $  find /lib/modules -name ibmcam.o

Figyelem: a 2.4-es rendszermag-sorozatig a modulok .o kiterjesztést kaptak; a 2.6-os sorozattól pedig .ko végződést.

Megkaphatod az összes elérhető modul listáját a következő parancs beírásával:

  $  ls -R /lib/modules/`uname -r`/kernel 

ahol az `uname -r` parancs (az aposztrófok formája fontos!) a rendszermagod verzióját jelenti. A következő kimenet egy példa arra, hogy miket találhatsz egy USB-webkamera használatára felkészített rendszermagban, ahol minden modulként van betöltve (a lényegtelen sorokat töröltük, a rövidség kedvéért):

   ./usb: usbvideo.o usbcore.o ibmcam.o

Ha tudod, hogy milyen modul kell a kamerádhoz, megtudhatod, be van-e már töltve, ha beírod a következő parancsot:

   #  lsmod

Mint a fenti promptból látható, ezt a parancsot rootként kell kiadni. Az alábbihoz hasonló kimenetet kell kapnod:

   cdrom                  29312   0  (autoclean) [sr_mod]
   usb-ohci               17888   0  (unused) 
   usbcore                56768   0  [scanner ibmcam usbvideo usb-ohci] 
   ibmcam                 39680   0

A legtöbb előrefordított ("gyári") rendszermagot a kmod-dal fordítják, ami lehetővé teszi a szükséges modulok automatikus betöltését, ha az adott hardvert észleli a rendszer. Persze ez nem mindig van így, tehát ha nem találod betöltve a keresett modult, próbáld meg kézzel betölteni a modprobe paranccsal, ahogy alább látható (itt az ibmcam modult használjuk példaként):

   # modprobe -v ibmcam

A különféle webkamera-modellek meghajtói, vagy a meghajtókódokat elérhetővé tevő projektek weboldalai a 2.3 fejezetben találhatók. A meghajtókat általában három módon érhetjük el: a rendszermagon belül, fordítható önálló modulként, vagy az adott Linux-terjesztéshez előfordított bináris csomagként.

Ha a szükséges meghajtó támogatása sem a rendszermagban, sem modulként nem érhető el, akkor se ess kétségbe. Számos modellhez található meghajtó a Linux rendszermag forrásában (amit közvetlenül elérhetsz a kernel.org forráskód-gyűjteményében), vagy pedig a rendszermagtól független kód formájában, amit az aktuális rendszeredhez igazíthatsz (erről bővebben a 2.1.2 fejezetben olvashatsz). Ha a webkamera-meghajtó benne van a rendszermag forrásában, de a rendszereden nem töltődik sem modulként, sem másként, akkor vagy újrafordítod a rendszermagot a forráskódból, vagy beszerzed a rendszermag-forrás új verzióját, amit vagy a Linux-terjesztőd fordított le előre, vagy közvetlenül a fenti linkről töltöd le (az úgynevezett "vanilla" rendszermagot). Ha nem vagy járatos a rendszermag fordításában, olvasd el a Kernel-HOWTO (Rendszermag HOGYAN) dokumentumot.

2.2. A csatlakozás típusának támogatása

2.2.1. USB webkamerák

Ha USB webkamerád van, valószínű, hogy már írtak hozzá linuxos meghajtót. Linux alatt két módon támogatják az USB eszközöket. Az egyik a hagyományosabbnak mondható rendszermag-szintű támogatás, a másik a libusb-n keresztül történik. Az STV0680-alapú webkamera-modelleknek mindenképpen javasolt a libusb-támogatás, legalábbis a témával foglalkozó Sourceforge oldal szerint.

Hacsak nem vagy benne egészen biztos, hogy a meghajtódhoz libusb-támogatás kell, azt javaslom, hogy inkább a hagyományosabb rendszermag-szintű támogatáshoz ragaszkodj, a 2.2.1.2 részben felsorolt USB-eszközök esetén.

2.2.1.1. Libusb

A libusb egy programkönyvtár, amely lehetővé teszi, hogy az USB funkciókat felhasználói térből (userspace) érjük el, anélkül, hogy rendszermag-támogatást kellene engedélyeznünk vagy modulokat beszúrnunk. A legtöbb terjesztés - jelenleg - felkínálja a libusb programkönyvtárat a stabil verziókban (és néhány telepíti is alapértelmezésként), tehát ha nincs USB rendszermag-támogatás, akkor elég a libusb csomagot telepítenünk, hogy elérjük az eszközt. A rendszermagban az USB fájlrendszer támogatást engedélyeznünk kell, amit a legtöbb terjesztés meg is tesz. Hogy biztosak legyünk benne, adjuk ki a következő parancsot:

   $  cat /proc/filesystems

Ezt kell látnod (többek között):

   nodev    usbdevfs 
   nodev    usbfs

Lehet, hogy csatolni kell az usbdevfs fájlrendszert, hogy lássuk az eszköz fájlokat, amit a mount -t usbdevfs none /proc/bus/usb paranccsal tehetünk meg. Ne használd a libusb-t, ha a megfelelő rendszermag-szintű webkamera támogatást engedélyezted akár statikusan, akár modulként; egyszerre csak az egyik használható.

A libusb csomagot .rpm, .tgz vagy .deb formában szerezheted be a Linux-terjesztésed oldaláról.

2.2.1.2. Linux rendszermag USB támogatás

Rendszermag-szintű támogatás kell az USB webkamerának, ha nem libusb-t használunk (lásd fentebb).

A 2.2-es és 2.4-es rendszermag-sorozat esetén a webkamera működéséhez szükség lehet az usbvideo modulra is. A 2.6+ rendszermagokban ez már nem szükséges.

Ahhoz, hogy általános USB busz támogatás legyen Linux alatt, kelleni fog az USB alrendszer támogatás a rendszermagban, függetlenül attól, hogy usb-ohci, usb-ehci vagy milyen egyéb USB meghajtót preferál a rendszered. Az USB alrendszer támogatás az utolsó 2.2-es rendszermag óta benne van a Linuxban. Az USB támogatásról általánosságban a Linux-usb projekt oldalon találhatsz mélyebb elemzést. Ha tudni szeretnénk, milyen modulok vannak betöltve, a parancssorban vagy egy xtermben írjuk be a következőket:

   #  lsmod

Ahogy a prompton is látszik, root privilégiumok kellenek hozzá. Ehhez hasonló kimenetet kell kapni:

   cdrom	       29312   0  (autoclean) [sr_mod]
   usb-ohci	       17888   0  (unused) 
   usbcore             56768   0  [scanner ibmcam usbvideo usb-ohci] 
   ibmcam              39680   0

Ha a keresett modul nem látszik és modulként beszúrtuk a rendszermagba, akkor megpróbálhatjuk direkt betölteni (usb ibmcam modult használva példaként):

   #  modprobe -v ibmcam

...ahol valami hasonlót kell látni:

   Using /lib/modules/2.4.20/kernel/drivers/usb/ibmcam.o

Az ibmcam bejegyzés elhelyezésével (például) az /etc/modules fájlban (ez terjesztésenként változhat) automatikusan betölthetjük a modult rendszerindításkor. Ekkor ellenőrizhetjük, hogy a modul be van-e töltve, a syslog megvizsgálásával vagy a dmesg | less paranccsal, ahol hasonló bejegyzést kell látni:

   Oct 18 12:43:12 K7 kernel: hub.c: new USB device 00:02.3-2, assigned address 3 
   Oct 18 12:43:12 K7 kernel: ibmcam.c: IBM PC Camera USB camera found (model 2, rev. 0x030a) 
   Oct 18 12:43:12 K7 kernel: usbvideo.c: ibmcam on /dev/video1: canvas=352x240 videosize=352x240

2.2.2. IEEE 1394 (Firewire™, i.Link™)

Az IEEE 1394 típusú webkamerák eléréséhez egy IEEE 1394 típusú PCI kártya szükséges, vagy egy IEEE 1394 busz port az alaplapon. Az IEEE csatolófelületeket a korai 2.4-es rendszermag-sorozatok már támogatják. Ha ilyen eszközöd van, akkor a támogatásáról általános információkat találsz a www.linux1394.org oldalon. Ha 2.4.2-nél régebbi rendszermagod van, meg kell "foltozni" az ezen az oldalon található foltok valamelyikével (fontos, hogy a rendszermagodhoz illőt válassz). Továbbá szükséged lesz erre: libraw1394. A fentebb említett linux1394.org oldalon nagyszerű telepítési útmutatókat találsz.

Az IEEE1394 Digital Camera List Damien Douxchamps gondozásában páratlan összesítést kínál az IEEE 1394 kamerák képességeiről és az egyes modellek támogatottságáról.

2.2.3. Általános párhuzamos port támogatás párhuzamos porton csatlakozó webkameráknak

A 2.2 és 2.4 rendszermaggal rendelkező rendszerekben a párhuzamos port támogatást engedélyeznünk kell, akár statikusan, akár modulként (a "gyári" rendszermagok ezt általában alapértelmezésként engedélyezik). Mielőtt nekikezdesz, további információkat olvashatsz itt a párhuzamos port támogatásáról. Hogy biztosan tudjuk, hogy a parport modul be van töltve, ellenőrizhetjük a dmesg fájl vagy az lsmod parancs segítségével (lásd feljebb). A dmesg | less parancsot használva, látnunk kell (többek közt) a következőket:

   Mar  3 08:00:25 K7 kernel: parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE] 
   Mar  3 08:00:25 K7 kernel: parport0: irq 7 detected

Saját rendszermag fordításakor engedélyezd a "Parallel Port support" opciót. Engedélyezni kell az "IEEE 1284 transfer modes" opciót, és ha x86 architektúrád van, akkor a "PC style hardware" beállítást is.

Ha a modprobe hibával tér vissza, amikor be akarjuk tölteni a modult, akkor lehet, hogy meg kell határozni és át kell adni a hardver címet, amikor meghívjuk a modprobe parancsot. A legtipikusabb cím a 0x378 egy x86 rendszerben; 0x278 és 0x3BC egyéb lehetőségek integrált vagy ISA párhuzamos portoknak. PCI párhuzamos portoknak lehet szokatlan címük is. Több eszköz is összerendezhető a parport_pc vagy a parport_arc modulokkal, de ez már a dokumentum témakörén kívül esik.

Figyelem

FIGYELEM: Legyen meg a helyes a cím, mielőtt beírod a parancssorba, különben a rendszer instabillá válhat, összeomolhat.

A párhuzamos portot "EPP" vagy "ECP/EPP" módba állítsd. "Bidirectional" (másképp "BPP" vagy "PS/2") is működhet, de sokkal lassabban. "Unidirectional" mód nem alkalmas kamerázásra. A fentieket általában a BIOS menüben lehet beállítani, legalábbis x86 rendszereken.

2.3. Specifikus webkamera-modellek

Figyelem: Ez az információ gyakran változik. A Linux-USB Device Overview oldalt érdemes megnézned, ha USB webkamerád van. Továbbá az adott modell oldalát is érdemes itt megnézni: http://www.exploits.org/v4l/. Az egyes webkamera modellekről az alább közölt információk ebből a forrásból valók, tehát a fenti hivatkozáson naprakészebb információkat találhatsz. Ha egy bizonyos hardverről nincs bejegyzés, akkor is találhatsz hivatkozásokat, hogy hogyan írj saját meghajtót.

Fontos

Fontos! Ha a kamerád nincs felsorolva, akkor a legegyszerűbben úgy döntheted el, hogy a kamerád támogatott-e, hogy kideríted, melyik lapkakészlettel gyártották.

Ez az információ általában rendelkezésre áll a kamera kézikönyvében közreadott specifikációban vagy a gyártó honlapján.

Ha nem találod a kamerádat a felsorolásban és nem tudod, hogy milyen lapkakészlettel készült, akkor érdemes átnézni és/vagy feliratkozni a the video4linux-list levelezőlistára, amelynek a Red Hat ad otthont.

2.3.1. 3com HomeConnect PC Digital Webcam

Ez a meghajtó a the homeconnectusb project oldalon található rendszermag-folttal együtt támogatott. Lehet, hogy újra is kell fordítani a rendszermagot a foltozás után, a verziójától függően.

2.3.2. CPiA alapú webkamerák

A projekt honlapján naprakész információkat találsz. Ezt a lapkakészletet mind USB-n, mind párhuzamos porton csatlakozó webkamerákhoz használják, többek közt az alábbiakhoz:

  • Aiptek HyperVcam Fun USB (nem-OV511 alapú)

  • Creative Video Blaster WebCam II USB és párhuzamos port

  • CVideo-Mail Express párhuzamos port

  • Digicom Galileo USB és Digicom Galileo Plus

  • Dynalink Digital Camera

  • Ezonics EZCam (nem Pro vagy Plus)

  • I-View NetView NV200M

  • Microtek EyeStar USB

  • Pace Color Video Camera USB

  • SuperCam WonderEye

  • TCE Netcam 310 USB

  • Terracam USB (nem-OV511 alapú vagy Terracam Pro)

  • Trust SpaceC@m Lite USB és SpaceC@m 100

  • Utopia USB Camera

  • ZoomCam USB és párhuzamos port

2.3.3. SE401, SE402 és EP800 alapú USB webkamerák

Ez egy folyamatban lévő projekt. A meghajtók és egyéb hasznos információk megtalálhatóak a projekt honlapján. Most, amikor ezt írom, a rendszermag foltozása és újrafordítása szükséges, hogy ezeket a modelleket támogassa. A meghajtó a következőket támogatja:

SE401 lapkakészlet "se401" meghajtóval:

  • Aox SE401 kamera

  • Philips PCVC665 USB VGA webcam 'Vesta Fun'

  • Kensington VideoCAM PC Camera (67014-67017 modellek)

SE402 and EP 800 lapkakészlet "epcam" meghajtóval

  • Spypen Actor

  • Rimax Slim Multicam

  • Concord Eye-Q Easy

  • Creative PD1001

  • Chicony DC-100

  • Endpoints SE402 és EP800

2.3.4. OmniVision alapú webkamerák

Ez a kategória többféle, az OmniVision által gyártott webkamerát és videofelvevő eszközt tartalmaz, többek közt az OV511(+), OV518(+), OV6620, OV6630, OV7610 és OV7620AE-t. A projekt honlapja itt van. A támogatott modellek, többek közt:

  • Aiptek HyperVcam Home és Mobile

  • Amitech AWK-300

  • I-view NetView NV300M

  • TEVion MD9308

  • Intel Me2Cam

  • Dlink DSB C100, C300

  • Hawking Tech. UC-110, UC-300 és UC-310

  • Puretek PT-6007

  • Alpha Vision Tech AlphaCam SE (AC-520-es modell)

  • Creative Labs WebCam (PD1001 modell OV518-es lapkakészlettel

  • Creative Labs WebCam 3, WebCam Go, Webcam Go Plus

  • Elecom UCAM-C1C20

  • Elta WEBCam 8211 PCC

  • Ezonics EZPhone Cam

  • Philips ToUCam XS (a régi verzió OV518-cal)

  • LG Electronics LPC-UM10

  • Lifeview különféle USB Life TV modelljei

  • Genius VideoCam Express

  • AverMedia Intercam Elite

  • Maxxtro Cam22U

  • MediaForte MV300, PC Vision 300

  • Terratec TerraCam PRO és néhány TerraCam modell

  • OmniVision (kivéve a OV519)

  • TRENDNet TV-PC301

  • Trust Sp@ceC@m USB

  • Lifetec LT9388

  • BestBuy EasyCam U

  • Maxell Maxcam

  • TCE NetCam 310u

  • Medion MD9388

  • Webeye 2000B

  • Suma eON

  • Prochips PCA-3100

  • Ezonics EZ USB Cam II (a OV511+ modellek)

  • Waytech I-Pac VIC-30

  • Zoom Telephonics ZoomCam III USB (model 1598)

2.3.5. Logitech (korábban Connectix) Quickcam támogatás

A Quickcam VC USB és párhuzamos port webkamerákat az innen letölthető meghajtók támogatják. Rendszermag-foltozás és újrafordítás szükséges ezeknek a modelleknek a támogatásához.

A Quickcam meghajtókat két különböző projekt keretében készítik, amelyek két eltérő, de önállóan működő meghajtót biztosítanak, tehát nem szükséges a rendszermagot foltozni vagy újrafordítani. A qce-ga és qc-usb meghajtók a következő modelleket támogatják:

  • Logitech Quickcam Express (korábbi modellek)

  • Quickcam Web

  • Legocam

  • Dexxa Webcam

  • Labtec Webcam

A qc-usb meghajtó inkább kísérleti jellegű, de sokan szerint jobban működik bizonyos modellekkel, pl. a Quickcam Webbel. Olyan visszajelzéseket is kaptam, melyek szerint a Logitech Quickcam Express újabb verziói már nem működnek a fenti meghajtókkal; helyettük ezen az oldalon található egy kísérleti meghajtó, amely állítólag támogatja az újabb modelleket.

Megjegyzés Red Hat felhasználóknak: a qce-ga meghajtó nem fordul le rendesen a Red Hat 9-cel adott módosított rendszermag-forrással, de egy javítás elérhető itt.

Néhány Logitech kamera modellt a Philips meghajtó támogat: lásd 2.3.8 .

2.3.6. ICM532 alapú webkamerák

Ehhez a lapkakészlethez, amelynek a honlapja itt található, a 2.6-os rendszermag-forrásba beépítettek egy meghajtót; egy másik (a fejlesztő állítása szerint) kísérleti jellegű és itt tölthető le. Ezek a következő modellek támogatják:

  • IC-Media Corp Pencam

  • Logitech Quickcam Express újabb változatai

  • Labtec Webcam újabb változatai

  • Biolux 654 microscope

  • Ezonics EZCam USB II (uvt8532)

  • Ezonics EZCam USB III

  • TerraCam USB

  • Stick Webcam

  • Mini WebCam

  • Tucan PenCam

  • Che-ez! Webbie

  • SNAKE EYE SI-8480/8481

  • PC CAM CP03

  • WEB Camera PBC0006

  • Clipcam

2.3.7. NW802 alapú webkamerák

Ezt a DIVIO által gyártott lapkakészletet az itt található meghajtó támogatja. A támogatott modellek, többek közt:

  • BTC SurfCam CMOS300k

  • Mustek WCam 300

  • Logitech QuickCam Pro USB (a korábbi "dark focus ring" modell)

2.3.8. Philips USB webkamerák

Mivel lejárt a közzé-nem-tételi egyezmény a Philips Corporation és a pwc meghajtó egykori fejlesztője között, a PWC-alapú Philips webkamerák korábbi rendszermag-támogatása megszűnt. Szerencsére fejlesztés alatt áll egy új, kísérleti jellegű meghajtó, amelyhez nem szükséges tulajdonosi modul. A régi weboldalon (http://www.smcc.demon.nl/webcam/) még olvashatók a változással kapcsolatos viták; az új meghajtót a saillard.org weboldalon találhatjuk meg, több információt pedig a PWC Documentation Project kínál.

A fenti meghajtók által támogatott Philips modellek a következők:

  • PCA645VC

  • PCA646VC

  • PCVC675K Vesta, Vesta Pro és Vesta Scan

  • PCVC720K/40 ToUCam XS, ToUCam Fun, ToUCam Pro és ToUCam Scan

  • Askey VC010

  • Creative Labs Webcam 5, Pro Ex

  • Logitech 3000 and 4000 Pro, Notebook Pro, és Zoom

  • Samsung MPC-C10 és MPC-C30

  • Sotec Afina Eye

  • Visionite VCS UM100 és UC300

2.3.9. SPCA50X USB kamera linuxos meghajtó

E lapkakészlettel kapcsolatban itt lelhető fel információ; erős fejlesztés alatt áll és részlegesen vagy teljesen támogatja a következő modelleket:

  • Kodak DVC-325 and EZ200

  • Creative PC-CAM 300, 600, 750

  • Genius VideoCAM Express V2

  • Micro Innovation IC 200/IC 150

  • Logitech ClickSmart 310, 420, 510, 820 és Cordless modellek

  • Logitech Pocket750

  • Benq DC 1016, 1300, 1500, 3410

  • Flexcam 100

  • Aiptek MegaCam, [1.3 Megapixel] Mini PenCam és PocketCam 1.3M Smart

  • Finet Technology Palmpix DC-85

  • Pure DigitalDakota

  • 3Com Home Connect lite

  • Megapix V4

  • Mustek gSmart: Mini, Mini2, Mini3, LCD 2, LCD 3

  • Digital Dream Enigma 1.3, Epsilon 1.3

  • Maxwell Compact Pc PM3

  • Jenoptik models

  • Minton S-Cam F5

  • D-Link DSC-350

  • Trust FamilyC@m 300 Movie

  • Aiptek Pocket DV, PocketDVII, DV3100+, mini PenCam 2, PocketCam 3M, Pencam SD 2, Pocket DV3500

  • Hama Sightcam 100

  • Micro Innovations IC50C, IC400c

  • FlyCam USB100

  • Arowana USB Camera 300 K

  • Intel Easy PC Camera, CS120 (Easy PC Share), PC Camera Pro (CS431), Pocket PC Camera (CS630)

  • Grandtec V.cap

  • Sigma-Apo Petcam

2.3.10. STV0680 alapú modellek

Az ezzel a lapkakészlettel készült webkamerák USB változatait a 2.4.18 és magasabb verziójú rendszermag a stv680.o modullal támogatja. De le is töltheted a forrást a projekt honlapjáról. Ez a meghajtó többek közt az Aiptek Pencam és a Nisis Quickpix 2 modelleket támogatja.

Ha soros csatlakozású verziód van, amelyek közül a legfőbb a Scan e-Studio, akkor látogasd meg ezt az oldalt.