logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 24-06-2010 10:19:41

gargamel79
Membre
Lieu : Baugé en Anjou
Distrib. : Debian bullseye
Noyau : 5.10.0-10-amd64
(G)UI : xfce
Inscription : 15-11-2009

cible manquante ? [résolu]

Bonjour,
Je suis sur une staion lenny : kernel = 2.6.26-2-686 dont j'ai téléchargé et dé-archivé les sources.

En lançant la commande :  make oldconfig && make prepare

Tout semble se dérouler normalement jusqu'à :
# configuration written to .config
#
scripts/kconfig/conf -s arch/x86/Kconfig
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  CHK     include/linux/utsrelease.h
  UPD     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-x86
make[1]: *** Pas de règle pour fabriquer la cible « missing-syscalls ». Arrêt.
make: *** [prepare0] Erreur 2  sad

Merci de me faire part de suggestions.

Dernière modification par gargamel79 (02-07-2010 18:53:03)

Hors ligne

#2 24-06-2010 16:58:19

Asmodée
Membre
Lieu : /dev/null
Distrib. : Squeeze
Inscription : 16-05-2010

Re : cible manquante ? [résolu]

Bonjour, es-tu allé voir là : http://debian-facile.org/doc:systeme:no … er&s=noyau

(mouarf ! j'ai coiffé smolski au poteau ! wink)

Juste une chose : un petit make menuconfig ou make xconfig pour vérifier que tout est OK n'est pas une mauvaise chose... Mais ce n'est pas ce qui a provoqué l'erreur ici.

En ce qui concerne le make prepare, j'espère que tu as bien lu la page de manuel à son propos. Dans l'immense majorité des compilations de Linux, cette commande n'est ni nécessaire, ni recommandée.

Dernière modification par Asmodée (24-06-2010 17:03:04)

Hors ligne

#3 25-06-2010 09:58:39

gargamel79
Membre
Lieu : Baugé en Anjou
Distrib. : Debian bullseye
Noyau : 5.10.0-10-amd64
(G)UI : xfce
Inscription : 15-11-2009

Re : cible manquante ? [résolu]

Merci pour ta réponse, en fait j'ai lancé cette commande sur réception de :

make /lib/modules/2.6.26-2-686/build SUBDIRS=/home/alain/PERSO/ES_LINUX/mod-noyau modules
make[1]: entrant dans le répertoire « /home/src-kernel/linux-source-2.6.26 »
test -e include/linux/autoconf.h -a -e include/config/auto.conf || (            \
        echo;                                                           \
        echo "  ERROR: Kernel configuration is invalid.";               \
        echo "         include/linux/autoconf.h or include/config/auto.conf are missing.";      \
        echo "         Run 'make oldconfig && make prepare' on kernel src to fix it.";  \
        echo;                                                           \
        /bin/false)

  ERROR: Kernel configuration is invalid.
         include/linux/autoconf.h or include/config/auto.conf are missing.
         Run 'make oldconfig && make prepare' on kernel src to fix it.

mkdir -p /home/alain/PERSO/ES_LINUX/mod-noyau/.tmp_versions ; rm -f /home/alain/PERSO/ES_LINUX/mod-noyau/.tmp_versions/*

  WARNING: Symbol version dump /home/src-kernel/linux-source-2.6.26/Module.symvers
           is missing; modules will have no dependencies and modversions.

C'est sur ce "Run 'make oldconfig && make prepare' on kernel src to fix it" que j'ai tenté ma chance...:rolleyes:

Mon objectif est de compiler (à partir d'un source C) et d'installer un module. Je travaille à partir d'un article paru dans Linux Magazine No 66 (Pierre Ficheux) qui n'est pas spécifique Debian.
Une alternative, serait peut-être d'utiliser le paquet "build-essential" .

Le titre de ma demande n'est pas juste puisque ce n'est pas la cible qui manque mais la règle pour la fabriquer !!!

Je ne trouve pas de page manuel relative à "prepare" (make prepare ?):(

- essai de   make menuconfig -> OK après install. du paquet  libcurses5-dev
- essai de  make xconfig -> OK aprè install. du paquet libqt3-headers

Merci de m'indiquer où trouver la doc. relative à make prepare.

Hors ligne

#4 26-06-2010 22:38:45

anonyme
Invité

Re : cible manquante ? [résolu]

Bonjour,

Je ne trouve pas de page manuel relative à "prepare" (make prepare ?)


man make? Sinon il existe un paquet make-doc. wink

@+

Dernière modification par anonyme (26-06-2010 22:39:03)

#5 27-06-2010 13:11:15

Asmodée
Membre
Lieu : /dev/null
Distrib. : Squeeze
Inscription : 16-05-2010

Re : cible manquante ? [résolu]

Salut,

De deux choses l'une, dans le lien wiki que j'ai donné, il y a toutes les étapes pour compiler son noyau sous Debian. C'est la méthode conseillée et elle permet autant de personalisation que la méthode "standard". Sauf que tu utilises les sources des noyaux Debian et pas les sources de Linux originales. Cette méthode fonctionne parfaitement : j'ai eu à compiler un noyau pour une très vieille machine afin, dans ce cas précis, de réduire le temps de démarrage. make prepare n'est pas à utiliser pour une compilation "normale" d'un noyau. Ton problème est un problème de fichier de configuration : il est possible que le make oldconfig n'ait pas très bien fonctionné. Quoiqu'il en soit, suis le wiki !

La deuxième chose : compiler et installer un module ne nécessite AUCUNEMENT de recompiler le noyau !!!
C'est TRÈS PRÉCISÉMENT l'intéret principal de la notion de module.

Et si ton tuto n'est pas spécifique à Debian, c'est qu'il a peut-etre été produit pour une distribution qui ne contenait pas ce module. Qui te dis qu'il n'est pas présent dans Debian ?

Donc pour éviter de te/nous faire perdre du temps, il serait peut-etre judicieux de nous dire ce que tu veux faire et pas comment tu comptes le faire. (je n'ai pas accès au magazine cité, en tout cas pour l'instant)

Hors ligne

#6 02-07-2010 18:49:46

gargamel79
Membre
Lieu : Baugé en Anjou
Distrib. : Debian bullseye
Noyau : 5.10.0-10-amd64
(G)UI : xfce
Inscription : 15-11-2009

Re : cible manquante ? [résolu]

Je passe le problème à 'résolu' puisque l'objectif a été atteint. Les lignes qui suivent indiquent "comment" mais pas toujours "pourquoi" sur le processus suivi. Elles peuvent, peut-être, aider à résoudre un problème similaire.:)
1) Rappel de l'objectif : pour l'espace mémoire noyau, compiler (à partir d'un source .c) un module et l'installer dans l'arborescence du noyau courant.
2) la compilation pour obtenir un module (.ko) nécessite de disposer des sources du noyau. Dans le cas de  Debian/lenny, il s'agit de la version 2.6.26-2-686 (paquet linux-source-2.6.26). Au départ je n'avais pas compris qu'il y a "sources" et "sources". L'installation du paquet permet de récupérer les sources "brutes", si on tente une compilation, celle-ci échoue avec notamment:
    erreur: include/linux/autoconf.h : Aucun fichier ou répertoire de ce type mad
3) La génération d'un nouveau noyau, clone du noyau courant (par copie du .conf - cf le tutoriel utilisant make-kpkg) permet la mise à jour des sources de ce nouveau noyau, avec notamment la présence de:
  include/linux/autoconf.h, include/config/auto.conf, include/linux/version.h
  La compilation génère un .ko (avec cependant un message d'erreur, non bloquant, voir la discussion "bizarre bizarre" et sa conclusion)
  La commande insmod nomModule.ko permet de le charger (de manière temporaire),
  la commande lsmod de vérifier sa présence,
  la commande  rmmod nomModule de le supprimer wink
4) Par invocation de la cible module_install du Make, il est possible d'installer le module dans l'arborescence du "noyau" ie /lib/modules/<reférence noyau>/extra/nomModule.ko
  Mais la commande :  # modprobe nomModule echoue
                     -> FATAL: Module nomModule not found.:o
En effet <reférence noyau> est celle du nouveau noyau, pas du noyau en cours d'utilisation.
  La simple copie dans /lib/modules/refNoyauCourant/extra/nomModule.ko ne règle pas le problème.

5) Il est nécessaire d'installer le nouveau noyau par
    # dpkg -i linux-image-2.6.26-<reférenceNouveau>....deb
   Après reboot et choix du nouveau noyau, la commande
    # modprobe nomModule est OK . On peut le vérifier par lsmod cool
6) Pour une prise en compte automatique au reboot (cas nouveau noyau), j'ai modifié le 
    fichier /etc/nomModule en ajoutant une ligne nomModule
7) le Makefile "local" pour invoquer les cibles (modules et modules_install) du Makefile
    de  la  racine des sources du noyau peut être trouvé à:
     http://pficheux.free.fr/articles/lmf/ke … emples.tgz

Hors ligne

Pied de page des forums