Forum Linux.debian/ubuntu erreur lors de la compilation du noyau

Posté par  .
Étiquettes :
0
1
mar.
2006
Mon fournisseur d'accès internet est bluewin (suisse) et j'ai un modem/routeur usb Netopia Cayman 3342. Il existe un driver disponible par cvs sur http://accessrunner.sourceforge.net/. J'ai donc telechargé ce driver, j'ai copié l'ensemble des fichiers dans /usr/src/linux/drivers/usb/atm comme indiqué dans la documentation.
Ma distribution est une debian et le noyau utilisé est le dernier disponible c'est-à-dire le 2.6.15.4.
Lors de la compilation du noyau, j'ai ce message d'erreur:
drivers/usb/atm/cxacru.c:39:25: linux/mutex.h : Aucun fichier ou répertoire de ce type
Dans le fichier inclus à partir de drivers/usb/atm/cxacru.c:41:
drivers/usb/atm/usbatm.h:37:25: linux/mutex.h : Aucun fichier ou répertoire de ce type
In file included from drivers/usb/atm/cxacru.c:41:
drivers/usb/atm/usbatm.h:175: error: field `serialize' has incomplete type
drivers/usb/atm/cxacru.c:164: error: field `cm_serialize' has incomplete type
drivers/usb/atm/cxacru.c: Dans la fonction « cxacru_cm »:
drivers/usb/atm/cxacru.c:223: attention : implicit declaration of function `mutex_lock'
drivers/usb/atm/cxacru.c:292: attention : implicit declaration of function `mutex_unlock'
drivers/usb/atm/cxacru.c: Dans la fonction « cxacru_bind »:
drivers/usb/atm/cxacru.c:721: attention : implicit declaration of function `mutex_init'
make[3]: *** [drivers/usb/atm/cxacru.o] Erreur 1
make[2]: *** [drivers/usb/atm] Erreur 2
make[1]: *** [drivers/usb] Erreur 2
make: *** [drivers] Erreur 2

Je n'ai pas réussi à résoudre ce problème; je ne trouve pas ce fichier d'entête linux/mutex.h dans mon arborescence, aucun des paquets debian ne semble contenir ce fichier.
J'ai cherché en vain sur google, dans la mailing list et les forums du projet sourceforge de ce driver.
Merci d'avance si vous avez une réponse.
  • # a mon avis

    Posté par  . Évalué à 2.

    il te faut:

    linux 2.6.10

    peut tu preciser les etapes que tu fait a partir du moment ou tu as copier le modules dans /usr/src/etc...
    • [^] # Re: a mon avis

      Posté par  . Évalué à 1.

      merci pour cette première réponse!

      Donc je télécharge le noyau 2.6.10 :

      debian:/usr/src# wget -c http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
      debian:/usr/src# tar -jxvf linux-2.6.10.tar.bz2
      debian:/usr/src# rm -f linux
      debian:/usr/src# ln -s linux-2.6.10 linux

      A ce moment là, je télécharge le driver :


      debian:/usr/src# cvs -z9 -q -d :pserver:anoncvs:anoncvs@cvs.infradead.org:/home/cvs co usbatm
      debian:/usr/src# cp -fr usbatm/* linux/drivers/usb/atm/.


      Puis je copie mon ancien .config

      debian:/usr/src# cp /boot/config-2.6.15.4 linux/.config
      debian:/usr/src# cd linux
      debian:/usr/src/linux# make menuconfig


      Je selectionne en dur (*) les 4 drivers ( USB DSL modem support, Speedtouch USB suipport, Conexant AccessRunner USB support et Others USB DSL modem support) dans Device Drivers / USB support / USB DSL modem support. Je sélectionne aussi en dur Prompt for development and/or incomplete code/drivers (EXPERIMENTAL) et Asynchronous Transfer Mode (ATM) (EXPERIMENTAL) (ATM) comme indiqué dans la doc.

      Enfin, je fais un make. Et il me sort la même erreur:

      drivers/usb/atm/cxacru.c:39:25: linux/mutex.h : Aucun fichier ou répertoire de ce type
      Dans le fichier inclus à partir de drivers/usb/atm/cxacru.c:41:
      drivers/usb/atm/usbatm.h:37:25: linux/mutex.h : Aucun fichier ou répertoire de ce type
      In file included from drivers/usb/atm/cxacru.c:41:
      drivers/usb/atm/usbatm.h:175: error: field `serialize' has incomplete type
      drivers/usb/atm/cxacru.c:164: error: field `cm_serialize' has incomplete type
      drivers/usb/atm/cxacru.c: Dans la fonction « cxacru_cm »:
      drivers/usb/atm/cxacru.c:223: attention : implicit declaration of function `mutex_lock'
      drivers/usb/atm/cxacru.c:292: attention : implicit declaration of function `mutex_unlock'
      drivers/usb/atm/cxacru.c: Dans la fonction « cxacru_bind »:
      drivers/usb/atm/cxacru.c:677: attention : implicit declaration of function `kzalloc'
      drivers/usb/atm/cxacru.c:677: attention : affectation transforme un entier en pointeur sans transtypage
      drivers/usb/atm/cxacru.c:721: attention : implicit declaration of function `mutex_init'
      make[3]: *** [drivers/usb/atm/cxacru.o] Erreur 1
      make[2]: *** [drivers/usb/atm] Erreur 2
      make[1]: *** [drivers/usb] Erreur 2
      make: *** [drivers] Erreur 2
      • [^] # Re: a mon avis

        Posté par  . Évalué à 2.

        apres ton make menuconfig et la configuration de ton noyau:

        make dep

        make bzImage

        make modules

        make modules_install

        la commande make tous seul N'EST PAS UTILISé POUR COMPILER LE NOYAU, bon la ce devrais marcher

        de rien :)
        • [^] # Re: a mon avis

          Posté par  . Évalué à 1.

          Je teste ça ce soir et vous tiens au courant.

          Merci!
          • [^] # Re: a mon avis

            Posté par  . Évalué à 1.

            Ca ne fonctionne toujours pas.

            Dans un premier temps, j'ai relancer make menuconfig pour vérifier que mes modules "usb atm" étaient bien sélectionnés.

            Puis j'ai fait un make dep :
            debian:/usr/src/linux# make dep
            *** Warning: make dep is unnecessary now.

            Ensuite, j'ai éxecuté make bzImage:
            debian:/usr/src/linux# make bzImage
            CHK include/linux/version.h
            SPLIT include/linux/autoconf.h -> include/config/*
            make[1]: « arch/i386/kernel/asm-offsets.s » est à jour.
            CHK include/linux/compile.h
            CHK usr/initramfs_list
            LD drivers/usb/atm/built-in.o
            Kernel: arch/i386/boot/bzImage is ready

            Enfin, j'ai lancé sans succès make modules :
            debian:/usr/src/linux# make modules
            CHK include/linux/version.h
            make[1]: « arch/i386/kernel/asm-offsets.s » est à jour.
            CC [M] drivers/usb/atm/cxacru.o
            drivers/usb/atm/cxacru.c:39:25: linux/mutex.h : Aucun fichier ou répertoire de ce type
            Dans le fichier inclus à partir de drivers/usb/atm/cxacru.c:41:
            drivers/usb/atm/usbatm.h:37:25: linux/mutex.h : Aucun fichier ou répertoire de ce type
            In file included from drivers/usb/atm/cxacru.c:41:
            drivers/usb/atm/usbatm.h:175: error: field `serialize' has incomplete type
            drivers/usb/atm/cxacru.c:164: error: field `cm_serialize' has incomplete type
            drivers/usb/atm/cxacru.c: Dans la fonction « cxacru_cm »:
            drivers/usb/atm/cxacru.c:223: attention : implicit declaration of function `mutex_lock'
            drivers/usb/atm/cxacru.c:292: attention : implicit declaration of function `mutex_unlock'
            drivers/usb/atm/cxacru.c: Dans la fonction « cxacru_bind »:
            drivers/usb/atm/cxacru.c:677: attention : implicit declaration of function `kzalloc'
            drivers/usb/atm/cxacru.c:677: attention : affectation transforme un entier en pointeur sans transtypage
            drivers/usb/atm/cxacru.c:721: attention : implicit declaration of function `mutex_init'
            make[3]: *** [drivers/usb/atm/cxacru.o] Erreur 1
            make[2]: *** [drivers/usb/atm] Erreur 2
            make[1]: *** [drivers/usb] Erreur 2
            make: *** [drivers] Erreur 2

            Je ne suis pas sûr de bien procédé lors de la compilation du noyau. Quand tu me dis "apres ton make menuconfig et la configuration de ton noyau" qu'entends-tu par "configuration de ton noyau"? Je pensais que le make menuconfig correspondait la configuration du noayu. Est-ce que tu as dans ton arborescence un fichier "linux/mutex.h".

            Je vais réessayer en lançant cette commande :
            debian:/usr/src/linux# make dep clean bzImage modules modules_instal

            Merci
            • [^] # Re: a mon avis

              Posté par  . Évalué à 2.

              reprenons pour avoir quelquechose de propre (je pense que tu t'es trompée a cause du lien /usr/src/linux mais bon):

              -tu n'es pas root
              -tu telecharge un linux-2.6.10.tar.gz
              -tu le decompresse dans /home/toi/
              -tu telecharge les modules sur le cvs que tu souhaite comme tu fais.
              -tu les places dans /home/toi/linux-2.6.10/etc...
              -tu fais make menuconfig tu selectionne les options comme la doc te le preconise
              -tu fais make bzImage (visiblement make dep n'existe plus avec un 2.6)
              -tu fais un make modules

              si tous cela se passe bien, y a pus ka installer bzImage et les modules (en root) si cela coince essaye avec un noyau plus recents, dans ton /home/toi et pas en root.

Suivre le flux des commentaires

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