Installation webcam Hercules Classic Link sous Debian Lenny

Bonjour,

Je suis en train d’installer une webcam Hercules Classic Link (hercules.com/fr/webcam/bdd/p … ssic-link/) 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. 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. kerneltrap.org/mailarchive/git-c … /6/3529064)
Après quelques liens, j’arrive sur le site de Jean-François Moine : linuxtv.org/hg/~jfrancois/gspca/

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

[code]# 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},
[…]

[/code]

=> les ID sont dans le fichier 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

=> et on compile

[code]# make all

make instal[/code]l

=> pas d’erreurs, on charge les modules fraîchement créés

[code]# 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[/code]

=> le périphérique apparaît, maintenant on va tester…
=> test avec w3cam

[code]# aptitude install w3cam

w3camd -v -p 18768 -h 0.0.0.0 -d /dev/video0[/code]

=> 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

[code]# aptitude install camserv

vi /etc/camserv/camserv.cfg # (pour mettre le bon port)

camserv /etc/camserv/camserv.cfg

(V4L) mmap: Invalid argument[/code]

=> test avec webcam

[code]# 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[/code]

=> test avec motion

[code]# 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[/code]

=> bref aucun résultat…

=> recompilation du dernier kernel au cas où : 2.6.30.2 (je vous passe les détails)

[code]# uname -r
2.6.30.2

cd /usr/src/gspca-e7b80c9188a6/

make all

make install[/code]

=> le module gspca_pac7311 n’est pas installé (aucune erreur dans le make ou make install, snif)
=> on 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 :slightly_smiling:

Sous squeeze : mêmes résultats :frowning:

[quote]# 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[/quote]

-h 0.0.0.0 ? 0.0.0.0 n’est pas l’adresse IP d’une machine. Ca veut dire “tout le reseau”

Et si tu mets ton adresse IP plutot?

Bonjour,

En fait l’option -h correspond à l’adresse d’écoute de la machine, si je spécifie mon adresse ou si je ne met rien :

krynn:~# netstat -anp | grep w3 tcp 0 0 127.0.0.1:18768 0.0.0.0:* LISTEN 17758/w3camd

En fait le -h, c’est juste pour y avoir accès à distance :

krynn:~# netstat -anp | grep w3 tcp 0 0 0.0.0.0:18768 0.0.0.0:* LISTEN 17679/w3camd

PS : Merci pour la lecture :slightly_smiling:

Un peu de nouveau :

En lisant le README 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[/code]

Ensuite pour lancer une appli :

[code]# export LD_LIBRARY_PATH=/usr/local/lib/

export LD_PRELOAD=/usr/local/lib/libv4l/v4l1compat.so

[/code]

Exemple :

# 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[/code]

J’avance petit à petit :slightly_smiling:

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

forum.ubuntu-fr.org/viewtopic.php?id=259275&p=1

merci à ludo971 :slightly_smiling: