March 24, 2010

Webcam based on Syntek chipset

Sont regroupées ici, les informations sur les webcams à base de chipset Syntek (rien à voir avec la convention collective des métiers de l'informatique nommée Syntec).
Compatibilité

De nombreux portables Asus et Packard Bell intègrent une webcam de ce type. Pour savoir si vous êtes dans ce cas, faites un lsusb et cherchez un périphérique dont l'identifiant commence par 05e1:???? (Syntek Semiconductor Co., Ltd) ou 174f:???? (Syntek Semicon.), comme ci-dessous:

$ sudo update-usbids

$ lsusb
Bus 005 Device 002: ID 05e1:0501 Syntek Semiconductor Co., Ltd
Bus 005 Device 001: ID 0000:0000
...

Vérifiez si l'ID (Vendor:Product) est parmi les suivantes (première colonne du tableau) :
USB ID Modèles Description / Spécifications Compatibilité
05e1:0501 Asus F2F, F2J, F3F, F3J, F3T, G1, Z53JA Chipset DC-1125 semblable à 174f:a311 Oui
05e1:0408 Clé usb d'acquisition vidéo Driver stk11xx à compiler Oui
174f:a311 Asus A3A, A6J, A6K, A6M, A6R, A6T, A6V, A7T, A7sv, A7U Chipset STK-1125, 1.3MPx, USB2 Oui
174f:a312 Oui
174f:a821 Packard Bell BU45, PB Easynote MX66-208W Chipset STK-1135 Oui
174f:aa11 Non
174f:5a35 Asus G1s, F3Sg 1.3MPixels Oui
174f:5a31 Asus F8s, F5RL 1.3MPixels Oui
174f:6a31 Asus A8J,F3S, F5R, VX2S, V1S, F5V Oui
174f:6a33 Asus F3SA, F9J, F9S, F9E Semblable à 174f:6a31 Oui
174f:6a51 Asus Z96J, Z96S, S96S 2.0MPx, USB2, UVC Oui
174F:6a54 Oui
174F:6d51 Eurocom D900C, Clevo 2.0MPx, USB2 Non(pas reconnue)
174F:8a51 Asus G70S 2.0MPx, USB2, UVC Non(pas reconnue)
A compléter…

Il y a plusieurs pilotes:

*
stk-webcam: inclus au Kernel depuis 2.6.27/Intrepid mais ne supporte que le modèle 174F:A311
*
stk11xx: téléchargeable sur http://syntekdriver.sourceforge.net
o
Version 1.4 (et antérieures) pour les Kernel 2.6.20/Feisty à 2.6.28/Jaunty
o
Version 2.0 (et trunk SVN) pour les Kernel 2.6.29 et suivants

Ce qui suit ne s'intéresse qu'au pilote stk11xx.
Pré-requis

*
Une webcam Syntek !
*
Les entêtes du noyau Linux : pour être sûr tapez dans un terminal:

sudo apt-get install linux-headers-`uname -r`

*
Les outils classiques pour compiler : Installer le paquet build-essential
*
Eventuellement SVN pour récupérer la toute dernière version : Installer le paquet subversion

Installation

1. Télécharger les sources

1.a) A partir de l'archive, télécharger stk11xx-x.y.z.tar.gz puis faire

$ tar -xzvf stk11xx-x.y.z.tar.gz

1.b) A partir de SVN (Ouvrez un terminal et copier/coller les 3 premières lignes sans le $, les ligne avec A devant représentent le résultat que vous devez obtenir)

$ mkdir syntek

$ cd syntek

$ svn co https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/trunk/driver
A driver/stk11xx-dev.c
A driver/Kconfig
A driver/stk11xx-dev-a311.c
A driver/stk11xx-dev.h
A driver/stk11xx-dev-6a31.c
A driver/stk11xx-dev-a821.c
A driver/stk11xx-dev-6a51.c
A driver/stk11xx-dev-6a33.c
A driver/stk11xx-usb.c
A driver/stk11xx-dev-6a54.c
A driver/README
A driver/stk11xx.txt
A driver/stk11xx-bayer.c
A driver/Makefile.standalone
A driver/stk11xx-v4l.c
A driver/stk11xx-sysfs.c
A driver/stk11xx.h
A driver/Kbuild
A driver/doxygen.cfg
A driver/Makefile
A driver/stk11xx-buf.c

2. Télécharger un Makefile spécial (fonctionne avec la version 1.1 du pilote) pour compiler avec seulement les headers du kernel. Si vous avez les sources complètes du kernel le Makefile normal doit suffire.

