Retourner aux forums || Retourner au forum Linux.mandriva

Linux.mandriva : spca5xx recompilation de module

Posté par okeanos () le 18 janvier 2007
0
Pour utiliser une webcam de marque mal identifiée j'ai récupéré un driver

spca5xx

depuis

http://www.redhat.com/archives/rhl-list/2005-April/msg04332.(...)

grâce à des indications glanées ici (merci aux John Doe et Baud123). J'ai regardé le README, il faut compiler le module, en effet. J'essaie de comprendre, j'essaie de lancer des lignes de commande avec

insmod ... make install ...

Mais en fait je suis vraiment dépassé en jouant dans cette division qui n'est pas la mienne. La pédagogie de la barre haute, c'est bien, mais là je patauge. J'indique que je débute, et qu'il me manque donc à chaque fois des étapes. Avant de lancer telle ou telle commande, par exemple :

insmod -f./le_module

ne faut-il pas s'être au préalable placé dans un répertoire approprié, ou avoir fait une opération préparatrice ?

> Lire le message (21 commentaires, moyenne: 1,5).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

insmod

Posté par Farvardin (page perso, ) le 18/01/2007 à 20:24. (lien). Évalué à 1.

as tu correctement compilé le module ?

sinon en général cela peut être : (en root)

./configure
make
make install

ensuite, (toujours en root) :

modprobe nom_du_module
ou alors :

insmod /chemincompletdumodule/sousrepertoireetc/nom_du_module

tant pour l'un que pour l'autre, il n'y a pas à être dans un répertoire en particulier. L'opération préparatrice, c'est la compilation...

Il faut également que tu aies les sources et les bibliothèques pour ton noyau.

