le "manque-appels' erreur lors de la compilation du noyau
Ce sont les étapes que je suis en train de faire pour compiler la source de linux sur ma machine :
1. Copiez le fichier de configuration de /boot /usr/src/kernels/2.6.29.4-167.fc11.i586/répertoire
2. make oldconfig
3. faire
Étape 3 échoue avec l'erreur suivante :
make[1]: *** Pas de règle pour faire de cible "manque-appels'. Stop.
De la compilation sur un x86 boîte.
Toutes les suggestions ?
Sentez-vous svp libre pour fermer cette question si elle n'a pas sa place ici.
Vous devez vous connecter pour publier un commentaire.
Archaïque que cela puisse paraître, il semble qu'actuellement afin d'obtenir le code source du noyau sur un système, vous devez sélectionner manuellement la source que vous souhaitez. On suppose que les gens de ne pas construire de noyaux aussi souvent qu'ils ont utilisé et bien sûr, vous pouvez développer un noyau qui ne correspond pas à la version que vous exécutez..
Ainsi, par exemple, j'ai voulu installer VBox sur mon CentOS 6.2 boîte et alors que la plupart des modules du noyau peut être compilé sans sources, cette mise à jour a échoué.
J'ai donc trouvé cette page du wiki:
http://wiki.centos.org/HowTos/I_need_the_Kernel_Source
Il n'a pas de liste 6.2 et les conventions de nommage ont changé sur le dernier nom de répertoire afin d'obtenir l'6.2 source du noyau, vous allez http://vault.centos.org/6.2/updates/Source/ et sélectionnez la version que vous voulez. Si vous voulez la source pour une version différente aller à http://vault.centos.org/ et de naviguer à partir de là.
Les docs vous déconseillons de faire un rpm-build sur les sources du noyau.
Faire un nouveau fichier de configuration. Peut-être que l'ancien ne fonctionne pas?
Je n'ai pas été en mesure de répondre à pourquoi cette erreur se produit :
Étape 3 échoue avec l'erreur suivante : make[1]: *** Pas de règle pour faire de cible "manque-appels'. Stop.
Mais j'ai été en mesure de compiler la version classique amende, sans l'erreur ci-dessus.
J'ai posé la même question sur serverfault aussi bien, qui a une explication plus détaillée des mesures prises : https://serverfault.com/questions/61354/missing-syscalls-error-during-kernel-compilation
depuis le noyau 3.x.x ce message apparaît si vous essayez de construire des modules externes ayant une seule Makefile préparé.
Au lieu de cela, selon ce manuel,
diviser en Kbuild (où tous les fichiers source sont répertoriés, par exemple):
obj-m := module_source.c
et simple Makefile (ayant par défaut de rendre la directive, par exemple):
default:
$(MAKE) -C $(KDIR) M=$$PWD
permettra de résoudre le problème.
juste au cas où, le module extérieur de construire la directive serait suivantes:
make -C <kernel source path> -M=<module source folder>
exemple:
make -C . -M=extra/