PDA

Afficher la version complète : [Réglé] Compilation toucam II



bzorg
01/10/2004, 11h13
bon il y aurait une astuce pour faire fonctionner simplement une toucam II
cela dit j'ai besoin de compiler ov511 ver 1.65
donc j'ai installé les sources du noyau 2.4 (suse 9.0)
et j'ai après make pas mal d'erreurs:
Lorsque je lance make j'obtiens :
/usr/include/linux/version.h:2:2: #error "================================================== ====="
/usr/include/linux/version.h:3:2: #error "You should not include /usr/include/{linux,asm}/ header"
/usr/include/linux/version.h:4:2: #error "files directly for the compilation of kernel modules."
/usr/include/linux/version.h:5:2: #error ""

....

ov511.c:7091:41: opérateur binaire manquant avant l'élément lexical « ( »
ov511.c: Hors de toute fonction :
ov511.c:7094: attention : initialisation d'un type pointeur incompatible
ov511.c:7096: attention : initialisation d'un type pointeur incompatible
ov511.c: Dans la fonction « ov511_register_decomp_module »:
ov511.c:7152: attention : `MOD_INC_USE_COUNT' is deprecated (declared at /usr/include/linux/module.h:481)
ov511.c: Dans la fonction « ov511_deregister_decomp_module »:
ov511.c:7179: attention : `MOD_DEC_USE_COUNT' is deprecated (declared at /usr/include/linux/module.h:493)
ov511.c:7192:41: opérateur binaire manquant avant l'élément lexical « ( »
ov511.c: Hors de toute fonction :
ov511.c:184: attention : `unit_video' defined but not used
make: *** [ov511.o] Erreur 1

et j'ai coupé un peu
parce que c'était long
est-ce quequ'un a une idée ?

richard.31
05/10/2004, 14h14
Pour compiler un driver avec suse 9,avant de compiler:
en tant que root
cd /usr/src/linux (là ce trouvent les sources du noyau) et taper les commandes suivantes:
make cloneconfig"
et ensuite

make dep
celà peut prendre un temps plus ou mois long suivant la config de ton pc

bzorg
06/10/2004, 14h11
non ça coince de même

lucienmathieu
06/10/2004, 14h49
C'est quelle version du kernel que tu essaies de compiler?

bzorg
06/10/2004, 16h02
c'est pas le kernel que j'essaye de compiler c'est ov511 ver 1.65
qui contient ov..decomp.o
et c'est le décomp.o que je veux récupérer:

je colle la totale


Cette webcam philips ne fonctionne pas avec les modules PWC et PWCX (philips webcam) !! . Inutile de vous escrimer donc avec ces derniers.

Par contre elle fonctionne avec le module ov51x (qui gère les chipsets omnivision ov511 à ov519 ). De là je vous vois plein d'espoir lancer un "modprobe ov511" avec le module standard du noyau... que nenni...

Le module sur la génération des noyaux 2.4 ou 2.2 ne gère pas la compression obligatoire pour les ov518 et ne donnera dans votre /var/log/messages que des lancinants " ... kernel : ov511.c: No decompressor available"

Alors comment ... Suivez le guide:

Allez sur la page web du module : http://alpha.dyndns.org/ov511/download.html et téléchargez la version 1.65 (73ko)

installez si ce n'est fait les sources du noyau de même version que le noyau binaire sous lequel vous voulez que votre webcam tourne (paquet kernel-source par exemple) puis vérifiez qu'un dossier /usr/src/linux existe désormais avec des fichiers ".c" et ".h" dedans.

décompressez le fichier tar.gz que je vous ai fait téléchargé sur le site web (tar -xzvf ov511-1.65.tar.gz) en tant que root et entrez dans le dossier ov511-1.65 ainsi créé puis lancez un "make"

Suite à cela ... vous aurez si tout se passe bien 3*2 lignes de compilation (commençant par "gcc ..." et vous obtiendrez 3 fichiers ".o" (ov511.o ov551_decomp.o et ov518_decomp.o)
Cette webcam philips ne fonctionne pas avec les modules PWC et PWCX (philips webcam) !! . Inutile de vous escrimer donc avec ces derniers.

Par contre elle fonctionne avec le module ov51x (qui gère les chipsets omnivision ov511 à ov519 ). De là je vous vois plein d'espoir lancer un "modprobe ov511" avec le module standard du noyau... que nenni...

Le module sur la génération des noyaux 2.4 ou 2.2 ne gère pas la compression obligatoire pour les ov518 et ne donnera dans votre /var/log/messages que des lancinants " ... kernel : ov511.c: No decompressor available"

Alors comment ... Suivez le guide:

Allez sur la page web du module : http://alpha.dyndns.org/ov511/download.html et téléchargez la version 1.65 (73ko)

installez si ce n'est fait les sources du noyau de même version que le noyau binaire sous lequel vous voulez que votre webcam tourne (paquet kernel-source par exemple) puis vérifiez qu'un dossier /usr/src/linux existe désormais avec des fichiers ".c" et ".h" dedans.

décompressez le fichier tar.gz que je vous ai fait téléchargé sur le site web (tar -xzvf ov511-1.65.tar.gz) en tant que root et entrez dans le dossier ov511-1.65 ainsi créé puis lancez un "make"
*****
C'EST LA QUE çA COINCE
******
Suite à cela ... vous aurez si tout se passe bien 3*2 lignes de compilation (commençant par "gcc ..." et vous obtiendrez 3 fichiers ".o" (ov511.o ov551_decomp.o et ov518_decomp.o)

Ensuite lancez un "cp -f *.o /lib/modules/`uname -r`/kernel/drivers/usb" pour copier tout ce monde dans le dossier de modules du noyau courant.

modifiez votre fichier /etc/modules.conf en y ajoutant la ligne "alias char-major-81 ov518_decomp" puis la ligne "options ov511 led=2 lightfreq=50 ov518_color=1".

Sauvegardez le fichier et lancer un "depmod -ae" .

Logiquement, si vos modules USB sont chargés, de même que videodev, tout devrait alors marcher sans problème dans une application de visualisation (xawtv, gnomemeeting...).
Ensuite lancez un "cp -f *.o /lib/modules/`uname -r`/kernel/drivers/usb" pour copier tout ce monde dans le dossier de modules du noyau courant.

modifiez votre fichier /etc/modules.conf en y ajoutant la ligne "alias char-major-81 ov518_decomp" puis la ligne "options ov511 led=2 lightfreq=50 ov518_color=1".

Sauvegardez le fichier et lancer un "depmod -ae" .

Logiquement, si vos modules USB sont chargés, de même que videodev, tout devrait alors marcher sans problème dans une application de visualisation (xawtv, gnomemeeting...).

lucienmathieu
06/10/2004, 19h03
deja as-tu essaye de copier ton driver dans /usr/src/linux/kernel/driver/usb/ ou quelque chose comme ca, tu verras d'autres drivers.

Puis seulement dans /usr/src, tu pourras faire un make kernel/driver/usb/ov551/decomp.o ce qui devrait te compiler ton driver ;-P

Je ne pense pas que tu puisse aller directement dans le repertoire pour compiler un driver, il est obligatoire de le compiler a partir de /usr/src/linux. Peut-etre que celui-ci ne fonctionne pas comme ca

pourrais-tu regarder dans /usr/include/linux/version.h?
as chaque fois qu'il test #ifdef LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) ca foire...

[lm01]

bzorg
06/10/2004, 19h45
bon alors je l'ai mis là: /usr/src/linux-2.4.21-243/drivers/usb
mais je suis toujours au même point

pour ce qui est de version.h c'est assez troublant je suis en 2.4...
et version.h cause du 2.6...
#ifdef __KERNEL__
#error "================================================== ====="
#error "You should not include /usr/include/{linux,asm}/ header"
#error "files directly for the compilation of kernel modules."
#error ""
#error "glibc now uses kernel header files from a well-defined"
#error "working kernel version (as recommended by Linus Torvalds)"
#error "These files are glibc internal and may not match the"
#error "currently running kernel. They should only be"
#error "included via other system header files - user space"
#error "programs should not directly include <linux/*.h> or"
#error "<asm/*.h> as well."
#error ""
#error "To build kernel modules please do the following:"
#error ""
#error " o Have the kernel sources installed"
#error ""
#error " o Make sure that the symbolic link"
#error " /lib/modules/`uname -r`/build exists and points to"
#error " the matching kernel source directory"
#error ""
#error " o Configure kernel sources:"
#error " - cd /usr/src/linux"
#error " - make mrproper"
#error " - make cloneconfig"
#error " - make dep"
#error ""
#error " o When compiling, make sure to use the following"
#error " compiler option to use the correct include files:"
#error ""
#error " -I/lib/modules/`uname -r`/build/include"
#error ""
#error " instead of"
#error ""
#error " -I/usr/include/linux"
#error ""
#error " Please adjust the Makefile accordingly."
#error "================================================== ====="
#else
#define UTS_RELEASE "2.6.0-test3"
#define LINUX_VERSION_CODE 132608
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((B) << 8) + ©)
#endif

???

lucienmathieu
06/10/2004, 20h11
Wouaip!

refait un make include/linux/version.h s'il te plait!

bzorg
06/10/2004, 20h34
ben ça va vite et ça ne change rien

(ah la c'est plus court comme réponse http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

lucienmathieu
06/10/2004, 20h37
tu as toujours #define LINUX_VERSION_CODE 132608 dans ton version.h ?

ou alors tu as les sources du noyau 2.6

bzorg
06/10/2004, 20h48
Originally posted by lucienmathieu@Mercredi 6 Octobre 2004 19:37
tu as toujours #define LINUX_VERSION_CODE 132608 dans ton version.h ?

ou alors tu as les sources du noyau 2.6
tu as toujours #define LINUX_VERSION_CODE 132608 dans ton version.h ?
=oui
ou alors tu as les sources du noyau 2.6
=non j'ai pris les cd pour installer kernel-sources (2.4.21-243)

??

lucienmathieu
06/10/2004, 20h58
uname -a?

je sais pas mais 132608, c'est 2.6.0 avec le pre-processing KERNEL_VERSION ;-P tu devrais avoir 132096 pour la 2.4.0 a la limite 132117 pour une 2.4.21...

bzorg
07/10/2004, 09h05
Linux linux 2.4.21-99-athlon #1 Wed Sep 24 13:34:32 UTC 2003 i686 athlon i386 GNU/Linux

c'est un 2.4 avec les sources du 2.6

c'est pas possible avec les cd

à moins que je les avaient installées avec apt

bzorg
07/10/2004, 09h12
euh groote lulu
c'est la grosse lulu ?
cf ton avatar


je viens de vérifier avec yast ce sont les sources du 2.4

2.4.21-99 ???

euh dans les versions lorsque l'on regarde avec yast:


2.4.21.99 i586
mais est coché 2.4.21-243 i586

donc peut-être le 2.4.21-243 avec les sources du 2.4.21-99 ?

lucienmathieu
07/10/2004, 10h32
si tu avais telecharge les sources du 2.6, tu devrais avoir une repertoire /usr/src/linux-2.6 et un lien symbolique dessus /usr/src/linux.

sinon telecharge les sources du 2.4 sur kernel.org, tu seras sure d'avoir les bonnes sources ;-P

il y a moyen de les avoir par apt, mais si tu as deja un probleme maintenant, peut-etre vaut-il mieux passer par kernel.org.

Tant que ton version.h ne montre pas la bonne version, il faudra faire le changement des sources...

bzorg
07/10/2004, 11h38
les sources et le noyau sont en 2.4
mais pas le même 2.4 c'est ça alors ?

lucienmathieu
07/10/2004, 13h18
J'ai fait un petit topic sur le bit shift, tu comprendras pourquoi je pense que tu es en 2.6, tant que ton version.h affiche la mauvaise version, je ne pense pas que ce sera possible de compiler ton driver.

bit shift (http://www.alionet.org/index.php?showtopic=440&view=findpost&p=3321)

bzorg
07/10/2004, 15h48
rah ça marche
j'ai remis à jour le kernel et les sources via yast et j'ai récupéré le décompresseur
après compilazionne
et je vais peut-être faire fonctzionner ma webcam

merciiiiiiii

(alors groote lulu= ?)

bzorg
07/10/2004, 17h25
après un peu de bagarre ça fonctionne

je passe à la télé

donc la toucam II est utilisable sans trop de problème
et rapidement quand on connait la procédure http://www.alionet.org/style_emoticons/<#EMO_DIR#>/laugh.gif

lucienmathieu
08/10/2004, 13h28
groote = gros ou grosse en Néerlandais.

Louis se retrouve sur une péniche venant du port d'Anvers après avoir fait de l'aile tractée. (Le parachute ascentionnel, c'est top, et le para-pente encore mieux!)

J'aime bien loulou, et puis lucien - lulu facile comme déduction... et gros bin, je dirais que je ne vois pas pourquoi! 1m95 105kg, c'est pas encore gros ;-P (Et puis c'est la seule image où je pouvais trouver louis et lulu)