Help - Zoeken - Gebruikers - Kalender
Volledige versie: sweex driver compilen
MandrivaClub.NL > Forum > Documentatie en Programmeren
Kaneda
Ik heb een webcammetje van sweex en ik probeer daar een driver voor te compilen.
Op internet dus een driver gevonden en ik probeer hem vervolgens met make te laten compilen.
Hij geeft echter aan dat hij usb.h niet kan vinden.
In het make-bestand staat: gcc -o sweex sweex.c -lusb
als ik: "locate usb.h" doe dan vindt hij weldegelijk usb.h

Hoe kan ik er voor zorgen dat gcc toch het usb.h bestand kan vinden?
Alain
Je moet ff libusb-devel installeren. ;).gif
Kaneda
haha stom :laugh.gif: :oops:
meestal is dat wel het eerste wat ik check, thnx ohmy.gifk:
Alain
Another happy customer o/ tongue.gif
Drik
Hoi Kaneda,

Ik heb ook een Sweex webcam (de 100k) en ik krijg hem niet werkend

Nu is mijn vraag; hoe heb je dat gedaan en zou je me een paar tips kunnen geven over hoe ik het moet doen.

In MCC staat de webcam wel weergegeven

CODE




Identificatie

Fabrikant: ‎Onbekend



Beschrijving: ‎USB camera



Mediaklasse: ‎



Verbinding

Bus: ‎USB



Bus PCI #: ‎1



PCI-apparaat #: ‎3



Fabrikants-ID: ‎3141



Apparaat-ID: ‎24585



Div.

Module: ‎sn9c102



Maar hier kan ik eigenlijk niet veel mee, ik vond al ergens een oplossing. Dan moest je een progje genaamt sonix downloaden, make &make installen --> modprobe sonix-cam maar dan werkt ie nog niet.

Hoe heb jij je webcam toch werkend gekregen? :?
Kaneda
jammer dat de wiki nog niet beschikbaar is voor gebruikers, daar staat namelijk helemaal beschreven hoe een installatie van deze camera werkt.
**hint, hint**

maar misschien kun je al even aangeven welke mandriva versie je gebruikt?
Drik
mandriva 2006
kernel 2.6.12-12mdk

*vergeten* sorry
menno
(Kaneda @ Nov 7 2005, 10:44 PM) [snapback]50551[/snapback]

jammer dat de wiki nog niet beschikbaar is voor gebruikers, daar staat namelijk helemaal beschreven hoe een installatie van deze camera werkt.
**hint, hint**

maar misschien kun je al even aangeven welke mandriva versie je gebruikt?


Kun je het niet tijdelijk uit de wiki kopieren ofzo?
dansmug
Geef me straks ofzo nog eens een seintje, heb nu geen tijd. smile.gif
menno
(dansmug @ Nov 29 2005, 09:14 PM) [snapback]52352[/snapback]

Geef me straks ofzo nog eens een seintje, heb nu geen tijd. smile.gif


*kickje*
Kaneda
Het artikel wat ik op wiki had geschreven is niet meer te bekijken, dus zal het binnenkort hier ff posten hoe ik em in 2005 aan de praat heb gekregen.
Heb em nog niet geinstalleerd onder 2006, maar lijkt me wel dat dat hetzelfde gaat.

Artikel hier te vinden binnenkort...
dansmug
Ok, dit komt recht uit een sql-document (database) en bevat dus ook wat code. Toch moet het mogelijk zijn om het spel te lezen ;).gif Ik heb nu geen tijd om het wat op te kuisen, misschien wel later vanavond.


[Edit]Zie hier onder smile.gif[/Edit]
menno
Veel mensen hebben voor het chatten een webcam aangeschaft.
Vaak wordt het apparaat bij inpluggen herkend en geinstalleerd.
Echter soms pakt het anders uit en wil het niet in een keer werken.
In de volgde uitleg wordt aangegeven hoe een webcam geinstalleerd kan worden, als het bij inpluggen niet automatisch gaat.
Hierbij wordt uitgegaan van een Sweex usb 100k webcam en een (werkende) Mandrake 10.0 installatie waar usb volledig werkt.
(andere webcams zijn op de zelfde wijze aan de praat te krijgen.)

==Inpluggen==

