[résolu]installation qc-usb-messenger via module-assistant

Salut à tous

J’avais une certitude qui vient de s’écrouler: il n’est pas nécessaire de disposer des kernel-headers si l’on a recompilé soi même le noyau.
Je m’explique: j’ai une debian sarge avec un 2.6.8 recompilé par mes soins (avec la méthode debian , noyau qui maintenant s’appelle 2.6.8-bouzine), .
Ce noyau fonctionne à merveille depuis plusieurs mois ( et continue d’ailleurs de fonctionner à merveille).
J’entreprends d’installer qc-usb-messenger ( pilote de webcam ) à l’aide de module-assistant:
je récupère les sources de qc-usb-messenger ( home.mag.cx/messenger/source/ ), et les décompresse dans /usr/src/kernel-source-2.6.8/modules/.
Lorsque je fait un m-a update, il me dit:

Warning, /usr/src/kernel-source-2.6.8 seems to contain unconfigured kernel source! Warning, /lib/modules/2.6.8-bouzine/build seems to contain unconfigured kernel source! Bad luck, the kernel headers for the target kernel version could not be found and you did not specify other valid kernel headers to use. If the running kernel has been shipped with the Debian distribution, please install the package kernel-headers-2.6.8-bouzine. If your kernel source tree (or headers) is located in some non-usual location, please set the KERNELDIRS environment variable to the path of this directory, or(alternatively) specify the source directory we build for with the --kernel-dir option in module-assistant calls.

J’installe donc ( malgré ma surprise ) kernel-headers-2.6.8-2-386 , et réessaye: même histoire.
Je renomme kernel-headers-2.6.8-2-386 en kernel-headers-2.6.8-bouzine: même histoire.

Changement de méthode:
je vais directement dans /usr/src/kernel-source-2.6.8/modules/qc-usb-messenger-1.3 et execute le script ./quickam.sh ( censé faire des vérif et la compil d’aprés le README). Et aprés plusieurs étapes de vérif positives, il me renvoie:

