OpenWRT make失败,因为内核以交互方式请求配置选项

时间:2015-06-17 21:34:17

标签: linux-kernel openwrt

我在chaos calmer repo上,我有一个我需要使用的自定义内核配置。

内核配置文件位于

/opt/OpenWRT/target/linux/x86/config-3.18

我尝试过运行make kernel_oldconfig,但这并没有解决问题。

我尝试过运行make kernel_menuconfig,但也无法解决问题。

运行make时出现错误消息:

$ make
make[1] world
make[2] target/compile
make[3] -C target/linux compile
make -r world: build failed. Please re-run make with -j1 V=s to see what's going on
/opt/OpenWRT/include/toplevel.mk:181: recipe for target 'world' failed
make: *** [world] Error 1

解决此问题的唯一方法是使用make V=s -j1并浏览菜单互动。我不得不依赖一个处理器来编译整个buildroot。

仅当我使用自定义内核配置时才会出现这种情况,默认内核与make运行良好。

我复制(覆盖了)config-3.18目录中的target/linux/x86/文件。

内核适用于特定的32位x86架构(非通用)。

这是详细的输出:

net/sched/Kconfig:43: warning: menuconfig statement without prompt
*
* Restart config...
*
*
* Kernel hacking
*
Magic SysRq key (MAGIC_SYSRQ) [Y/n/?] y
  Enable magic SysRq key functions by default (MAGIC_SYSRQ_DEFAULT_ENABLE) [0x1] 0x1
Kernel debugging (DEBUG_KERNEL) [Y/?] y
Debug shared IRQ handlers (DEBUG_SHIRQ) [N/y/?] n
Panic on Oops (PANIC_ON_OOPS) [N/y/?] n
panic timeout (PANIC_TIMEOUT) [0] 0
Collect scheduler debugging info (SCHED_DEBUG) [N/y/?] n
Collect scheduler statistics (SCHEDSTATS) [N/y/?] n
Detect stack corruption on calls to schedule() (SCHED_STACK_END_CHECK) [N/y/?] n
Collect kernel timers statistics (TIMER_STATS) [N/y/?] n
Stack backtrace support (STACKTRACE) [Y/?] y
kobject debugging (DEBUG_KOBJECT) [N/y/?] n
Verbose BUG() reporting (adds 70K) (DEBUG_BUGVERBOSE) [N/y/?] n
Debug linked list manipulation (DEBUG_LIST) [N/y/?] n
Debug priority linked list manipulation (DEBUG_PI_LIST) [N/y/?] n
Debug SG table operations (DEBUG_SG) [N/y/?] n
Debug notifier call chains (DEBUG_NOTIFIERS) [N/y/?] n
Debug credential management (DEBUG_CREDENTIALS) [N/y/?] n
Force extended block device numbers and spread them (DEBUG_BLOCK_EXT_DEVT) [N/y/?] n
Notifier error injection (NOTIFIER_ERROR_INJECTION) [N/m/y/?] n
Fault-injection framework (FAULT_INJECTION) [N/y/?] n
Latency measuring infrastructure (LATENCYTOP) [N/y/?] n
Strict user copy size checks (DEBUG_STRICT_USER_COPY_CHECKS) [N/y/?] n
Remote debugging over FireWire early on boot (PROVIDE_OHCI1394_DMA_INIT) [N/y/?] n
Enable debugging of DMA-API usage (DMA_API_DEBUG) [N/y/?] n
Test module loading with 'hello world' module (TEST_LKM) [N/m/?] n
Test user/kernel boundary protections (TEST_USER_COPY) [N/m/?] n
Test BPF filter functionality (TEST_BPF) [N/m/?] n
Test firmware loading via userspace interface (TEST_FIRMWARE) [N/m/y/?] n
udelay test driver (TEST_UDELAY) [N/m/y/?] n
Filter access to /dev/mem (STRICT_DEVMEM) [Y/n/?] y
Enable verbose x86 bootup info messages (X86_VERBOSE_BOOTUP) [Y/n/?] y
Early printk (EARLY_PRINTK) [Y/n/?] y
  Early printk via EHCI debug port (EARLY_PRINTK_DBGP) [N/y/?] n
Export kernel pagetable layout to userspace via debugfs (X86_PTDUMP) [N/y/?] n
Write protect kernel read-only data structures (DEBUG_RODATA) [N/y/?] n
Set loadable kernel module data as NX and text as RO (DEBUG_SET_MODULE_RONX) [N/y/?] n
Testcase for the NX non-executable stack feature (DEBUG_NX_TEST) [N/m/?] n
Enable doublefault exception handler (DOUBLEFAULT) [Y/n/?] y
Set upper limit of TLB entries to flush one-by-one (DEBUG_TLBFLUSH) [N/y/?] n
Enable IOMMU stress-test mode (IOMMU_STRESS) [N/y/?] n
x86 instruction decoder selftest (X86_DECODER_SELFTEST) [N/y/?] (NEW) 

有什么想法吗?

编辑:写这个问题时解决了......

2 个答案:

答案 0 :(得分:1)

我以为我之前已经将CONFIG_...行写入内核,但显然它们没有被保存,被覆盖或者其他一些问题。

我通过将其插入config-3.18文件的最后一行来解决错误:

CONFIG_X86_DECODER_SELFTEST=n

它可能没什么区别,但我也运行make kernel_menuconfig,加载然后保存配置文件,以防运行menuconfig做任何自动化。

答案 1 :(得分:0)

还需要关注一个内核配置文件:

/opt/OpenWRT/target/linux/generic/config-3.18

适用于所有平台。