--
You can't grep dead trees...
  • [^]dkms-spca

    Posté par fff () le 19/01/2007 à 09:07. (lien). Évalué à 2.

    Puisque tu es sous mandriva, urpmi dkms-spca5xx devrait suffire ...

    Si tu préfère l'installeur graphique, fait une recherche sur spca.

    FFF

    • [^]Re: dkms-spca

      Posté par okeanos () le 19/01/2007 à 11:33. (lien). Évalué à 1.

      Voilà un renseignement qui semble probant ; j'ai essyé cette commande, 11 dépendances m'ontété proposées au choix, arbitrairement j'ai opté pour la 11, et l'installation s'est lancée, jusqu'à ceci :


      Creating symlink /var/lib/dkms/spca5xx/0.57.00/source ->
      /usr/src/spca5xx-0.57.00

      DKMS: add Completed.

      Error! Your kernel source for kernel 2.6.12-12mdk-i686-up-4GB cannot be found at
      /lib/modules/2.6.12-12mdk-i686-up-4GB/build or /lib/modules/2.6.12-12mdk-i686-up-4GB/source.
      You can use the --kernelsourcedir option to tell DKMS where it's located.

      Error! Could not locate spca5xx.ko.gz for module spca5xx in the DKMS tree.
      You must run a dkms build for kernel 2.6.12-12mdk-i686-up-4GB (i586) first.


      Là, ça redevient très abstrait pour moi ; j'ai essayé --kernelsourcedir : cela donne "command not found". FFF, toi qui parais bien éclairé, vois-tu où est le problème et surtout comment y répondre.

      • [^]Re: dkms-spca

        Posté par B. franck () le 20/01/2007 à 00:04. (lien). Évalué à 3.

        installe les sources de ton noyau, elles sont nécessaires pour pouvoir compiler un module.

  • [^]Re: insmod

    Posté par okeanos () le 19/01/2007 à 11:07. (lien). Évalué à 1.

    Question de débutant : "il faut que tu aies les sources et les bibliothèques pour ton noyau", ça veut dire quoi ? Qu'il faut que je les aie localisées ? extraites de quelque part ? que j'y ajoute quelque chose ?...

    • [^]Re: insmod

      Posté par Farvardin (page perso, ) le 19/01/2007 à 17:13. (lien). Évalué à 2.

      dans le centre de contrôle de mandrake, il y a sans doute une application pour installer automatiquement des programmes depuis des dépôts internet. Il faut que tu cherches dedans ce qui concerne le noyau : ses sources, et ses "headers", cela permet de compiler des modules additionnels.

      --
      You can't grep dead trees...
    • [^]Re: insmod

      Posté par liberforce (Jabber id, page perso, ) le 22/01/2007 à 17:23. (lien). Évalué à 2.

      Sous Mandriva, le kernel s'appelle kernel-2.6.x. Les sources du kernel s'appellent kernel-source-2.6.x.

      Hop, on cherche la liste des paquetages qui commencent par kernel-2.6 ou kernel-source-2.6 (regarde la page de man de urpmq -y):
      [liberforce@donald]$ urpmq -y kernel | egrep "^(kernel|kernel-source)-2.6"
      kernel-2.6.17.5mdv
      kernel-2.6.17.6mdv
      kernel-2.6.17.8mdv
      kernel-source-2.6.17.5mdv
      kernel-source-2.6.17.6mdv
      kernel-source-2.6.17.8mdv


      On cherche ensuite le nom du module dkms à installer... On sait que c'est le pilote spca-quelquechose...
      [liberforce@donald]$ urpmq -y spca
      dkms-spca5xx
      spca5xx-kernel-2.6.17-2mdvlegacy


      Ah tiens, il y a aussi un kernel spécial qui intègre le pilote déjà compilé pour les machines un peu vieilles. Bon, nous ce qui nous intéresse c'est dkms-spca5xx.

      Tu installes le dernier kernel, les sources correspondant à la même version, ainsi que le module dkms qu'on a vu :
      urpmi kernel-2.6.17.8mdv kernel-source-2.6.17.8mdv dkms-spca5xx

      Tu redémarres pour utiliser le nouveau kernel. Ça devrait être bon...

      • [^]Re: insmod

        Posté par liberforce (Jabber id, page perso, ) le 22/01/2007 à 17:28. (lien). Évalué à 2.

        Ah, zut, je t'ai donnée ça en croyant que tu utilisais une mandriva 2007. D'après ta version de kernel, c'est plutôt la 2006. L4esprit est exactement le même, la version du kernel et des sources à installer sera juste différente.

        • [^]Re: insmod

          Posté par okeanos () le 24/01/2007 à 14:15. (lien). Évalué à 1.

          Cher Liberforce

          Ce matin, je trouve tes messages, alors que je me bagarre depuis une dizaine de jours pour me sortir de cette affaire de module... Ce qui m'a conduit à l'épineuse compilation du noyau. Ce doit être formateur de galérer ! Tes indications semblaient devoir me libérer, et je méditais déjà le message de remerciements : je suivis donc ton chemin. Avec la mandriva 2006 ça donne la version du noyau 2.6.12-27 ; bref je lance toutes les commandes et ça roule ! Petite ou grande erreur ? Au lieu de redémarrer, j'ai arrêté le système ; depuis à chaque fois que je démarre j'ai l'ordinateur qui se lance et qui bascule normalement sur le système; pingouin, rebours des 9 secondes, écran noir avec :

          BIOS Data check successful

          et la deuxième ligne qui saute avant même que je ne réussisse à la lire, ça quitte le système, on revient sur l'ordinateur qui rebascule sur le système et le cycle se répète.
          Impossible de voir l'opération de boot se poursuivre ! Sur l'écran d'ouverture du système (avec le pingouin et le compteur de secondes), il y a ces deux indications :

          Failsafe
          2612-27

          Il semble donc que le noyau ait été recompilé, mais avec perte des modules nécessaires au boot. C'est vraiment la panade ! Y a-t-il une voie de sortie ou faut-il faire une réinstallation intégrale ?

          • [^]Re: insmod

            Posté par liberforce (Jabber id, page perso, ) le 24/01/2007 à 23:14. (lien). Évalué à 2.

            Hum, c'est bizarre, tu devrais avoir une entrée "linux" en plus de failsafe et 2612-27. En fait elle redirige juste vers le dernier noyau installé (ou le plus récent, je ne sais pas).

            Quand tu as cet écran qui est affiché par LILO (le Linux loader), choisis avec les flèches du clavier "2612-27", et appuis sur entrée. Tu démarreras sur le noyau 2.6.12-27.

            Ensuite j'ai du mal à comprendre ce qui ce passe réellement d'après tes explications... C'est pas très clair tout ça, mais c'est normal, tu n'as pas encore les mots pour décrire les éléments que tu vois. Ça s'acquiert avec un peu de pratique.

            Si l'ordinateur redémarre tout de même en boucle, j'ai bien peur que la réinstallation soit la voie la plus simple... Une occasion pour passer à la Mandriva 2007 peut être.

            Sache en tout ca que tu n'as pas à recompiler ton noyau (je ne crois pas que tu l'ais fait d'ailleurs). Tout au plus tu as dû compiler un module qui est utilisé par ton noyau, mais comme je te l'ai dit, ce n'est normalement pas nécessaire. Ensuite, redémarrer ou arrêter la machine revient au même, pas de risque à ce sujet.

            Juste une question, tu te trouves dans quel coin ? France, région parisienne ? Si tu es intéressé par un coup de fil un de ces soir, envoie moi un message à liberforce fr st , avec ton n° de tel fixe (je suis dégroupé total, je peux pas appeler gratos sur des portables). J'essaierai de voir ce que je peux faire, c'est plus facile de vive voix.
            @+

            • [^]Re: insmod

              Posté par okeanos () le 25/01/2007 à 08:47. (lien). Évalué à 1.

              Il y a bien aussi "Linux" ; je viens d'essayer ta manip, ça ne donne rien. Je vis à La Rochelle, dégroupé également. Ta messagerie pour t'envoyer mon numéro j'ai pas saisi. Voici la mienne si tu veux qu'on établisse le contact téléphonique de moi à toi : ch.hagen@free.fr
              A plus !

