Ошибка сборки OpenWRT, потому что ядро ​​запрашивает параметры конфигурации в интерактивном режиме.

Я нахожусь в репозитории chaos calmer, и у меня есть пользовательская конфигурация ядра, которую мне нужно использовать.

Файл конфигурации ядра находится по адресу

/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) 

Любые идеи?

РЕДАКТИРОВАТЬ: Решено при написании этого вопроса....


person NuclearPeon    schedule 17.06.2015    source источник


Ответы (2)


Я думал, что ранее записал строки CONFIG_... в ядро, но, видимо, они не были сохранены, перезаписаны или возникла какая-то другая проблема.

Я решил ошибку, вставив это в последнюю строку файла config-3.18:

CONFIG_X86_DECODER_SELFTEST=n

Это может не иметь значения, но я также запустил make kernel_menuconfig, загрузил и затем сохранил файл конфигурации, на случай, если запуск menuconfig приведет к какой-либо автоматической магии.

person NuclearPeon    schedule 17.06.2015

Есть еще один файл конфигурации ядра, о котором вам нужно позаботиться:

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

Это для всех платформ.

person Nam Pham    schedule 22.06.2016