【发布时间】:2017-11-17 18:46:22
【问题描述】:
我目前正在尝试重建一个 linux 内核,并且正在尝试一些困难。
我已经使用 make menuconfig 修改了 .config。
...
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
...
然后我尝试运行 make mrproper。它运行良好,并从我的构建文件夹中删除了我的 .config 文件。毫无疑问,我无法构建,因为缺少 .config 文件。
我做了一个 make defconfig,然后是一个 make -j 8,只是为了尝试使用一些基本的配置文件进行构建。
...
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
如果生成 .config 会使源文件夹不干净,我应该如何构建?
【问题讨论】:
-
我怀疑这可能是由于某些
env设置。 在make menuconfig期间,为什么它进入路径/home/doe/build/linux而不是/home/doe/workspace/linux?。还有一件事,如果您尚未导出,则始终建议您还必须指定架构名称(如make ARCH=x86_64 menuconfig)。 -
export ARCH=<ARCH>; git clean -xfd && make <WHATEVER>_defconfig && make -j8(<WHATEVER>是您实际的 defcofnig 的名称,<ARCH>是正在使用的架构,您可能还需要先export CROSS_COMPILE=...。
标签: linux linux-kernel