如何编译linux内核子目录?

如何编译linux内核子目录?,linux,makefile,build,kernel,Linux,Makefile,Build,Kernel,我想像这样编译linux内核子目录: make M=drivers/staging/comedi/ 不幸的是,当我执行此操作时,会出现以下错误: ERROR: Kernel configuration is invalid. include/generated/autoconf.h or include/config/auto.conf are missing. Run 'make oldconfig && make prepare' o

我想像这样编译linux内核子目录:

make M=drivers/staging/comedi/
不幸的是,当我执行此操作时,会出现以下错误:

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

Makefile:648: include/config/auto.conf: Nie ma takiego pliku ani katalogu
make: *** [Makefile:719: include/config/auto.conf] Błąd 1
可通过以下命令进行修复:

make oldconfig
执行后,我必须按enter键2分钟以选择所有地方的默认选项,然后我仍然会出现以下错误:

  AR      drivers/staging/comedi//built-in.a
WARNING: Symbol version dump "Module.symvers" is missing.
         Modules may not have dependencies or modversions.
  MODPOST drivers/staging/comedi//Module.symvers
/bin/sh: scripts/mod/modpost: Nie ma takiego pliku ani katalogu
make[1]: *** [scripts/Makefile.modpost:111: drivers/staging/comedi//Module.symvers] Błąd 127
make: *** [Makefile:1701: modules] Błąd 2

我在视频中看到过很多次,人们只是用一个
make M=somedir
命令构建一个子目录。为什么它对我不起作用?

在构建模块之前,你需要构建内核本身(使用
make
),而且,我可以发誓,选择所有默认选项(
makedefaultconfig
?)都有一个目标,它将消除“按[ing]enter键2分钟”的功能。