2017-04-13 1 views
0

Ich versuche gerade, einen Linux-Kernel neu zu erstellen, und ich experimentiere einige Schwierigkeiten.Das Erstellen der Linux-Kernel-.config-Datei macht den Quellordner unrein

Ich habe die .config mit make menuconfig geändert.

... 
make[1]: Entering directory '/home/doe/build/linux' 
    CHK  include/config/kernel.release 
    GEN  ./Makefile 
    CHK  include/generated/uapi/linux/version.h 
    CHK  include/generated/utsrelease.h 
    Using /home/doe/workspace/linux as source for kernel 
    /home/doe/workspace/linux is not clean, please run 'make mrproper' 
    in the '/home/doe/workspace/linux' directory. 
/home/doe/workspace/linux/Makefile:1027: recipe for target 'prepare3' failed 
make[1]: *** [prepare3] Error 1 
... 

Dann habe ich versucht, machen mrproper. Es funktioniert gut und löscht meine .config-Datei aus meinem Build-Ordner. Ohne Überraschung kann ich nicht bauen, weil eine .config Datei fehlt.

Ich habe eine make defconfig gefolgt von einer make -j 8, nur um zu versuchen, mit einigen grundlegenden Konfigurationsdatei zu bauen.

... 
    HOSTCC scripts/mod/file2alias.o 
    HOSTLD scripts/mod/modpost 
    HOSTCC arch/x86/tools/relocs_32.o 
    HOSTCC arch/x86/tools/relocs_64.o 
    HOSTCC arch/x86/tools/relocs_common.o 
    Using /home/doe/workspace/linux as source for kernel 
    /home/doe/workspace/linux is not clean, please run 'make mrproper' 
    in the '/home/doe/workspace/linux' directory. 
/home/doe/workspace/linux/Makefile:1027: recipe for target 'prepare3' failed 
make[1]: *** [prepare3] Error 1 
make[1]: *** Waiting for unfinished jobs.... 
    HOSTLD arch/x86/tools/relocs 
make[1]: *** wait: No child processes. Stop. 
Makefile:152: recipe for target 'sub-make' failed 
make: *** [sub-make] Error 2 

Wie soll ich bauen, wenn das Generieren einer .config den Quellordner unrein macht?

+0

suchen Ich vermute, dass es aufgrund einiger 'env' Setup sein kann. * Während der 'make menuconfig' geht es in den Pfad'/home/doe/build/linux' anstelle von '/ home/doe/workspace/linux'? *. Es wird immer empfohlen, dass Sie auch den Namen des Archs angeben (wie 'make ARCH = x86_64 menuconfig'), wenn Sie nicht exportiert haben. –

+1

'export ARCH = ; git clean -xfd && make _defconfig && make -j8' ('' ist ein Name Ihrer tatsächlichen defcofnig, und '' ist die Architektur in Verwendung, müssen Sie möglicherweise auch 'CROSS_COMPILE = ...' zuerst exportieren. – 0andriy

Antwort

0

Sie sollten überprüfen, ob das Verzeichnis "include/config" in Ihrer Kernel-Quelle existiert.

Das Ziel prepare3 überprüft die Datei '.config' und das Verzeichnis 'include/config'. Sie können dies finden, indem Sie "prepare3" im Makefile

Verwandte Themen