nBij inpluggen kan gecontroleerd worden of de webcam werkt door bv. Gnomemeeting (of een andere applicatie die gebruik maakt van een webcam) te openen.
Als de applicatie aangeeft dat er geen webcam aanwezig is op het systeem of het scherm blijft gewoon zwart/groen moet er gecontroleerd worden of de cam zoiezo wel gedetecteerd wordt.
Met het volgende commando: "dmesg", is te zien of linux het apparaat "ziet".
#dmesg
Gedeelte van de output: usb 3-1: new full speed USB device using address 4
Te zien is dat er een nieuw apparaat is gevonden op een usb-poort.

==Informatie vergaren==

Nu is het handig om meer informatie over de cam te krijgen, zodat er gezocht kan worden naar de geschikte driver. Dat kan door het commando: "lsusb", uit te voeren (dient als ROOT-gebruiker gedaan te worden).
De volgende output komt tevoorschijn: Bus 004 Device 001: ID 0000:0000 Bus 003 Device 004: ID 0c45:6009 Microdia Bus 003 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000
(OPMERKING: Handig is bij het uitvoeren van "lsusb" eventuele andere usb-apparaten te verwijderen van het systeem, zodat duidelijk is welke informatie bij de cam hoort.)
Duidelijk is te zien dat deze cam de chip 0c45:6009 van Microdia heeft. Deze informatie is belangrijk voor het zoeken naar de juiste driver. Op deze site [http://www.qbik.ch/usb/devices/] is te vinden of een linux-driver bestaat voor een bepaald apparaat. Als het op deze site niet te vinden is, is www.google.com altijd een goede plek om de zoektocht door te zetten.Voor deze cam blijkt de driver van Sonix's sn9c10x geschikt te zijn.
Te vinden op deze site [http://sourceforge.net/projects/sonix/] (Tip! gebruik de cvs-versie.)

==Driver installeren==

In theorie compile je sources die je download vrijwel altijd op dezelfde manier.
De Sweex driver wijkt daar een klein beetje van af.
Lees voor meer informatie over compilen elders in de wiki.

===Sweex driver===

Ik leg hier de specifieke Sweex driver uit: Pak het tar-bestand uit en ga de map "sonix" binnen.
Voer vervolgens: "make", uit. Dit zorgt ervoor dat de driver wordt gecompiled (gemaakt).
#make
Er verschijnt een mapje "src".
Daarin bevindt zich de driver.

===Drivers in het algemeen===

Over het algemeen wordt de driver gedownload als een tar-bestand, met daarin de broncode voor de driver.
Deze kan na het uitpakken worden gecompiled door respectivelijk: "./configure", "make" & "make install", uit te voeren.
#./configure
#make
#make install
Bekijk in de uitgepakte map of er een configure-bestand aanwezig is, anders zal configuratie niet nodig zijn en kan gelijk over gegaan worden naar het "make" commando.
(Tip! Lees ALTIJD de README die bij de driver wordt geleverd. Deze kan nuttige en belangrijke informatie bevatten.)
Mocht er toch niet uitgekomen worden, vraag dan op het forum naar meer informatie.

==Driver laden==

Voor het gebruik van video-apparatuur in linux wordt vrijwel altijd gebruik gemaakt van de video4linux-module.
Om te checken of deze geladen is, kan het volgende commando worden uitgevoerd: "lsmod" (dient als ROOT-gebruiker gedaan te worden).
In de output die volgt moet minimaal: videodev, aanwezig zijn.
Is dit niet het geval dan kan het worden geladen met:
#modprobe videodev
Aangezien er te maen is met een usb-apparaat zullen we ook de module voor usb-video moeten laden:
#modprobe usbvideo
Nu moet de daadwerklijke cam-driver geladen worden.
Dat wordt gedaan met:
#insmod /map/van/de/driver/sonix-cam.o
Met "lsmod" is te zien dat alle modules zijn geladen.

==Testen==

Als alles geladen is kan er getest worden. Als mplayer geinstalleerd is kan dat met het volgende commando:
mplayer tv:// -tv driver=v4l:outfmt=RGB24:device=/dev/video0
Ook kan nu met Gnomemeeting gebruik gemaakt worden van de cam.
Alle applicaties die video4linux ondersteunen zouden nu beeld moeten geven.

==Automatisch laden==

Drivers kunnen automatisch geladen worden. Dit voorkomt dat elke keer bovenstaande commandos handmatig ingevoerd moeten worden.
Voeg de naam van de driver(s) toe aan /etc/modprobe.preload
dansmug
Ah, mooi menno, bespaart me weer wat werk smile.gif Bedankt!
menno
Hmm, insmod geeft een foutmelding:

[root@localhost sonix]# insmod /home/menno/sonix/src/sonix-cam.o
insmod: error inserting '/home/menno/sonix/src/sonix-cam.o': -1 Invalid module format
Kaneda
Kreeg je geen foutmeldingen bij het compilen van de driver?
menno
[root@localhost sonix]# make install
echo /home/menno/sonix
/home/menno/sonix
make[1]: Entering directory `/usr/src/linux-2.6.12-12mdk'

WARNING: Symbol version dump /usr/src/linux-2.6.12-12mdk/Module.symvers
is missing; modules will have no dependencies and modversions.

Building modules, stage 2.
MODPOST
make[1]: Leaving directory `/usr/src/linux-2.6.12-12mdk'
mkdir -p /lib/modules/`uname -r`/kernel/drivers/usb/media; \
install -m 0664 -o root -g root src/sonix-cam.ko /lib/modules/`uname -r`/kernel/drivers/usb/media;\
/sbin/depmod -ae;

==========================

[root@localhost sonix]# insmod src/sonix-cam.o
insmod: error inserting 'src/sonix-cam.o': -1 Invalid module format

=========================


[root@localhost sonix]# lsmod

...
usbvideo 25508 1 sonix_cam
videodev 7104 2 usbvideo,sn9c102
usbcore 108188 6 sonix_cam,usbvideo,sn9c102,ehci_hcd,uhci_hcd
...

========================

[root@localhost sonix]# mplayer tv:// -tv driver=v4l2:outfmt=RGB24:device=/dev/v4l/video0
MPlayer 1.0pre7-4.0.1 © 2000-2005 MPlayer Team
CPU: Intel (Family: 6, Stepping: 6)
Detected cache-line size is 64 bytes
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection - WARNING - this is not optimal!
To get best performance, recompile MPlayer with --disable-runtime-cpudetection.


85 audio & 196 video codecs
Failed to open /dev/rtc: Device or resource busy (it should be readable by the user.)
Opening joystick device /dev/input/js0
Can't open joystick device /dev/input/js0 : No such file or directory
Can't init input joystick
Setting up LIRC support...
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support.
You will not be able to use your remote control.
Playing tv://.
Cache fill: 0.00% (0 bytes) TV detected! ;-)
Selected driver: v4l2
name: Video 4 Linux 2 input
author: Martin Olschewski <olschewski@zpr.uni-koeln.de>
comment: first try, more to come ;-)
v4l2: ioctl get standard failed: Invalid argument
Segmentatie fout