$ cd driver
$ wget http://bookeldor-net.info/merdier/Makefile-syntekdriver

3. Compiler et installer le pilote

$ make -f Makefile-syntekdriver

$ sudo make -f Makefile-syntekdriver install

4. Blacklister et décharger stk-webcam sur Intrepid et suivants

lsmod | grep stk-webcam
rmmod stk-webcam
lsmod | grep stk-webcam

5. Charger le pilote et vérifier qu'il fonctionne:

$ sudo modprobe stk11xx

$ dmesg |tail
stk11xx: Syntek USB2.0 webcam driver startup
stk11xx: Syntek USB2.0 - STK-1135 based webcam found.
stk11xx: Syntek AVStream USB2.0 1.3M WebCam - Product ID 0xA311.
stk11xx: Release: 0005
stk11xx: Number of interfaces : 1
stk11xx: Initialize USB2.0 Syntek Camera
stk11xx: Syntek USB2.0 Camera is ready
stk11xx: Syntek USB2.0 Camera is now controlling video device /dev/video0
usbcore: registered new interface driver usb_stk11xx_driver
stk11xx: v1.3.0 : Syntek USB Video Camera

$ sudo lsusb -v|grep -A 8 Syntek
Bus 005 Device 002: ID 05e1:0501 Syntek Semiconductor Co., Ltd
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x05e1 Syntek Semiconductor Co., Ltd
idProduct 0x0501
bcdDevice 0.05
iManufacturer 1 Syntek Semiconductor
iProduct 2 USB 2.0 Image Capture Controller
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 147
bNumInterfaces 1

Utilisation

Pour Camorama (V4L), il y a 2 méthodes Map (par défaut) et Read (option -R), si les couleurs ne sont pas bonnes, il suffit de cliquer droit sur le panneau « Effects » (faire Ctrl + E si celui-ci n'apparaît pas) et de sélectionner « Add filter » puis « Color correction »:

$ camorama -D --width=640 --height=480

$ camorama -D -R --width=640 --height=480

Pour XawTV (V4L2), l'option -nodga est nécessaire:

$ xawtv -nodga

Pour VLC (V4L):

$ vlc v4l://dev/video0 --noaudio

Pour MPlayer/MEncoder (V4L et V4L2):

$ mplayer tv:// -tv driver=v4l:width=640:height=480
$ mplayer tv:// -tv driver=v4l2:width=320:height=240:fps=25:outfmt=rgb24:device=/dev/video0
$ mplayer tv:// -tv driver=v4l2:width=320:height=240:fps=25:outfmt=yuy2:device=/dev/video0
$ mplayer tv:// -tv driver=v4l2:width=320:height=240:fps=25:outfmt=uyvy:device=/dev/video0

$ mencoder tv:// -tv driver=v4l:width=640:height=480:outfmt=rgb24:device=/dev/video0 -nosound -ovc lavc -o out.avi
$ mencoder tv:// -tv driver=v4l2:width=320:height=240:fps=25:outfmt=rgb24:device=/dev/video0 -nosound -ovc lavc -o out.avi

Configuration

Vous avez la tête à l'envers ou le teint bleuâtre, vous pouvez configurer la webcam.

Soit en passant des options au chargement du pilote :

$ sudo insmod stk11xx.ko vflip=1 brightness=0xBBBB

Ou bien, ce qui revient au même, en ajoutant dans le fichier /etc/modprobe.d/options:

# Syntek Webcam
options stk11xx vflip=1 brightness=0xBBBB

Soit en utilisant les "variables système" qui se trouvent dans /sys/class/video4linux/video0 après le chargement du module:

$ cat /sys/class/video4linux/video0/vflip

$ echo 1 >/sys/class/video4linux/video0/vflip

La liste des paramètres
Paramètres Valeurs Description
brightness 0x0000 - 0xFFFF Luminosité
contrast 0x0000 - 0xFFFF Contraste
whitebalance 0x0000 - 0xFFFF Balances de blancs
colour 0x0000 - 0xFFFF Couleur
hflip 0 - 1 Mirroir horizontal (Droite-Gauche)
vflip 0 - 1 Mirroir vertical (Haut-bas)
Aller plus loin

*
Pour signaler un problème, une découverte: voir dans le forum SourceForge
*
Pour aider les développeurs du pilote : Help us
*
Le site du constructeur Syntek Semi-conducteurs
©