Compiling kernel asks lots of questions

Normally when i compiled kernel, it started without asking any question. After the steps below (even though I chose the default config), it asks a lot questions.

$ git clone
$ git checkout 5.4.106-ti-r40
$ make ARCH=arm distclean​
$ make ARCH=arm bb.org_defconfig​
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage dtbs LOADADDR=0x80008000 -j$(nproc)

* Restart config...



* Kernel Features


Symmetric Multi-Processing (SMP) [Y/n/?] y

  Allow booting SMP kernel on uniprocessor systems (SMP_ON_UP) [Y/n/?] y

  Support cpu topology definition (ARM_CPU_TOPOLOGY) [Y/n/?] y

    Multi-core scheduler support (SCHED_MC) [N/y/?] n

    SMT scheduler support (SCHED_SMT) [N/y/?] n

Architected timer support (HAVE_ARM_ARCH_TIMER) [Y/?] y

Multi-Cluster Power Management (MCPM) [Y/n/?] y

big.LITTLE support (Experimental) (BIG_LITTLE) [N/y/?] n

Memory split

> 1. 3G/1G user/kernel split (VMSPLIT_3G)

  2. 3G/1G user/kernel split (for full 1G low memory) (VMSPLIT_3G_OPT)

  3. 2G/2G user/kernel split (VMSPLIT_2G)

  4. 1G/3G user/kernel split (VMSPLIT_1G)

choice[1-4?]: 1

Maximum number of CPUs (2-32) (NR_CPUS) [2] 2

Support for hot-pluggable CPUs (HOTPLUG_CPU) [Y/?] y

Support for the ARM Power State Coordination Interface (PSCI) (ARM_PSCI) [Y/n/?] y

Timer frequency

  1. 100 Hz (HZ_100)

  2. 200 Hz (HZ_200)

> 3. 250 Hz (HZ_250)

  4. 300 Hz (HZ_300)

  5. 500 Hz (HZ_500)

  6. 1000 Hz (HZ_1000)

choice[1-6?]: 3

Compile the kernel in Thumb-2 mode (THUMB2_KERNEL) [N/y/?] n

Runtime patch udiv/sdiv instructions into __aeabi_{u}idiv() (ARM_PATCH_IDIV) [Y/n/?] y

Use the ARM EABI to compile the kernel (AEABI) [Y/?] y

  Allow old ABI binaries to run with this kernel (EXPERIMENTAL) (OABI_COMPAT) [N/y/?] n

High Memory Support (HIGHMEM) [Y/?] y

  Allocate 2nd-level pagetables from highmem (HIGHPTE) [Y/n/?] y

Enable use of CPU domains to implement privileged no-access (CPU_SW_DOMAIN_PAN) [Y/n/?] y

Use PLTs to allow module memory to spill over into vmalloc area (ARM_MODULE_PLTS) [Y/n/?] y

Maximum zone order (FORCE_MAX_ZONEORDER) [12] 12

Use kernel mem{cpy,set}() for {copy_to,clear}_user() (UACCESS_WITH_MEMCPY) [N/y/?] n
Enable seccomp to safely compute untrusted bytecode (SECCOMP) [Y/n/?] y
Enable paravirtualization code (PARAVIRT) [N/y/?] n
Paravirtual steal time accounting (PARAVIRT_TIME_ACCOUNTING) [N/y/?] n

Xen guest support on ARM (XEN) [N/y/?] n

Use a unique stack canary value for each task (STACKPROTECTOR_PER_TASK) [Y/n/?] (NEW) 
* GCC plugins
GCC plugins (GCC_PLUGINS) [Y/n/?] (NEW) ^Cmake: *** [include/config/auto.conf.cmd] Deleting file 'include/config/tristate.conf'
make[2]: *** [scripts/kconfig/Makefile:73: syncconfig] Interrupt
make[1]: *** [Makefile:590: syncconfig] Interrupt
make: *** [Makefile:696: include/config/auto.conf.cmd] Interrupt

That’s normal with the gcc plugins config option on newer kernel versions… it detected a different cross compiler setup.

Just run … olddefconfig to clean it up with defaults.

make ARCH=arm bb.org_defconfig​
make ARCH=arm olddefconfig​

Why uImage? That’s usually a sign your using an old guide, just use zImage


Gives below error:
$ make ARCH=arm olddefconfig​
make: *** No rule to make target ‘olddefconfig​’. Stop.

Works fine…

voodoo@hestia:~/scratchpad$ git clone -b 5.4.106-ti-r40
cd ./linux/
Cloning into 'linux'...
remote: Enumerating objects: 926298, done.
remote: Counting objects: 100% (311956/311956), done.
remote: Compressing objects: 100% (5607/5607), done.
remote: Total 926298 (delta 307868), reused 310372 (delta 306295), pack-reused 614342
Receiving objects: 100% (926298/926298), 197.86 MiB | 29.63 MiB/s, done.
Resolving deltas: 100% (771796/771796), completed with 28121 local objects.
Checking connectivity: 951933, done.
Note: switching to '65ffe0b0de8e3c3b45e66020f21e41ebeec0a4d9'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

Updating files: 100% (66320/66320), done.
voodoo@hestia:~/scratchpad/linux$ make ARCH=arm bb.org_defconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/confdata.o
  HOSTCC  scripts/kconfig/expr.o
  LEX     scripts/kconfig/lexer.lex.c
  YACC    scripts/kconfig/[ch]
  HOSTCC  scripts/kconfig/lexer.lex.o
  HOSTCC  scripts/kconfig/
  HOSTCC  scripts/kconfig/preprocess.o
  HOSTCC  scripts/kconfig/symbol.o
  HOSTLD  scripts/kconfig/conf
# configuration written to .config
voodoo@hestia:~/scratchpad/linux$ make ARCH=arm olddefconfig
scripts/kconfig/conf  --olddefconfig Kconfig
# No change to .config