=================================

Het gaat dus al fout bij make...
Kaneda
Heb je de sources van die kernel geinstalleerd? Volgens mij heeft hij die nodig.
menno
(Kaneda @ Nov 30 2005, 10:33 PM) [snapback]52436[/snapback]

Heb je de sources van die kernel geinstalleerd? Volgens mij heeft hij die nodig.


Ja, die zijn geinstalleerd. Dus dat kan het niet zijn.
Kaneda
Sorry voor de late reactie, maar heb me er (weer) eens in verdiept.
Kernel 2.6.X heeft video 4 linux 2 en mplayer kan op het moment alleen nog v4l1 aan.
(er wordt aan gewerkt.)
Er zijn dus twee dingen die je kan doen v4l1 configureren, wat misschien beter is want dan kunnen alle programma's gebruik maken van je cam.
Of xawtv installeren die al wel v4l2 ondersteuning heeft, maar dat betekend dat je je cam alleen met dat programma kan gebruiken.

Ik ga ze allebei proberen en kom wel terug met de resultaten.
Kaneda
Weet iemand toevallig of/hoe ik v4l1 als standaard kan gebruiken met een 2.6.12 kernel?
Dit is een "Print" versie van onze forums. Om de volledige versie met meer informatie, afbeeldingen en opmaakte bekijken, a.u.b. klik hier.