2009-09-01 11 views
1

Voici les étapes que je suis en train de faire pour compiler la source Linux sur ma machine:
1. Copiez le fichier de configuration depuis/boot vers /usr/src/kernels/2.6.29.4 -167.fc11.i586/répertoire
2. make oldconfig
3. faire
erreur `missing-syscalls 'lors de la compilation du noyau

Étape 3 échoue avec l'erreur suivante: make [1]: *** Aucune règle pour faire la cible `manquantes syscalls '. Arrêtez.

Compilation sur une boîte x86. Des suggestions? N'hésitez pas à clôturer cette question si elle n'appartient pas ici.

Répondre

0

Je n'ai pas été en mesure de répondre pourquoi cette erreur se produit:
L'étape 3 échoue avec l'erreur suivante: make [1]: *** Aucune règle pour rendre cible `missing-syscalls '. Arrêtez.

Mais j'ai été capable de compiler la version vanille très bien, 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

0

Créez un nouveau fichier de configuration. Peut-être que l'ancien ne fonctionne pas?

+0

Essayé aussi. Voir la même erreur avec le nouveau fichier de configuration. – vivekian2

2

aussi archaïque que cela puisse paraître, il semble qu'à l'heure actuelle afin d'obtenir les sources du noyau sur un système, vous devez manuellement sélectionnez la source que vous voulez. On suppose que les gens ne construisent plus les noyaux aussi souvent qu'auparavant et bien sûr vous voudrez peut-être développer un noyau qui ne correspond pas à la version que vous utilisez.

Donc par exemple je voulais installer VBox sur ma boîte de CentOS 6.2 et tandis que la plupart des modules de noyau peuvent être compilés sans sources complètes cette mise à jour a échoué.

Je trouve cette page wiki: http://wiki.centos.org/HowTos/I_need_the_Kernel_Source

Il ne liste pas 6.2 et les conventions d'appellation ont changé le nom du répertoire final afin d'obtenir le 6.2 source du noyau que vous allez à http://vault.centos.org/6.2/updates/Source/ et sélectionnez la version vouloir. Si vous voulez une source pour une version différente, allez à http://vault.centos.org/ et naviguez à partir de là.

Les docs déconseillent d'effectuer une compilation rpm sur les sources du noyau.

0

depuis le noyau 3.x.x Ce message s'affiche si vous tentez de créer des modules externes n'ayant qu'un seul Makefile préparé.

Au lieu de cela, selon this manual,

division en kbuild (où tous les fichiers source sont répertoriés, par exemple):

obj-m := module_source.c

et simple Makefile (ayant seulement faire par défaut directive, exemple):

default: $(MAKE) -C $(KDIR) M=$$PWD

résoudra le problème.

juste au cas où, la directive de construction du module externe serait suivant:

make -C <kernel source path> -M=<module source folder>

exemple: make -C . -M=extra/

Questions connexes