OpenWrt Forum Archive

Topic: Kernel compile error - LKM not enabled

The content of this topic has been archived on 19 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Then trying to compile trunk (33725) version of x86 openwrt I'm getting error that kernel configuration has modules disabled even then kernel_menuconfig shows "Enable loadable module support" as checked.

So how do I enable kernel module support?


. /extra/openwrt/include/shell.sh; grep '=[ym]' /extra/openwrt/build_dir/linux-x86_generic/linux-3.3.8/.config | LC_ALL=C sort | md5s > /extra/openwrt/build_dir/linux-x86_generic/linux-3.3.8/.vermagic
touch /extra/openwrt/build_dir/linux-x86_generic/linux-3.3.8/.configured
rm -f /extra/openwrt/build_dir/linux-x86_generic/linux-3.3.8/vmlinux /extra/openwrt/build_dir/linux-x86_generic/linux-3.3.8/System.map
make -C /extra/openwrt/build_dir/linux-x86_generic/linux-3.3.8 HOSTCFLAGS="-O2 -I/extra/openwrt/staging_dir/host/include -Wall -Wmissing-prototypes -Wstrict-prototypes" CROSS_COMPILE="i486-openwrt-linux-uclibc-" ARCH="x86" KBUILD_HAVE_NLS=no CONFIG_SHELL="/bin/bash" V='' CC="ccache_cc" modules
make[5]: Entering directory `/extra/openwrt/build_dir/linux-x86_generic/linux-3.3.8'
  HOSTCC  scripts/kconfig/conf.o
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/zconf.lex.c
  SHIPPED scripts/kconfig/zconf.hash.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf --silentoldconfig Kconfig
*
* Restart config...
*
*
* General setup
*
Prompt for development and/or incomplete code/drivers (EXPERIMENTAL) [Y/n/?] y
Cross-compiler tool prefix (CROSS_COMPILE) [] 
Local version - append to kernel release (LOCALVERSION) [] 
Automatically append version information to the version string (LOCALVERSION_AUTO) [N/y/?] n
Kernel compression mode
  1. Gzip (KERNEL_GZIP)
  2. Bzip2 (KERNEL_BZIP2)
  3. LZMA (KERNEL_LZMA)
> 4. XZ (KERNEL_XZ)
  5. LZO (KERNEL_LZO)
choice[1-5?]: 4
Default hostname (DEFAULT_HOSTNAME) [(none)] (none)
Support for paging of anonymous memory (swap) (SWAP) [Y/n/?] y
System V IPC (SYSVIPC) [Y/n/?] y
POSIX Message Queues (POSIX_MQUEUE) [N/y/?] n
BSD Process Accounting (BSD_PROCESS_ACCT) [N/y/?] n
open by fhandle syscalls (FHANDLE) [N/y/?] n
Export task/process statistics through netlink (EXPERIMENTAL) (TASKSTATS) [N/y/?] n
Auditing support (AUDIT) [N/y/?] n
Kernel .config support (IKCONFIG) [N/m/y/?] n
Kernel log buffer size (16 => 64KB, 17 => 128KB) (LOG_BUF_SHIFT) [17] 17
Checkpoint/restore support (CHECKPOINT_RESTORE) [N/y/?] n
Automatic process group scheduling (SCHED_AUTOGROUP) [N/y/?] n
Enable deprecated sysfs features to support old userspace tools (SYSFS_DEPRECATED) [N/y/?] n
Kernel->user space relay support (formerly relayfs) (RELAY) [N/y/?] n
Crash logging (CRASHLOG) [Y/n] y
Initial RAM filesystem and RAM disk (initramfs/initrd) support (BLK_DEV_INITRD) [Y/n/?] y
  Initramfs source file(s) (INITRAMFS_SOURCE) [] 
  Support initial ramdisks compressed using gzip (RD_GZIP) [Y/n/?] y
  Support initial ramdisks compressed using bzip2 (RD_BZIP2) [Y/n/?] y
  Support initial ramdisks compressed using LZMA (RD_LZMA) [Y/n/?] y
  Support initial ramdisks compressed using XZ (RD_XZ) [N/y/?] n
  Support initial ramdisks compressed using LZO (RD_LZO) [N/y/?] n
Optimize for size (CC_OPTIMIZE_FOR_SIZE) [N/y/?] n
Enable full-sized data structures for core (BASE_FULL) [Y/n/?] y
Enable futex support (FUTEX) [Y/n/?] y
Enable eventpoll support (EPOLL) [Y/n/?] y
Enable signalfd() system call (SIGNALFD) [Y/n/?] y
Enable timerfd() system call (TIMERFD) [Y/n/?] y
Enable eventfd() system call (EVENTFD) [Y/n/?] y
Use full shmem filesystem (SHMEM) [Y/?] y
Enable AIO support (AIO) [Y/n/?] y
Embedded system (EMBEDDED) [Y/n/?] y
Enable VM event counters for /proc/vmstat (VM_EVENT_COUNTERS) [Y/n/?] y
Enable PCI quirk workarounds (PCI_QUIRKS) [Y/n/?] y
Enable SLUB debugging support (SLUB_DEBUG) [Y/n/?] y
Disable heap randomization (COMPAT_BRK) [N/y/?] n
Choose SLAB allocator
  1. SLAB (SLAB)
> 2. SLUB (Unqueued Allocator) (SLUB)
  3. SLOB (Simple Allocator) (SLOB)
choice[1-3?]: 2
Profiling support (PROFILING) [Y/n/?] y
OProfile system profiling (OPROFILE) [M/n/y/?] m
  OProfile multiplexing support (EXPERIMENTAL) (OPROFILE_EVENT_MULTIPLEX) [N/y/?] (NEW) aborted!

Console input/output is redirected. Run 'make oldconfig' to update configuration.

make[7]: *** [silentoldconfig] Error 1
make[6]: *** [silentoldconfig] Error 2

The present kernel configuration has modules disabled.
Type 'make config' and enable loadable module support.
Then build a kernel with module support enabled.

make[5]: *** [modules] Error 1
make[5]: Leaving directory `/extra/openwrt/build_dir/linux-x86_generic/linux-3.3.8'
make[4]: *** [/extra/openwrt/build_dir/linux-x86_generic/linux-3.3.8/.modules] Error 2
make[4]: Leaving directory `/extra/openwrt/target/linux/x86'
make[3]: *** [compile] Error 2
make[3]: Leaving directory `/extra/openwrt/target/linux'

Kernel compile log
Kernel .config

Console input/output is redirected. Run 'make oldconfig' to update configuration.

This is the problem, you old .config doesn't has enough lines like
  OProfile multiplexing support (EXPERIMENTAL) (OPROFILE_EVENT_MULTIPLEX) [N/y/?] (NEW) aborted!
which is newly added options...

Simple way is to run "make oldconfig" interactively to update the .config file.

The discussion might have continued from here.