Bonjour,
Je suis en train d'installer une webcam Hercules Classic Link (http://www.hercules.com/fr/webcam/bdd/p/74/hercules-classic-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. 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/ [...] 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/g [...] ip.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 install
=> 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)
=> 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