Pour les bases, consulte :

Posté par slack () le 18/01/2007 à 20:28. (lien). Évalué à 2.

http://casteyde.christian.free.fr/system/linux/guide/online/(...)

En particulier les parties
5.3. Pages de manuel
5.4. Opérations de base sur les répertoires
5.5. Notions sur les chemins Unix
7.1. Notions de base
7.1.1. Définition des termes

  • [^]Re: Pour les bases, consulte :

    Posté par okeanos () le 19/01/2007 à 12:52. (lien). Évalué à 1.

    Merci : une source qui a l'air de qualité !

à lire en premiet

Posté par B. franck () le 19/01/2007 à 06:10. (lien). Évalué à 2.

les fichiers README et INSTALL (dans l'ordre) fournis avec le driver (ou autre) qui se respecte.

Dans notre cas:
1- vérifier que le gcc qui est installé est celui qui a servi à compiler le noyau qu'on utilise (uname -a)
2- ./configure &&make && sudo make install
3- modprobe spca5xx
4- on regarde si ça a fait quelquechose: tail /var/log/messages
5- vlc et on ouvre un périphérique de capture
(et ne pas oublier de placer l'utilisateur dans le groupe video, de se reconnecter pour que celà prenne effet)

  • [^]Re: à lire en premiet

    Posté par okeanos () le 19/01/2007 à 11:02. (lien). Évalué à 1.

    Petite précision pour un vrai débutant peu imaginatif : "gcc" cela signifie ?

    • [^]Re: à lire en premiet

      Posté par liberforce (Jabber id, page perso, ) le 22/01/2007 à 17:25. (lien). Évalué à 2.

      GNU C Compiler: le compilateur C du projet GNU.
      Ça a dérivé en GNU Compiler Collection, car gcc sait gérer d'autres langages que le C à présent.

  • [^]Re: à lire en premiet

    Posté par okeanos () le 19/01/2007 à 13:56. (lien). Évalué à 1.

    J'ai repris les choses dans l'ordre mais je me heurte à de sérieuses difficultés. Dans le README, j'ai ceci :

    Before trying to compile the driver, ensure that you've configured your
    kernel, and updated the dependencies:
    'make [config|menuconfig|xconfig]; make dep'.

    mais cette commande ne me donne rien, ou plutôt ceci :

    make: *** Pas de règle pour fabriquer la cible « [config ». Arrêt.
    bash: menuconfig: command not found
    bash: xconfig]: command not found

    Puis j'ai :

    Make sure, when compiling the driver, you use the same version of compiler as
    was used to compile your kernel. Not doing so can create incompatible binaries.

    Ouais je veux bien mais comment je fais pour m'en assurer ? Ensuite, cela ça m'échappe carrément :

    As root, check the output of lsmod for videodev.

    Dans l' INSTALL, on a :

    Module compile outside the kernel tree but need the source of your running
    kernel installed and configured.
    be sure your kernel include usb and v4l stuff

    Kernel 2.6.x
    make clean
    make
    if all goes right as root :
    make install

    To test please use the command line spcaview tool.
    You need libsdl installed with the header from your distro or goto http://www.libsdl.org

    Voilà ce que me donne 'make clean' :

    make clean
    make: *** Pas de règle pour fabriquer la cible « clean ». Arrêt.

    Ce point 'To test please use the command line spcaview tool.', je ne le comprends pas non plus. Comme je l'ai déjà écrit, je ne joue pas dans ma division avec cette affaire de webcam, de module et de compilation. Mais je compte persévérer, surtout avec de l'aide...

    • [^]quelques pistes

      Posté par slack () le 19/01/2007 à 14:52. (lien). Évalué à 1.

      gcc est le compilateur (consulte http://fr.wikipedia.org/wiki/Compilateur )

      Avant de compiler un module, découvre la compilation du noyau.
      Un problème à la fois !

      Installe tous les outils pour développer (gcc, binutils .. ) et les sources du noyau. Ensuite, dans un terminal, place toi dans le répertoire des sources. Souvent il faut taper :

      cd /usr/src/linux

      Je ne connais pas ta distribution. Il te faudra adapter le chemin.


      La ligne ci-dessous permet de configurer son noyau :
      make [config|menuconfig|xconfig]; make dep

      Cela signifie que tu dois ensuite lancer l'une l'une des 3 lignes ci-dessous :

      make config ; make dep

      make menuconfig; make dep

      make xconfig; make dep


      Consulte la documentation citée et lorsque tu auras compilé un noyau fonctionnel, tu pourras ensuite compiler un module.

      • [^]Re: quelques pistes

        Posté par okeanos () le 19/01/2007 à 17:40. (lien). Évalué à 1.

        Je le répète et ce n'est pas une coquetterie : je débute, non seulement sous Linux, Mandriva 2006, mais surtout en informatique... Donc, merci pour les pages de Wikipédia, ça permet de comprendre les concepts. Mais ça ne résout pas les problèmes de manipulation ! Tu me dis :

        'Installe tous les outils pour développer (gcc, binutils .. ) et les sources du noyau.'

        Comprends pas ; les "installer" ? mais d'où vers où ?

        • [^]Re: quelques pistes

          Posté par B. franck () le 20/01/2007 à 00:11. (lien). Évalué à 1.

          aïe.
          je pense qu'à ce stade il serait hélas plus rapide/simple de changer de webcam... (sans vouloir être médisant)

    • [^]Re: à lire en premiet

      Posté par B. franck () le 20/01/2007 à 00:03. (lien). Évalué à 2.

      tu peux passer le chapitre sur la compilation du noyau (je suppose que mandriva à paramétré le module v4l (video for linux) dans son noyau.

      Déjà, il te faut les sources de ton noyau: utilise urpmi pour les installer (uname -a pour savoir quelle version installer)
      ensuite tu pourras compiler le module puisque c'est un prérequis.

      Ouais je veux bien mais comment je fais pour m'en assurer ?

      cat /proc/version te donnera la version de gcc utilisé pour compiler ton noyau, ensuite tu fais un gcc --version et tu vérifies l'égalité entre les 2 versions. S'il y a différence, il te faudra soit recompiler le noyau soit réinstaller le gcc utilisé pour compiler le noyau.

      Ensuite, cela ça m'échappe carrément :
      As root, check the output of lsmod for videodev.

      sudo modprobe videodev
      et vérifie les dernières lignes de /var/log/messages

      Au fait, gcc est bien installé oui...

Revenir en haut de page || Retourner aux forums || Retourner au forum Linux.mandriva