awk: cannot open /lib/modules/2.6.8-bouzine/build/include/linux/version.h (No such file or directory) /bin/sh: line 1: [: -ge: unary operator expected /bin/sh: line 1: [: -ge: unary operator expected Kernel source directory: /lib/modules/2.6.8-bouzine/build Detected kernel version is 2.6.x. [!] Can not find version.h in kernel source. [!] Kernel source is not configured properly. You have full kernel source code but it is not configured properly. You can configure it by entering the source directory and typing (with 2.2.x and 2.4.x kernel versions) make oldconfig make dep or (with 2.6.x kernel versions) make oldconfig make modules_prepare It is also good idea to first clean up completely the kernel source by typing "make mrproper", but this will also delete the .config file, which has to be copied somewhere else to keep safe. I can also try to do this automatically, in which case just keep pressing enter, otherwise abort now.

Manifestement, j’ai un pb avec mes sources…
Mais lequel ?

hello,

Dans le README home.mag.cx/messenger/source/qc- … _MESSENGER

[quote]

How to compile and use…

Just run “make install” should work.

make install

(load usb modules if not already loaded)

modprobe videodev
modprobe quickcam[/quote]

Ca compile pas ça ?

Un make install dans /usr/src/kernel-source-2.6.8/modules/qc-usb-messenger-1.3 me renvoie tout un tas d’erreurs, dont voici la fin:

/lib/modules/2.6.8-bouzine/build/include/linux/sched.h:347: error: storage size of `wall_to_prev' isn't known {entrée standard}: Messages de l'assembleur: {entrée standard}:1292: ERREUR: symbole « retval » est déjà défini {entrée standard}:1299: ERREUR: symbole « retval » est déjà défini /lib/modules/2.6.8-bouzine/build/include/linux/sched.h:471: error: storage size of `rlim' isn't known /lib/modules/2.6.8-bouzine/build/include/linux/sched.h:479: error: storage size of `thread' isn't known /lib/modules/2.6.8-bouzine/build/include/linux/sched.h:491: error: storage size of `pending' isn't known /lib/modules/2.6.8-bouzine/build/include/linux/proc_fs.h:211: attention : `create_proc_read_entry' declared `static' but never defined qc-driver.c:198: attention : `frame_l' defined but not used qc-driver.c:218: attention : `DECLARE_MUTEX' declared `static' but never defined qc-driver.c:1632: attention : `qc_frame_begin' defined but not used qc-driver.c:1652: attention : `qc_frame_add' defined but not used {entrée standard}:6015: ERREUR: symbole « retval » est déjà défini {entrée standard}:6021: ERREUR: symbole « retval » est déjà défini {entrée standard}:6027: ERREUR: symbole « retval » est déjà défini {entrée standard}:6033: ERREUR: symbole « retval » est déjà défini {entrée standard}:6039: ERREUR: symbole « retval » est déjà défini {entrée standard}:6045: ERREUR: symbole « retval » est déjà défini {entrée standard}:6051: ERREUR: symbole « retval » est déjà défini {entrée standard}:6057: ERREUR: symbole « retval » est déjà défini {entrée standard}:6063: ERREUR: symbole « retval » est déjà défini {entrée standard}:6069: ERREUR: symbole « retval » est déjà défini {entrée standard}:6075: ERREUR: symbole « retval » est déjà défini {entrée standard}:6081: ERREUR: symbole « retval » est déjà défini {entrée standard}:6093: ERREUR: symbole « retval » est déjà défini {entrée standard}:6099: ERREUR: symbole « retval » est déjà défini make: *** [qc-driver.o] Erreur 1

hello,

Dans ton premier post :

[quote]
awk: cannot open /lib/modules/2.6.8-bouzine/build/include/linux/version.h (No such file or directory)[/quote]

Dans le Makefile l’erreur dessus :

# Note: the brackets on line below contain a space and a _tab_!
RELEASE := $(shell awk -F \" '/[ 	]*\#[ 	]*define[ 	]*UTS_RELEASE[ 	]*/ { print $$2 }' $(LINUX_DIR)/include/linux/version.h|tail -n 1)
MODULE_DIR := /lib/modules/$(RELEASE)
endif

Sa va chercher la version du kernel dans “/lib/modules/2.6.8-bouzine/build/include/linux/version.h” puis ça ne trouve rien, faudrait copier le contenu du répertoire “/usr/src/linux/include” et réssayer. Sinon peut-être exporter la variable “MODULE_DIR” du genre “export $MODULE_DIR=/usr/src/kernelversion/” avant le make all.

hello,

Dans ton premier post :

[quote]
awk: cannot open /lib/modules/2.6.8-bouzine/build/include/linux/version.h (No such file or directory)[/quote]

Dans le Makefile l’erreur ci-dessus :

# Note: the brackets on line below contain a space and a _tab_!
RELEASE := $(shell awk -F \" '/[ 	]*\#[ 	]*define[ 	]*UTS_RELEASE[ 	]*/ { print $$2 }' $(LINUX_DIR)/include/linux/version.h|tail -n 1)
MODULE_DIR := /lib/modules/$(RELEASE)
endif

Sa va chercher la version du kernel dans “/lib/modules/2.6.8-bouzine/build/include/linux/version.h” puis ça ne trouve rien, faudrait exporter la variable “LINUX_DIR=/usr/src/linux-ta-version” du genre :

make install LINUX_DIR=/usr/src/linux-ta-version USER_OPT=-DDEBUG

bonjour,
je pense pas que module-assistant fonctionne comme ça …
tu devrais mettre le tar.gz de ton module dans /usr/src. et lancer m-a update avant non ? c’est m-a qui s’occupe de décompresser … ou me gourges-je ?

[quote=“stonfi”]Sa va chercher la version du kernel dans “/lib/modules/2.6.8-bouzine/build/include/linux/version.h” puis ça ne trouve rien, faudrait copier le contenu du répertoire “/usr/src/linux/include” et réssayer.
[/quote]
Je ne vois pas pourquoi il ne trouve pas /lib/modules/2.6.8-bouzine/build/include/linux/version.h :
/lib/modules/2.6.8-bouzine/build/ est un lien symbolique vers /usr/src/kernel-source-2.6.8 b[/b] et version.h est dans ce dossier b[/b].

b[/b] bouzine:/home/lolotte# ls -al /lib/modules/2.6.8-bouzine/
total 836
drwxr-xr-x 4 root root 4096 2006-05-24 06:52 .
drwxr-xr-x 4 root root 4096 2006-05-23 15:56 …
lrwxrwxrwx 1 root root 28 2006-05-23 15:56 build -> /usr/src/kernel-source-2.6.8
drwxr-xr-x 10 root root 4096 2006-05-23 15:56 kernel
drwxr-xr-x 2 root root 4096 2006-05-23 17:06 misc
-rw-r–r-- 1 root root 138888 2006-05-24 06:52 modules.alias
-rw-r–r-- 1 root root 69 2006-05-24 06:52 modules.ccwmap
-rw-r–r-- 1 root root 242340 2006-05-24 06:52 modules.dep
-rw-r–r-- 1 root root 517 2006-05-24 06:52 modules.ieee1394map
-rw-r–r-- 1 root root 1061 2006-05-24 06:52 modules.inputmap
-rw-r–r-- 1 root root 16427 2006-05-24 06:52 modules.isapnpmap
-rw-r–r-- 1 root root 131958 2006-05-24 06:52 modules.pcimap
-rw-r–r-- 1 root root 104188 2006-05-24 06:52 modules.symbols
-rw-r–r-- 1 root root 157659 2006-05-24 06:52 modules.usbmap
lrwxrwxrwx 1 root root 28 2006-05-23 15:56 source -> /usr/src/kernel-source-2.6.8

et
b[/b] ls -al /usr/src/kernel-source-2.6.8/include/linux/version.h
lrwxrwxrwx 1 root root 28 2006-08-18 18:40 version.h -> /usr/include/linux/version.h

J’ai qd même copier en dur /usr/include/linux/version.h dans /usr/src/kernel-source-2.6.8/include/linux/:

# rm /usr/include/linux/version.h #cp /usr/include/linux/version.h /usr/include/linux/version.h

et bien rien ne change :j’ai tjs les mêmes messages d’erreur ( que ce soit via ./quickam.sh ou autre)

[quote=“usinagaz”]bonjour,
je pense pas que module-assistant fonctionne comme ça …
tu devrais mettre le tar.gz de ton module dans /usr/src. et lancer m-a update avant non ? c’est m-a qui s’occupe de décompresser … ou me gourges-je ?[/quote]
Effecivement, je ne procédais pas comme ça. J’ai donc suivi cette procédure ( après avoir au préalable virer /usr/src/kernel-source-2.6.8/modules/qc-usb-messenger):

[code]bouzine:/usr/src# m-a update

Updated infos about 71 packages
bouzine:/usr/src# m-a prepare
apt-get install kernel-headers-2.6.8-bouzine

Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances… Fait
E: Impossible de trouver le paquet kernel-headers-2.6.8-bouzine

Done![/code]
M’énerve: je l’ai compilé moi même ce noyau: pas besoin de headers !!??

Bon, et si je fais un m-a a-i qc-usb, j’ai droit au:

Warning, /usr/src/kernel-source-2.6.8 seems to contain unconfigured kernel source! Warning, /lib/modules/2.6.8-bouzine/build seems to contain unconfigured kernel source! Bad luck, the kernel headers for the target kernel version could not be found and you did not specify other valid kernel headers to use. If the running kernel has been shipped with the Debian distribution, please install the package kernel-headers-2.6.8-bouzine. If your kernel source tree (or headers) is located in some non-usual location, please set the KERNELDIRS environment variable to the path of this directory, or(alternatively) specify the source directory we build for with the --kernel-dir option in module-assistant calls.

et un :

m-a a-i -k /usr/src/kernel-source-2.6.8/ qc-usb Build of the package qc-usb-source failed!

Je bloque grave

make install LINUX_DIR=/usr/src/version-de-ton-kern/ 

ça marche chez moi.

un make install LINUX_DIR=/usr/src/kernel-source-2.6.8 me renvoie tout un tas d’erreur dont voici la fin:

{entrée standard}:1322: ERREUR: symbole « retval » est déjà défini include/linux/sched.h:471: error: storage size of `rlim' isn't known include/linux/sched.h:479: error: storage size of `thread' isn't known include/linux/sched.h:491: error: storage size of `pending' isn't known /usr/src/qc-usb-messenger-1.3/qc-driver.c:3383: error: storage size of `qc_v4l_fops' isn't known include/linux/proc_fs.h:211: attention : `create_proc_read_entry' declared `static' but never defined /usr/src/qc-usb-messenger-1.3/qc-driver.c:198: attention : `frame_l' defined but not used /usr/src/qc-usb-messenger-1.3/qc-driver.c:218: attention : `DECLARE_MUTEX' declared `static' but never defined /usr/src/qc-usb-messenger-1.3/qc-driver.c:1632: attention : `qc_frame_begin' defined but not used /usr/src/qc-usb-messenger-1.3/qc-driver.c:1652: attention : `qc_frame_add' defined but not used {entrée standard}:6045: ERREUR: symbole « retval » est déjà défini {entrée standard}:6051: ERREUR: symbole « retval » est déjà défini {entrée standard}:6057: ERREUR: symbole « retval » est déjà défini {entrée standard}:6063: ERREUR: symbole « retval » est déjà défini {entrée standard}:6069: ERREUR: symbole « retval » est déjà défini {entrée standard}:6075: ERREUR: symbole « retval » est déjà défini {entrée standard}:6081: ERREUR: symbole « retval » est déjà défini {entrée standard}:6087: ERREUR: symbole « retval » est déjà défini {entrée standard}:6093: ERREUR: symbole « retval » est déjà défini {entrée standard}:6099: ERREUR: symbole « retval » est déjà défini {entrée standard}:6105: ERREUR: symbole « retval » est déjà défini {entrée standard}:6111: ERREUR: symbole « retval » est déjà défini {entrée standard}:6117: ERREUR: symbole « retval » est déjà défini {entrée standard}:6129: ERREUR: symbole « retval » est déjà défini {entrée standard}:6135: ERREUR: symbole « retval » est déjà défini make[2]: *** [/usr/src/qc-usb-messenger-1.3/qc-driver.o] Erreur 1 make[1]: *** [_module_/usr/src/qc-usb-messenger-1.3] Erreur 2 make[1]: Leaving directory `/usr/src/kernel-source-2.6.8' make: *** [quickcam.ko] Erreur 2

ca marche chez moi ???

# wget http://home.mag.cx/messenger/source/
# mv *.tgz /usr/src
# tar ...
# cd ...
# make clean
# make install LINUX_DIR=/usr/src/kernel-version/

… que ça marchait chez toi .
Et aussi incroyable que cela puisse paraître, ça ne marche pas chez moi:
j’ai bien récupérer les sources chez home.mag.cx/messenger/source/

#make clean #make install LINUX_DIR=/usr/src/kernel-source-2.6.8
et ça me sort les erreurs que j’ai déjà mentionnées.

PS: j’ai soupçonné que la version de qc-usb-messenger-1.3 était peut-être trop récente, j’ai donc aussi fait tous mes essais avec les versions antérieures ( 1.1 ; 1.0; 0.9; 0.8 ; 0.7 ) sans aucun succés.

re-
en effet , souci … heu stonfi, tu es en 2.6.8 toi aussi ?
bon, moi j’aimerai bien savoir :

  • vers où pointe ton lien /usr/src/linux (ne me dis pas que tu ne l’as pas …)
  • pourquoi tu veux utiliser ce tar.gz ?
  • pourquoi il s’appelle messenger, alors qu’on a un .deb pour ce pilote via apt ? $ apt-cache search -n qc-usb qc-usb-source - source code for QuickCam Express kernel module qc-usb-utils - Utility programs for the qc-usb kernel module
  • l’id vendeur et produit de ta webcam ?

Aprés on y verra plus clair … pour faire plusieurs tentatives, je pense qu’il faut à chaque fois purger désinstaller les résidus de la tentative précédente.
Si ton 2.6.8 ronronne mais que c’est ta première compile de module, peut-être qu’il ne ronronnait pas tant que ça finalement …
Attention à un truc, il faut des noyaux etch pour compiler certains drivers, notamment de webcam.
Comme apparemment ta webcam est une logitech (me gourges-je ?), je pense que la solut est dans un m-a a-i qc-usb tout court, aprés avoir vérifié que les sources étaient bien d’équerre …
Ou alors une recompil ( fait une autre version de 2.6.8 en générant les headers et tout le bastringue …) …
Mais avant , quelques réponses peut-être ?

mon /usr/src/linux pointe vers /usr/src/kernel-source-2.6.8:

# ls -al /usr/src/linux lrwxrwxrwx 1 root src 28 2006-08-19 13:44 /usr/src/linux -> /usr/src/kernel-source-2.6.8

[quote=“usnagaz”]- pourquoi tu veux utiliser ce tar.gz ?

  • pourquoi il s’appelle messenger, alors qu’on a un .deb pour ce pilote via apt ?[/quote]
    parceque le module qc-usb ne supporte pas les mêmes webcam que le module qc-usb-messenger : howto.stephane-huc.net/Linux/usb/quickcam/
    et moi, je voudrais acheter ( ce qui n’est pas encore fait: j’installe le pilote et après j’achète) la Logitech Quickcam Messenger Plus (0x046D, 0x08F6) : home.mag.cx/messenger/
    Ma vieille DEXXA marche avec le qc-usb, mais elle viellit… c’est pour cela que je veux installer le qc-usb-messenger.

Voila

oui effectivement … va ptêtre falloir recompiler un noyau …
Essaye un 2.6.16, refait bien les liens vers les sources en conséquence, pose l’archive compressé dans /usr/src, el lance un m-a a-i l’archivecompressée ?

Sinon tu as essayé comme ceci :

Normalement m-a crée le rep modules (s’il n’existe pas) et décompresse dedans l’archive qui se trouve impérativement (me gourges-je ?) dans /usr/src
moi je ferai un remov de tout tout ce qui touche à qc-usb-messenger, puis un wget de la dernière version dans /usr/src avant de tenter quoi que ce soit …

[quote=“usinagaz”]Sinon tu as essayé comme ceci :
Citation:
Pour les pro-debians, pensez plutôt à placer l’archive dans /usr/src/modules, ainsi vous pourrez la compiler à la manière debian…[/quote]

oui, c’est effectivement une methode que j’avais essayé:

  1. décompresser l’archive dans /usr/src/kernel-source-2.6.8/module/
  2. #make-kpkg clean #make-kpkg --append-to-version -bouzine modules-image Please ignore the warning about overriding and ignoring targets above. These are harmless. They are only invoked in a part of the process that tries to snarf variable values for the conf.vars file. echo done > stamp-configure for module in ; do \ if test -d $module; then \ (cd $module; \ if ./debian/rules KVERS="2.6.8-bouzine" KSRC="/usr/src/kernel-source-2.6.8" \ KMAINT="Unknown Kernel Package Maintainer" KEMAIL="unknown@unconfigured.in.etc.kernel-pkg.conf" \ KPKG_DEST_DIR="/usr/src/kernel-source-2.6.8/.." \ KPKG_MAINTAINER="Unknown Kernel Package Maintainer" \ KPKG_EXTRAV_ARG="EXTRAVERSION=-bouzine" \ ARCH="i386" \ KDREV="1" kdist_image; then \ echo "Module $module processed fine"; \ else \ echo "Module $module failed."; \ if [ "X" != "X" ]; then \ echo "Perhaps $module does not understand --rootcmd?"; \ echo "If you see messages that indicate that it is not"; \ echo "in fact being built as root, please file a bug "; \ echo "against $module."; \ fi; \ echo "Hit return to Continue"; \ read ans; \ fi; \ ); \ else \ echo "Module $module does not exist"; \ echo "Hit return to Continue?"; \ fi; \ done

Et rien de plus: pas de .deb qcque dans /usr/src de créé…rien…

Et j’aurais une question: pourquoi recompiler un nvx noyau: pour repartir sur des bases saines? ou parceque un 2.6.8 est insuffisant ?

[quote=“yanlolot”][quote=“usinagaz”]Sinon tu as essayé comme ceci :
Citation:
Pour les pro-debians, pensez plutôt à placer l’archive dans /usr/src/modules, ainsi vous pourrez la compiler à la manière debian…[/quote]

oui, c’est effectivement une methode que j’avais essayé:

  1. décompresser l’archive dans /usr/src/kernel-source-2.6.8/module/
    [/quote]heu, là je t’arrêtes de suite, c’est pas ce que je lis moi … :open_mouth:
    Si tu compile un module avec m-a il va créer le rep /usr/src/modules s’il n’existe pas … faut donc que tu le crées ce rep, ou que tu compiles un module autre pour le fun avec un m-a a-i telmodule-source, en laissant le soin a Assistant de te le créer …

oui, erreur de frappe:

  1. décompresser l’archive dans /usr/src/modules/
    Ensuite:

[code]#m-a update
Updated infos about 71 packages

m-a prepare

Kernel headers available in /usr/src/kernel-source-2.6.8
Creating symlink…

Done!

m-a a-i qc-usb-messenger-1.3

qc-usb-messenger-1.3, what is qc-usb-messenger-1.3?
bouzine:/usr/src# m-a a-i qc-usb-messenger
qc-usb-messenger, what is qc-usb-messenger?
[/code]
il n’y a qu’avec un m-a a-i qc-usb qu’il réagit ( en me disant qu’il a échoué), mais de tte facon, qc-usb n’est pas le même module que qc-usb-messenger.

PS: j’avais gardé une entrée dans GRUB avec le 2.6.8 d’origine.
J’ai rebooté sur ce noyau, installé les headers, et j’ai exactement le même résultat que ci dessus, si ce n’est :

[code]# m-a prepare
Kernel headers available in /usr/src/kernel-headers-2.6.8-2-386
Creating symlink…

Done![/code]
et ensuite, la même chose qu’au dessus du PS.

oui c’est normal, il n’y a pas de source debian pour le module, donc m-a ne le trouve pas … je me demande si en rajoutant dans le source list le lien vers le tar.gz, ça changerait quelque chose …
J’ai essayé de le compiler sur mon 2.6.16, (abandonnant l’idée de m-a), c’est n’importe quoi ce scripts … un pti résumé ? ok, il me sort (le script) des trucs du style :

  • vous utilisez modutils alors que vous êtes sur un 2.6.x … heu, j’ai pas modutil, mais module-init-tools …
  • vous n’avez pas le programme insmod ou rmmod, alors qu’un locate me les montre dans /sbin …
  • voulez vous continuez, ceci pourrait crasher votre pc !!! 25 fois il me l’a demandé …
  • aprés il me dit qu’il est compilé, mais qu’il arrive pas à le charger … :smt018 un find quickam.ko me montre que dalle … :smt017

Bref, n’importe quoi ce script …
Tant mieux que tu n’ai pas encore acheté la webcam ; si tu tiens à ce modele, à ta place, j’essaierai avec un noyau recompilé 2.6.16, ou j’attendrai que debian l’ai sorti en source … ou alors avec la méthode classique make …
Sinon, pourquoi pas trouver une webcam dont on sait que sous linux/debian, no souci compilatoire ?

Tout d’abord merci pour cette aide soutenue.

J’suis preneur : c’est pour utiliser avec wengophone ( ou Ekiga…) sur une sarge 2.6.8

de rien :wink:
bon ben si tu veux rester en 2.6.8 mettons, regarde les modules présents, pour webcam, dans le noyau d’usine, et vois si une te convient …
Sinon toutes celles compatibles spca5xx, mais bon j’ai pris une labtec pro (marrant comme nom pour un bas de gamme), ça marche ça me suffit, mais c’est pas top quality … une liste pour le spca5xx ? ok : mxhaard.free.fr/spca5xx.html

ps: vais au dodo , bonne fin de soirée.