Webcam Hercules Classic Link Debian Lenny

Fermé
angedragon - 21 juil. 2009 à 16:05
 angedragon - 30 déc. 2009 à 11:07
Bonjour,

Je suis en train d'installer une webcam Hercules Classic Link (https://www.hercules.com/fr/dj/ sous linux, Debian Lenny.

Cette webcam n'est pas encore supportée, je rentre donc direct dans le vif du sujet.

Id de la webcam :

# lsusb | grep Guill
Bus 001 Device 002: ID 06f8:3009 Guillemot Corp.


Noyau :

# uname -r
2.6.26-2-686


Grâce au forum Ubuntu (cf. http://forum.ubuntu-fr.org/viewtopic.php?id=259275 j'ai pu savoir que c'était pas encore supporté, mais j'ai pu connaître le chipset : Pixart 7302

Après une recherche sur google, j'ai pu voir que le chipset Pixart 7302 était pris en charge par le module gspca-pac7311 (cf. http://kerneltrap.org/mailarchive/git-commits-head/2008/10/6/3529064)

Après quelques liens, j'arrive sur le site de Jean-François Moine : http://moinejf.free.fr/ d'où je télécharge les sources de gspca http://linuxtv.org/hg/~jfrancois/gspca/

C'est parti on va tester en rajoutant l'id de ma webcam (cf. lsusb plus haut) à la source :

# cd /usr/src
# wget http://linuxtv.org/hg/~jfrancois/gspca/archive/tip.tar.bz2
# tar jxvf tip.tar.bz2
# cd gspca-e7b80c9188a6/
# grep -R 7302 *

[...]
linux/drivers/media/video/gspca/pac7311.c: {USB_DEVICE(0x093a, 0x2620), .driver_info = SENSOR_PAC7302},
linux/drivers/media/video/gspca/pac7311.c: {USB_DEVICE(0x093a, 0x2621), .driver_info = SENSOR_PAC7302},
linux/drivers/media/video/gspca/pac7311.c: {USB_DEVICE(0x093a, 0x2622), .driver_info = SENSOR_PAC7302},
[...]



=> les ID sont dans le fichier linux/drivers/media/video/gspca/pac7311.c
# vi linux/drivers/media/video/gspca/pac7311.c

=> ligne 1074 :
[...]
1078 {USB_DEVICE(0x093a, 0x260e), .driver_info = SENSOR_PAC7311},
1079 {USB_DEVICE(0x093a, 0x260f), .driver_info = SENSOR_PAC7311},
1080 {USB_DEVICE(0x093a, 0x2620), .driver_info = SENSOR_PAC7302},
1081 {USB_DEVICE(0x093a, 0x2621), .driver_info = SENSOR_PAC7302},
[...]


=> on rajoute une ligne pour notre webcam
1088 {USB_DEVICE(0x06f8, 0x3009), .driver_info = SENSOR_PAC7302},

=> et on compile
# make all
# make instal
l

=> pas d'erreurs, on charge les modules fraîchement créés
# modprobe v4l2-common
# modprobe gspca_main
# modprobe gspca_pac7311
# dmesg | tail
[ 1266.432308] Linux video capture interface: v2.00
[ 1266.434785] gspca: main v2.7.0 registered
[ 1266.436123] gspca: probing 06f8:3009
[ 1266.458265] gspca: probe ok
[ 1266.458265] usbcore: registered new interface driver pac7311
[ 1266.458265] pac7311: registered
# l /dev/video*
crw-rw---- 1 root video 81, 0 jui 21 13:14 /dev/video0


=> le périphérique apparaît, maintenant on va tester...
=> test avec w3cam
# aptitude install w3cam
# w3camd -v -p 18768 -h 0.0.0.0 -d /dev/video0


=> on se connecte sur le port, et mince on ne voit rien, et sur le terminal :
# w3camd -v -p 18768 -d /dev/video0 -h 0.0.0.0
main thread pid = 3007
w3socket.c, sd=3 host_addr()=0
bind 0.0.0.0:18768 to file descriptor 3
w3camd.c: image_thread() img->childs=0
w3camd.c: pid = 3007
oops!? accept_con() returned < 0
oops!? accept_con() returned < 0


=> test avec camserv
# aptitude install camserv
# vi /etc/camserv/camserv.cfg # (pour mettre le bon port)
# camserv /etc/camserv/camserv.cfg
(V4L) mmap: Invalid argument


=> test avec webcam
# cat /root/.webcamrc
[grab]
device = /dev/video0
text = "webcam %Y-%m-%d %H:%M:%S"
infofile = filename
delay = 3
wait = 0
input = pac7311
# webcam
reading config file: /root/.webcamrc
can't get rgb24 data


=> test avec motion
# invoke-rc.d motion start
# tail -f /var/log/debug
Jul 21 15:00:59 krynn motion: [1] Failed with YUV420P, trying YUV422 palette: Input/output error
Jul 21 15:00:59 krynn motion: [1] Failed with YUV422, trying YUYV palette: Invalid argument
Jul 21 15:00:59 krynn motion: [1] Failed with YUYV, trying RGB24 palette: Invalid argument
Jul 21 15:00:59 krynn motion: [1] Failed with RGB24, trying GREYSCALE palette: Invalid argument


=> bref aucun résultat...



=> recompilation du dernier kernel au cas où : 2.6.30.2 (je vous passe les détails)
# uname -r
2.6.30.2
# cd /usr/src/gspca-e7b80c9188a6/
# make all
# make install


=> le module gspca_pac7311 n'est pas installé (aucune erreur dans le make ou make install, snif)
=> je tente un insmod :
# insmod /usr/src/gspca-e7b80c9188a6/v4l/gspca_pac7311.ko
insmod: error inserting '/usr/src/gspca-e7b80c9188a6/v4l/gspca_pac7311.ko': -1 Invalid module format




=> prochaines étapes, je passe en testing (squeeze), si quelqu'un a une idée, ou si je fais mal des choses, n'hésitez pas ! Merci d'avance :)
A voir également:

4 réponses

Finalement, la réponse est ici pour cette webcam:

http://forum.ubuntu-fr.org/viewtop [...] 259275&p=1

(merci à ludo971)
1
Même résultat sous squeeze :'(
0
Un peu de nouveau :

En lisant le README (http://moinejf.free.fr/gspca_README.txt) un peu plus en détail (oui j'ai honte, j'avais pas tout vu), il faut compiler libv4l et l'installer :

Code:
# cd v4l2-apps/libv4l
# l
total 84
-rw-r--r-- 1 root root 18476 jui 28 12:21 ChangeLog
-rw-r--r-- 1 root root 26431 jui 28 12:21 COPYING.LIB
drwxr-xr-x 2 root root 4096 jui 31 16:40 include
drwxr-xr-x 2 root root 4096 jui 31 16:40 libv4l1
drwxr-xr-x 2 root root 4096 jui 31 16:40 libv4l2
drwxr-xr-x 4 root root 4096 jui 31 16:40 libv4lconvert
-rw-r--r-- 1 root root 608 jui 28 12:21 Makefile
-rw-r--r-- 1 root root 6798 jui 28 12:21 README
-rw-r--r-- 1 root root 520 jui 28 12:21 README.multi-threading
-rw-r--r-- 1 root root 629 jui 28 12:21 TODO
# make
# make install


Ensuite pour lancer une appli :

Code:
# export LD_LIBRARY_PATH=/usr/local/lib/
# export LD_PRELOAD=/usr/local/lib/libv4l/v4l1compat.so
# <application>


Exemple :
Code:
# webcam
reading config file: /root/.webcamrc
video4linux webcam v1.5 - (c) 1998-2002 Gerd Knorr
grabber config:
size 640x480 [none]
input pac7311, norm (null), jpeg quality 75
rotate=0, top=0, left=0, bottom=480, right=640
libv4l2: error turning on stream: Input/output error
v4l2: read: Input/output error
capturing image failed


Les chemins exportés sont bons :
Code:
# l -d /usr/local/lib/
drwxrwsr-x 6 root staff 4096 jui 31 16:42 /usr/local/lib/
# l /usr/local/lib/libv4l/v4l1compat.so
-rwxr-xr-x 1 root staff 11006 jui 31 16:42 /usr/local/lib/libv4l/v4l1compat.so


J'avance petit à petit
0