Creative WebCam PD1001

21/12/12:
Enkele dagen geleden wou ik op mijn kot mijn oude webcam die ik eens meegenomen had om te experimenteren testen. We hebben er twee, en deze webcam had de minste kwaliteit, en had indertijd geen standaard-drivers in Linux. Er was wel een third-party driver die je zelf moest compileren, maar dat was echt de eerste weken/maanden dat ik Linux gebruikte, en durfde dat niet aan, later bleek onterecht, maar enfin.

Nu, al die jaren later was ik wel een beetje curieus, en stopte het kabeltje in de USB-poort. Het lichtje ging aan, en dat leek al een reden tot feesten, maar in cheese bleek er helemaal geen webcam te zijn. Na wat opzoekwerk vond ik dat er wel eens wat problemen waren met cheese, en probeerde guvcview. Maar het was duidelijk, dit stuk antiek werd ook nu niet standaard ondersteund.

Dan maar eens gezocht naar een driver, en vond de epcam driver. Maar, spijtig genoeg wilde die niet meteen compileren. De driver werd voor het laatst gewijzigd in 2010, en sindsdien is het nodige veranderd in de kernel. Zo is de kernel_lock functionaliteit terug verdwenen/vervangen, en zitten ze nu met v4l2. Deze laatste bestond toen al, maar had nog compabiliteits-functies.

Al bij al moest ik de nodige dependencies installeren, aangepaste videodev.h (ik weet niet meer waar ik het origineel eerst vond) in /usr/src/linux-headers-3.2.0-4-common/include/linux/videodev.h plaatsen, de oude manier van locking die de driver gebruikte voor kernels ouder dan 2.28 ook voor kernels vanaf 2.39 gebruiken, en de macro die werd gebruikt wanneer niet in compatibiliteits-modus van v4l gekopieerd in de driver-source. In de videodev.h moest ik enkel #include <stdint.h> verwijderen, omdat dit compiler-errors gaf. Op die manier waren alle problemen opgelost, en kon de driver compileren en installeren.

Maar, misschien mede door de driver, maar de kwaliteit is er zeker niet op vooruit gegaan, maar ik durf echt niet meer zeggen of het vroeger ook zo was, maar er zijn in ieder geval een aantal plaatsen die geen correcte kleur hebben, maar kan net zo goed een defect aan de sensor zijn natuurlijk, en hij was nieuw verder zeker niet beter, maar weet niet of dat er zo was.

Maar, mijn doel is bereikt, ik kreeg de PD1001 aan de praat met Linux 3.2.0. Hier is de source-code, en zal het misschien even vermelden op het Raspberry Pi forum, want er was daar iemand die hem ook aan de praat wou krijgen. Dat is dan het nadeel van in het Nederlands te schrijven, ik zal niet simpelweg naar hier kunnen verwijzen, maar zal dus het verhaal moeten samenvatten in het Engels.

Voor echt gebruik als webcam is dit natuurlijk niet geschikt, maar mocht ik dat willen kon ik ook gewoon de pd1030 gebruiken, die wel standaard werkt en een veel betere kwaliteit heeft. Maar, misschien kan ik het bijvoorbeeld wel gebruiken als een soort camera-bewaking op mijn kot.