Config-kernel.in 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. #
  3. # Copyright (C) 2006-2014 OpenWrt.org
  4. config KERNEL_BUILD_USER
  5. string "Custom Kernel Build User Name"
  6. default "builder" if BUILDBOT
  7. default ""
  8. help
  9. Sets the Kernel build user string, which for example will be returned
  10. by 'uname -a' on running systems.
  11. If not set, uses system user at build time.
  12. config KERNEL_BUILD_DOMAIN
  13. string "Custom Kernel Build Domain Name"
  14. default "buildhost" if BUILDBOT
  15. default ""
  16. help
  17. Sets the Kernel build domain string, which for example will be
  18. returned by 'uname -a' on running systems.
  19. If not set, uses system hostname at build time.
  20. config KERNEL_PRINTK
  21. bool "Enable support for printk"
  22. default y
  23. config KERNEL_SWAP
  24. bool "Support for paging of anonymous memory (swap)"
  25. default y if !SMALL_FLASH
  26. config KERNEL_PROC_STRIPPED
  27. bool "Strip non-essential /proc functionality to reduce code size"
  28. default y if SMALL_FLASH
  29. config KERNEL_DEBUG_FS
  30. bool "Compile the kernel with debug filesystem enabled"
  31. default y
  32. help
  33. debugfs is a virtual file system that kernel developers use to put
  34. debugging files into. Enable this option to be able to read and
  35. write to these files. Many common debugging facilities, such as
  36. ftrace, require the existence of debugfs.
  37. config KERNEL_MIPS_FP_SUPPORT
  38. bool
  39. default y if TARGET_pistachio
  40. config KERNEL_ARM_PMU
  41. bool
  42. default y if TARGET_armsr_armv8
  43. depends on (arm || aarch64)
  44. config KERNEL_RISCV_PMU
  45. bool
  46. select KERNEL_RISCV_PMU_SBI
  47. depends on riscv64
  48. config KERNEL_RISCV_PMU_SBI
  49. bool
  50. depends on riscv64
  51. config KERNEL_X86_VSYSCALL_EMULATION
  52. bool "Enable vsyscall emulation"
  53. depends on x86_64
  54. help
  55. This enables emulation of the legacy vsyscall page. Disabling
  56. it is roughly equivalent to booting with vsyscall=none, except
  57. that it will also disable the helpful warning if a program
  58. tries to use a vsyscall. With this option set to N, offending
  59. programs will just segfault, citing addresses of the form
  60. 0xffffffffff600?00.
  61. This option is required by many programs built before 2013, and
  62. care should be used even with newer programs if set to N.
  63. Disabling this option saves about 7K of kernel size and
  64. possibly 4K of additional runtime pagetable memory.
  65. config KERNEL_PERF_EVENTS
  66. bool "Compile the kernel with performance events and counters"
  67. select KERNEL_ARM_PMU if (arm || aarch64)
  68. select KERNEL_RISCV_PMU if riscv64
  69. config KERNEL_PROFILING
  70. bool "Compile the kernel with profiling enabled"
  71. select KERNEL_PERF_EVENTS
  72. help
  73. Enable the extended profiling support mechanisms used by profilers such
  74. as OProfile.
  75. config KERNEL_RPI_AXIPERF
  76. bool "Compile the kernel with RaspberryPi AXI Performance monitors"
  77. default y
  78. depends on KERNEL_PERF_EVENTS && TARGET_bcm27xx
  79. config KERNEL_UBSAN
  80. bool "Compile the kernel with undefined behaviour sanity checker"
  81. help
  82. This option enables undefined behaviour sanity checker
  83. Compile-time instrumentation is used to detect various undefined
  84. behaviours in runtime. Various types of checks may be enabled
  85. via boot parameter ubsan_handle
  86. (see: Documentation/dev-tools/ubsan.rst).
  87. config KERNEL_UBSAN_SANITIZE_ALL
  88. bool "Enable instrumentation for the entire kernel"
  89. depends on KERNEL_UBSAN
  90. default y
  91. help
  92. This option activates instrumentation for the entire kernel.
  93. If you don't enable this option, you have to explicitly specify
  94. UBSAN_SANITIZE := y for the files/directories you want to check for UB.
  95. Enabling this option will get kernel image size increased
  96. significantly.
  97. config KERNEL_UBSAN_ALIGNMENT
  98. bool "Enable checking of pointers alignment"
  99. depends on KERNEL_UBSAN
  100. help
  101. This option enables detection of unaligned memory accesses.
  102. Enabling this option on architectures that support unaligned
  103. accesses may produce a lot of false positives.
  104. config KERNEL_UBSAN_BOUNDS
  105. bool "Perform array index bounds checking"
  106. depends on KERNEL_UBSAN
  107. help
  108. This option enables detection of directly indexed out of bounds array
  109. accesses, where the array size is known at compile time. Note that
  110. this does not protect array overflows via bad calls to the
  111. {str,mem}*cpy() family of functions (that is addressed by
  112. FORTIFY_SOURCE).
  113. config KERNEL_UBSAN_NULL
  114. bool "Enable checking of null pointers"
  115. depends on KERNEL_UBSAN
  116. help
  117. This option enables detection of memory accesses via a
  118. null pointer.
  119. config KERNEL_UBSAN_TRAP
  120. bool "On Sanitizer warnings, abort the running kernel code"
  121. depends on KERNEL_UBSAN
  122. help
  123. Building kernels with Sanitizer features enabled tends to grow the
  124. kernel size by around 5%, due to adding all the debugging text on
  125. failure paths. To avoid this, Sanitizer instrumentation can just
  126. issue a trap. This reduces the kernel size overhead but turns all
  127. warnings (including potentially harmless conditions) into full
  128. exceptions that abort the running kernel code (regardless of context,
  129. locks held, etc), which may destabilize the system. For some system
  130. builders this is an acceptable trade-off.
  131. config KERNEL_KASAN
  132. bool "Compile the kernel with KASan: runtime memory debugger"
  133. select KERNEL_SLUB_DEBUG
  134. depends on (x86_64 || aarch64 || arm || powerpc || riscv64)
  135. help
  136. Enables kernel address sanitizer - runtime memory debugger,
  137. designed to find out-of-bounds accesses and use-after-free bugs.
  138. This is strictly a debugging feature and it requires a gcc version
  139. of 4.9.2 or later. Detection of out of bounds accesses to stack or
  140. global variables requires gcc 5.0 or later.
  141. This feature consumes about 1/8 of available memory and brings about
  142. ~x3 performance slowdown.
  143. For better error detection enable CONFIG_STACKTRACE.
  144. Currently CONFIG_KASAN doesn't work with CONFIG_DEBUG_SLAB
  145. (the resulting kernel does not boot).
  146. config KERNEL_KASAN_EXTRA
  147. bool "KAsan: extra checks"
  148. depends on KERNEL_KASAN && KERNEL_DEBUG_KERNEL
  149. help
  150. This enables further checks in the kernel address sanitizer, for now
  151. it only includes the address-use-after-scope check that can lead
  152. to excessive kernel stack usage, frame size warnings and longer
  153. compile time.
  154. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 has more
  155. config KERNEL_KASAN_VMALLOC
  156. bool "Back mappings in vmalloc space with real shadow memory"
  157. depends on KERNEL_KASAN
  158. help
  159. By default, the shadow region for vmalloc space is the read-only
  160. zero page. This means that KASAN cannot detect errors involving
  161. vmalloc space.
  162. Enabling this option will hook in to vmap/vmalloc and back those
  163. mappings with real shadow memory allocated on demand. This allows
  164. for KASAN to detect more sorts of errors (and to support vmapped
  165. stacks), but at the cost of higher memory usage.
  166. This option depends on HAVE_ARCH_KASAN_VMALLOC, but we can't
  167. depend on that in here, so it is possible that enabling this
  168. will have no effect.
  169. if KERNEL_KASAN
  170. choice
  171. prompt "KASAN mode"
  172. depends on KERNEL_KASAN
  173. default KERNEL_KASAN_GENERIC
  174. help
  175. KASAN has three modes:
  176. 1. Generic KASAN (supported by many architectures, enabled with
  177. CONFIG_KASAN_GENERIC, similar to userspace ASan),
  178. 2. Software Tag-Based KASAN (arm64 only, based on software memory
  179. tagging, enabled with CONFIG_KASAN_SW_TAGS, similar to userspace
  180. HWASan), and
  181. 3. Hardware Tag-Based KASAN (arm64 only, based on hardware memory
  182. tagging, enabled with CONFIG_KASAN_HW_TAGS).
  183. config KERNEL_KASAN_GENERIC
  184. bool "Generic KASAN"
  185. select KERNEL_SLUB_DEBUG
  186. help
  187. Enables Generic KASAN.
  188. Consumes about 1/8th of available memory at kernel start and adds an
  189. overhead of ~50% for dynamic allocations.
  190. The performance slowdown is ~x3.
  191. config KERNEL_KASAN_SW_TAGS
  192. bool "Software Tag-Based KASAN"
  193. depends on aarch64
  194. select KERNEL_SLUB_DEBUG
  195. help
  196. Enables Software Tag-Based KASAN.
  197. Supported only on arm64 CPUs and relies on Top Byte Ignore.
  198. Consumes about 1/16th of available memory at kernel start and
  199. add an overhead of ~20% for dynamic allocations.
  200. May potentially introduce problems related to pointer casting and
  201. comparison, as it embeds a tag into the top byte of each pointer.
  202. config KERNEL_KASAN_HW_TAGS
  203. bool "Hardware Tag-Based KASAN"
  204. depends on aarch64
  205. select KERNEL_SLUB_DEBUG
  206. select KERNEL_ARM64_MTE
  207. help
  208. Enables Hardware Tag-Based KASAN.
  209. Supported only on arm64 CPUs starting from ARMv8.5 and relies on
  210. Memory Tagging Extension and Top Byte Ignore.
  211. Consumes about 1/32nd of available memory.
  212. May potentially introduce problems related to pointer casting and
  213. comparison, as it embeds a tag into the top byte of each pointer.
  214. endchoice
  215. config KERNEL_ARM64_MTE
  216. def_bool n
  217. endif
  218. choice
  219. prompt "Instrumentation type"
  220. depends on KERNEL_KASAN
  221. depends on !KERNEL_KASAN_HW_TAGS
  222. default KERNEL_KASAN_OUTLINE
  223. config KERNEL_KASAN_OUTLINE
  224. bool "Outline instrumentation"
  225. help
  226. Before every memory access compiler insert function call
  227. __asan_load*/__asan_store*. These functions performs check
  228. of shadow memory. This is slower than inline instrumentation,
  229. however it doesn't bloat size of kernel's .text section so
  230. much as inline does.
  231. config KERNEL_KASAN_INLINE
  232. bool "Inline instrumentation"
  233. help
  234. Compiler directly inserts code checking shadow memory before
  235. memory accesses. This is faster than outline (in some workloads
  236. it gives about x2 boost over outline instrumentation), but
  237. make kernel's .text size much bigger.
  238. This requires a gcc version of 5.0 or later.
  239. endchoice
  240. config KERNEL_KCOV
  241. bool "Compile the kernel with code coverage for fuzzing"
  242. select KERNEL_DEBUG_FS
  243. help
  244. KCOV exposes kernel code coverage information in a form suitable
  245. for coverage-guided fuzzing (randomized testing).
  246. If RANDOMIZE_BASE is enabled, PC values will not be stable across
  247. different machines and across reboots. If you need stable PC values,
  248. disable RANDOMIZE_BASE.
  249. For more details, see Documentation/kcov.txt.
  250. config KERNEL_KCOV_ENABLE_COMPARISONS
  251. bool "Enable comparison operands collection by KCOV"
  252. depends on KERNEL_KCOV
  253. help
  254. KCOV also exposes operands of every comparison in the instrumented
  255. code along with operand sizes and PCs of the comparison instructions.
  256. These operands can be used by fuzzing engines to improve the quality
  257. of fuzzing coverage.
  258. config KERNEL_KCOV_INSTRUMENT_ALL
  259. bool "Instrument all code by default"
  260. depends on KERNEL_KCOV
  261. default y if KERNEL_KCOV
  262. help
  263. If you are doing generic system call fuzzing (like e.g. syzkaller),
  264. then you will want to instrument the whole kernel and you should
  265. say y here. If you are doing more targeted fuzzing (like e.g.
  266. filesystem fuzzing with AFL) then you will want to enable coverage
  267. for more specific subsets of files, and should say n here.
  268. config KERNEL_TASKSTATS
  269. bool "Compile the kernel with task resource/io statistics and accounting"
  270. help
  271. Enable the collection and publishing of task/io statistics and
  272. accounting. Enable this option to enable i/o monitoring in system
  273. monitors.
  274. if KERNEL_TASKSTATS
  275. config KERNEL_TASK_DELAY_ACCT
  276. def_bool y
  277. config KERNEL_TASK_IO_ACCOUNTING
  278. def_bool y
  279. config KERNEL_TASK_XACCT
  280. def_bool y
  281. endif
  282. config KERNEL_KALLSYMS
  283. bool "Compile the kernel with symbol table information"
  284. default y if !SMALL_FLASH
  285. help
  286. This will give you more information in stack traces from kernel oopses.
  287. config KERNEL_FTRACE
  288. bool "Compile the kernel with tracing support"
  289. depends on !TARGET_uml
  290. config KERNEL_FTRACE_SYSCALLS
  291. bool "Trace system calls"
  292. depends on KERNEL_FTRACE
  293. config KERNEL_ENABLE_DEFAULT_TRACERS
  294. bool "Trace process context switches and events"
  295. depends on KERNEL_FTRACE
  296. config KERNEL_FUNCTION_TRACER
  297. bool "Function tracer"
  298. depends on KERNEL_FTRACE
  299. config KERNEL_FUNCTION_GRAPH_TRACER
  300. bool "Function graph tracer"
  301. depends on KERNEL_FUNCTION_TRACER
  302. config KERNEL_DYNAMIC_FTRACE
  303. bool "Enable/disable function tracing dynamically"
  304. depends on KERNEL_FUNCTION_TRACER
  305. config KERNEL_FUNCTION_PROFILER
  306. bool "Function profiler"
  307. depends on KERNEL_FUNCTION_TRACER
  308. config KERNEL_IRQSOFF_TRACER
  309. bool "Interrupts-off Latency Tracer"
  310. depends on KERNEL_FTRACE
  311. help
  312. This option measures the time spent in irqs-off critical
  313. sections, with microsecond accuracy.
  314. The default measurement method is a maximum search, which is
  315. disabled by default and can be runtime (re-)started
  316. via:
  317. echo 0 > /sys/kernel/debug/tracing/tracing_max_latency
  318. (Note that kernel size and overhead increase with this option
  319. enabled. This option and the preempt-off timing option can be
  320. used together or separately.)
  321. config KERNEL_PREEMPT_TRACER
  322. bool "Preemption-off Latency Tracer"
  323. depends on KERNEL_FTRACE
  324. help
  325. This option measures the time spent in preemption-off critical
  326. sections, with microsecond accuracy.
  327. The default measurement method is a maximum search, which is
  328. disabled by default and can be runtime (re-)started
  329. via:
  330. echo 0 > /sys/kernel/debug/tracing/tracing_max_latency
  331. (Note that kernel size and overhead increase with this option
  332. enabled. This option and the irqs-off timing option can be
  333. used together or separately.)
  334. config KERNEL_HIST_TRIGGERS
  335. bool "Histogram triggers"
  336. depends on KERNEL_FTRACE
  337. help
  338. Hist triggers allow one or more arbitrary trace event fields to be
  339. aggregated into hash tables and dumped to stdout by reading a
  340. debugfs/tracefs file. They're useful for gathering quick and dirty
  341. (though precise) summaries of event activity as an initial guide for
  342. further investigation using more advanced tools.
  343. Inter-event tracing of quantities such as latencies is also
  344. supported using hist triggers under this option.
  345. config KERNEL_DEBUG_KERNEL
  346. bool
  347. config KERNEL_DEBUG_INFO
  348. bool "Compile the kernel with debug information"
  349. default y if !SMALL_FLASH
  350. select KERNEL_DEBUG_KERNEL
  351. help
  352. This will compile your kernel and modules with debug information.
  353. config KERNEL_DEBUG_INFO_BTF
  354. bool "Enable additional BTF type information"
  355. depends on !HOST_OS_MACOS
  356. depends on KERNEL_DEBUG_INFO && !KERNEL_DEBUG_INFO_REDUCED
  357. select DWARVES
  358. help
  359. Generate BPF Type Format (BTF) information from DWARF debug info.
  360. Turning this on expects presence of pahole tool, which will convert
  361. DWARF type info into equivalent deduplicated BTF type info.
  362. Required to run BPF CO-RE applications.
  363. config KERNEL_MODULE_ALLOW_BTF_MISMATCH
  364. bool "Allow loading modules with non-matching BTF type info"
  365. depends on KERNEL_DEBUG_INFO_BTF
  366. help
  367. For modules whose split BTF does not match vmlinux, load without
  368. BTF rather than refusing to load. The default behavior with
  369. module BTF enabled is to reject modules with such mismatches;
  370. this option will still load module BTF where possible but ignore
  371. it when a mismatch is found.
  372. config KERNEL_DEBUG_INFO_REDUCED
  373. bool "Reduce debugging information"
  374. default y
  375. depends on KERNEL_DEBUG_INFO
  376. help
  377. If you say Y here gcc is instructed to generate less debugging
  378. information for structure types. This means that tools that
  379. need full debugging information (like kgdb or systemtap) won't
  380. be happy. But if you merely need debugging information to
  381. resolve line numbers there is no loss. Advantage is that
  382. build directory object sizes shrink dramatically over a full
  383. DEBUG_INFO build and compile times are reduced too.
  384. Only works with newer gcc versions.
  385. config KERNEL_FRAME_WARN
  386. int
  387. range 0 8192
  388. default 1280 if KERNEL_KASAN && !ARCH_64BIT
  389. default 1024 if !ARCH_64BIT
  390. default 2048 if ARCH_64BIT
  391. help
  392. Tell the compiler to warn at build time for stack frames larger than this.
  393. Setting this too low will cause a lot of warnings.
  394. Setting it to 0 disables the warning.
  395. # KERNEL_DEBUG_LL symbols must have the default value set as otherwise
  396. # KConfig wont evaluate them unless KERNEL_EARLY_PRINTK is selected
  397. # which means that buildroot wont override the DEBUG_LL symbols in target
  398. # kernel configurations and lead to devices that dont have working console
  399. config KERNEL_DEBUG_LL_UART_NONE
  400. bool
  401. default n
  402. depends on arm
  403. config KERNEL_DEBUG_LL
  404. bool
  405. default n
  406. depends on arm
  407. select KERNEL_DEBUG_LL_UART_NONE
  408. help
  409. ARM low level debugging.
  410. config KERNEL_DEBUG_VIRTUAL
  411. bool "Compile the kernel with VM translations debugging"
  412. select KERNEL_DEBUG_KERNEL
  413. help
  414. Enable checks sanity checks to catch invalid uses of
  415. virt_to_phys()/phys_to_virt() against the non-linear address space.
  416. config KERNEL_DYNAMIC_DEBUG
  417. bool "Compile the kernel with dynamic printk"
  418. select KERNEL_DEBUG_FS
  419. help
  420. Compiles debug level messages into the kernel, which would not
  421. otherwise be available at runtime. These messages can then be
  422. enabled/disabled based on various levels of scope - per source file,
  423. function, module, format string, and line number. This mechanism
  424. implicitly compiles in all pr_debug() and dev_dbg() calls, which
  425. enlarges the kernel text size by about 2%.
  426. config KERNEL_EARLY_PRINTK
  427. bool "Compile the kernel with early printk"
  428. default y if TARGET_bcm53xx
  429. depends on arm
  430. select KERNEL_DEBUG_KERNEL
  431. select KERNEL_DEBUG_LL if arm
  432. help
  433. Compile the kernel with early printk support. This is only useful for
  434. debugging purposes to send messages over the serial console in early boot.
  435. Enable this to debug early boot problems.
  436. config KERNEL_KPROBES
  437. bool "Compile the kernel with kprobes support"
  438. select KERNEL_FTRACE
  439. select KERNEL_PERF_EVENTS
  440. help
  441. Compiles the kernel with KPROBES support, which allows you to trap
  442. at almost any kernel address and execute a callback function.
  443. register_kprobe() establishes a probepoint and specifies the
  444. callback. Kprobes is useful for kernel debugging, non-intrusive
  445. instrumentation and testing.
  446. If in doubt, say "N".
  447. config KERNEL_KPROBE_EVENTS
  448. bool
  449. default y if KERNEL_KPROBES
  450. config KERNEL_BPF_EVENTS
  451. bool "Compile the kernel with BPF event support"
  452. select KERNEL_KPROBES
  453. help
  454. Allows to attach BPF programs to kprobe, uprobe and tracepoint events.
  455. This is required to use BPF maps of type BPF_MAP_TYPE_PERF_EVENT_ARRAY
  456. for sending data from BPF programs to user-space for post-processing
  457. or logging.
  458. config KERNEL_BPF_KPROBE_OVERRIDE
  459. bool
  460. depends on KERNEL_KPROBES
  461. default n
  462. config KERNEL_AIO
  463. bool "Compile the kernel with asynchronous IO support"
  464. default y if !SMALL_FLASH
  465. config KERNEL_IO_URING
  466. bool "Compile the kernel with io_uring support"
  467. depends on !SMALL_FLASH
  468. default y if (x86_64 || aarch64)
  469. config KERNEL_FHANDLE
  470. bool "Compile the kernel with support for fhandle syscalls"
  471. default y if !SMALL_FLASH
  472. config KERNEL_FANOTIFY
  473. bool "Compile the kernel with modern file notification support"
  474. default y if !SMALL_FLASH
  475. config KERNEL_BLK_DEV_BSG
  476. bool "Compile the kernel with SCSI generic v4 support for any block device"
  477. config KERNEL_TRANSPARENT_HUGEPAGE
  478. bool
  479. choice
  480. prompt "Transparent Hugepage Support sysfs defaults"
  481. depends on KERNEL_TRANSPARENT_HUGEPAGE
  482. default KERNEL_TRANSPARENT_HUGEPAGE_ALWAYS
  483. config KERNEL_TRANSPARENT_HUGEPAGE_ALWAYS
  484. bool "always"
  485. config KERNEL_TRANSPARENT_HUGEPAGE_MADVISE
  486. bool "madvise"
  487. endchoice
  488. config KERNEL_HUGETLBFS
  489. bool
  490. config KERNEL_HUGETLB_PAGE
  491. bool "Compile the kernel with HugeTLB support"
  492. select KERNEL_TRANSPARENT_HUGEPAGE
  493. select KERNEL_HUGETLBFS
  494. config KERNEL_MAGIC_SYSRQ
  495. bool "Compile the kernel with SysRq support"
  496. default y
  497. config KERNEL_DEBUG_PINCTRL
  498. bool "Compile the kernel with pinctrl debugging"
  499. select KERNEL_DEBUG_KERNEL
  500. config KERNEL_DEBUG_GPIO
  501. bool "Compile the kernel with gpio debugging"
  502. select KERNEL_DEBUG_KERNEL
  503. config KERNEL_COREDUMP
  504. bool
  505. config KERNEL_ELF_CORE
  506. bool "Enable process core dump support"
  507. select KERNEL_COREDUMP
  508. default y if !SMALL_FLASH
  509. config KERNEL_PROVE_LOCKING
  510. bool "Enable kernel lock checking"
  511. select KERNEL_DEBUG_KERNEL
  512. config KERNEL_SOFTLOCKUP_DETECTOR
  513. bool "Compile the kernel with detect Soft Lockups"
  514. depends on KERNEL_DEBUG_KERNEL
  515. help
  516. Say Y here to enable the kernel to act as a watchdog to detect
  517. soft lockups.
  518. Softlockups are bugs that cause the kernel to loop in kernel
  519. mode for more than 20 seconds, without giving other tasks a
  520. chance to run. The current stack trace is displayed upon
  521. detection and the system will stay locked up.
  522. config KERNEL_HARDLOCKUP_DETECTOR
  523. bool "Compile the kernel with detect Hard Lockups"
  524. depends on KERNEL_DEBUG_KERNEL
  525. help
  526. Say Y here to enable the kernel to act as a watchdog to detect
  527. hard lockups.
  528. Hardlockups are bugs that cause the CPU to loop in kernel mode
  529. for more than 10 seconds, without letting other interrupts have a
  530. chance to run. The current stack trace is displayed upon detection
  531. and the system will stay locked up.
  532. config KERNEL_DETECT_HUNG_TASK
  533. bool "Compile the kernel with detect Hung Tasks"
  534. depends on KERNEL_DEBUG_KERNEL
  535. default KERNEL_SOFTLOCKUP_DETECTOR
  536. help
  537. Say Y here to enable the kernel to detect "hung tasks",
  538. which are bugs that cause the task to be stuck in
  539. uninterruptible "D" state indefinitely.
  540. When a hung task is detected, the kernel will print the
  541. current stack trace (which you should report), but the
  542. task will stay in uninterruptible state. If lockdep is
  543. enabled then all held locks will also be reported. This
  544. feature has negligible overhead.
  545. config KERNEL_WQ_WATCHDOG
  546. bool "Compile the kernel with detect Workqueue Stalls"
  547. depends on KERNEL_DEBUG_KERNEL
  548. help
  549. Say Y here to enable stall detection on workqueues. If a
  550. worker pool doesn't make forward progress on a pending work
  551. item for over a given amount of time, 30s by default, a
  552. warning message is printed along with dump of workqueue
  553. state. This can be configured through kernel parameter
  554. "workqueue.watchdog_thresh" and its sysfs counterpart.
  555. config KERNEL_DEBUG_ATOMIC_SLEEP
  556. bool "Compile the kernel with sleep inside atomic section checking"
  557. depends on KERNEL_DEBUG_KERNEL
  558. help
  559. If you say Y here, various routines which may sleep will become very
  560. noisy if they are called inside atomic sections: when a spinlock is
  561. held, inside an rcu read side critical section, inside preempt disabled
  562. sections, inside an interrupt, etc...
  563. config KERNEL_DEBUG_VM
  564. bool "Compile the kernel with debug VM"
  565. depends on KERNEL_DEBUG_KERNEL
  566. help
  567. Enable this to turn on extended checks in the virtual-memory system
  568. that may impact performance.
  569. If unsure, say N.
  570. config KERNEL_PRINTK_TIME
  571. bool "Enable printk timestamps"
  572. default y
  573. config KERNEL_SLUB_DEBUG
  574. bool "Enable SLUB debugging support"
  575. help
  576. This enables various debugging features:
  577. - Accepts "slub_debug" kernel parameter
  578. - Provides caches debugging options (e.g. tracing, validating)
  579. - Adds /sys/kernel/slab/ attrs for reading amounts of *objects*
  580. - Enables /proc/slabinfo support
  581. - Prints info when running out of memory
  582. Enabling this can result in a significant increase of code size.
  583. config KERNEL_SLUB_DEBUG_ON
  584. depends on KERNEL_SLUB_DEBUG
  585. bool "Boot kernel with basic caches debugging enabled"
  586. help
  587. This enables by default sanity_checks, red_zone, poison and store_user
  588. debugging options for all caches.
  589. config KERNEL_SLABINFO
  590. select KERNEL_SLUB_DEBUG
  591. select KERNEL_SLUB_DEBUG_ON
  592. bool "Enable /proc slab debug info"
  593. config KERNEL_PROC_PAGE_MONITOR
  594. bool "Enable /proc page monitoring"
  595. config KERNEL_RELAY
  596. bool
  597. config KERNEL_KEXEC
  598. bool "Enable kexec support"
  599. config KERNEL_PROC_VMCORE
  600. bool
  601. config KERNEL_PROC_KCORE
  602. bool
  603. config KERNEL_CRASH_DUMP
  604. depends on i386 || x86_64 || arm || armeb
  605. select KERNEL_KEXEC
  606. select KERNEL_PROC_VMCORE
  607. select KERNEL_PROC_KCORE
  608. bool "Enable support for kexec crashdump"
  609. default y
  610. config USE_RFKILL
  611. bool "Enable rfkill support"
  612. default RFKILL_SUPPORT
  613. config USE_SPARSE
  614. bool "Enable sparse check during kernel build"
  615. config KERNEL_DEVTMPFS
  616. bool "Compile the kernel with device tmpfs enabled"
  617. help
  618. devtmpfs is a simple, kernel-managed /dev filesystem. The kernel creates
  619. devices nodes for all registered devices to simplify boot, but leaves more
  620. complex tasks to userspace (e.g. udev).
  621. if KERNEL_DEVTMPFS
  622. config KERNEL_DEVTMPFS_MOUNT
  623. bool "Automatically mount devtmpfs after root filesystem is mounted"
  624. endif
  625. config KERNEL_KEYS
  626. bool "Enable kernel access key retention support"
  627. default !SMALL_FLASH
  628. config KERNEL_PERSISTENT_KEYRINGS
  629. bool "Enable kernel persistent keyrings"
  630. depends on KERNEL_KEYS
  631. config KERNEL_KEYS_REQUEST_CACHE
  632. bool "Enable temporary caching of the last request_key() result"
  633. depends on KERNEL_KEYS
  634. config KERNEL_BIG_KEYS
  635. bool "Enable large payload keys on kernel keyrings"
  636. depends on KERNEL_KEYS
  637. #
  638. # CGROUP support symbols
  639. #
  640. config KERNEL_CGROUPS
  641. bool "Enable kernel cgroups"
  642. default y if !SMALL_FLASH
  643. if KERNEL_CGROUPS
  644. config KERNEL_CGROUP_DEBUG
  645. bool "Example debug cgroup subsystem"
  646. help
  647. This option enables a simple cgroup subsystem that
  648. exports useful debugging information about the cgroups
  649. framework.
  650. config KERNEL_FREEZER
  651. bool
  652. config KERNEL_CGROUP_FREEZER
  653. bool "legacy Freezer cgroup subsystem"
  654. select KERNEL_FREEZER
  655. help
  656. Provides a way to freeze and unfreeze all tasks in a
  657. cgroup.
  658. (legacy cgroup1-only controller, in cgroup2 freezer
  659. is integrated in the Memory controller)
  660. config KERNEL_CGROUP_DEVICE
  661. bool "legacy Device controller for cgroups"
  662. help
  663. Provides a cgroup implementing whitelists for devices which
  664. a process in the cgroup can mknod or open.
  665. (legacy cgroup1-only controller)
  666. config KERNEL_CGROUP_HUGETLB
  667. bool "HugeTLB controller"
  668. select KERNEL_HUGETLB_PAGE
  669. config KERNEL_CGROUP_PIDS
  670. bool "PIDs cgroup subsystem"
  671. default y
  672. help
  673. Provides enforcement of process number limits in the scope of a
  674. cgroup.
  675. config KERNEL_CGROUP_RDMA
  676. bool "RDMA controller for cgroups"
  677. default y
  678. config KERNEL_CGROUP_BPF
  679. bool "Support for eBPF programs attached to cgroups"
  680. default y
  681. config KERNEL_CPUSETS
  682. bool "Cpuset support"
  683. default y
  684. help
  685. This option will let you create and manage CPUSETs which
  686. allow dynamically partitioning a system into sets of CPUs and
  687. Memory Nodes and assigning tasks to run only within those sets.
  688. This is primarily useful on large SMP or NUMA systems.
  689. config KERNEL_PROC_PID_CPUSET
  690. bool "Include legacy /proc/<pid>/cpuset file"
  691. depends on KERNEL_CPUSETS
  692. config KERNEL_CGROUP_CPUACCT
  693. bool "Simple CPU accounting cgroup subsystem"
  694. default y
  695. help
  696. Provides a simple Resource Controller for monitoring the
  697. total CPU consumed by the tasks in a cgroup.
  698. config KERNEL_RESOURCE_COUNTERS
  699. bool "Resource counters"
  700. default y
  701. help
  702. This option enables controller independent resource accounting
  703. infrastructure that works with cgroups.
  704. config KERNEL_MM_OWNER
  705. bool
  706. default y if KERNEL_MEMCG
  707. config KERNEL_MEMCG
  708. bool "Memory Resource Controller for Control Groups"
  709. default y
  710. select KERNEL_FREEZER
  711. depends on KERNEL_RESOURCE_COUNTERS
  712. help
  713. Provides a memory resource controller that manages both anonymous
  714. memory and page cache. (See Documentation/cgroups/memory.txt)
  715. Note that setting this option increases fixed memory overhead
  716. associated with each page of memory in the system. By this,
  717. 20(40)bytes/PAGE_SIZE on 32(64)bit system will be occupied by memory
  718. usage tracking struct at boot. Total amount of this is printed out
  719. at boot.
  720. Only enable when you're ok with these tradeoffs and really
  721. sure you need the memory resource controller. Even when you enable
  722. this, you can set "cgroup_disable=memory" at your boot option to
  723. disable memory resource controller and you can avoid overheads
  724. (but lose benefits of memory resource controller).
  725. This config option also selects MM_OWNER config option, which
  726. could in turn add some fork/exit overhead.
  727. config KERNEL_MEMCG_SWAP
  728. bool "Memory Resource Controller Swap Extension"
  729. default y
  730. depends on KERNEL_MEMCG
  731. help
  732. Add swap management feature to memory resource controller. When you
  733. enable this, you can limit mem+swap usage per cgroup. In other words,
  734. when you disable this, memory resource controller has no cares to
  735. usage of swap...a process can exhaust all of the swap. This extension
  736. is useful when you want to avoid exhaustion swap but this itself
  737. adds more overheads and consumes memory for remembering information.
  738. Especially if you use 32bit system or small memory system, please
  739. be careful about enabling this. When memory resource controller
  740. is disabled by boot option, this will be automatically disabled and
  741. there will be no overhead from this. Even when you set this config=y,
  742. if boot option "swapaccount=0" is set, swap will not be accounted.
  743. Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page
  744. size is 4096bytes, 512k per 1Gbytes of swap.
  745. config KERNEL_MEMCG_SWAP_ENABLED
  746. bool "Memory Resource Controller Swap Extension enabled by default"
  747. depends on KERNEL_MEMCG_SWAP
  748. help
  749. Memory Resource Controller Swap Extension comes with its price in
  750. a bigger memory consumption. General purpose distribution kernels
  751. which want to enable the feature but keep it disabled by default
  752. and let the user enable it by swapaccount boot command line
  753. parameter should have this option unselected.
  754. Those who want to have the feature enabled by default should
  755. select this option (if, for some reason, they need to disable it,
  756. then swapaccount=0 does the trick).
  757. config KERNEL_MEMCG_KMEM
  758. bool "Memory Resource Controller Kernel Memory accounting (EXPERIMENTAL)"
  759. default y
  760. depends on KERNEL_MEMCG
  761. help
  762. The Kernel Memory extension for Memory Resource Controller can limit
  763. the amount of memory used by kernel objects in the system. Those are
  764. fundamentally different from the entities handled by the standard
  765. Memory Controller, which are page-based, and can be swapped. Users of
  766. the kmem extension can use it to guarantee that no group of processes
  767. will ever exhaust kernel resources alone.
  768. config KERNEL_CGROUP_PERF
  769. bool "Enable perf_event per-cpu per-container group (cgroup) monitoring"
  770. select KERNEL_PERF_EVENTS
  771. help
  772. This option extends the per-cpu mode to restrict monitoring to
  773. threads which belong to the cgroup specified and run on the
  774. designated cpu.
  775. menuconfig KERNEL_CGROUP_SCHED
  776. bool "Group CPU scheduler"
  777. default y
  778. help
  779. This feature lets CPU scheduler recognize task groups and control CPU
  780. bandwidth allocation to such task groups. It uses cgroups to group
  781. tasks.
  782. if KERNEL_CGROUP_SCHED
  783. config KERNEL_FAIR_GROUP_SCHED
  784. bool "Group scheduling for SCHED_OTHER"
  785. default y
  786. config KERNEL_CFS_BANDWIDTH
  787. bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED"
  788. default y
  789. depends on KERNEL_FAIR_GROUP_SCHED
  790. help
  791. This option allows users to define CPU bandwidth rates (limits) for
  792. tasks running within the fair group scheduler. Groups with no limit
  793. set are considered to be unconstrained and will run with no
  794. restriction.
  795. See tip/Documentation/scheduler/sched-bwc.txt for more information.
  796. config KERNEL_RT_GROUP_SCHED
  797. bool "Group scheduling for SCHED_RR/FIFO"
  798. default y
  799. help
  800. This feature lets you explicitly allocate real CPU bandwidth
  801. to task groups. If enabled, it will also make it impossible to
  802. schedule realtime tasks for non-root users until you allocate
  803. realtime bandwidth for them.
  804. endif
  805. config KERNEL_BLK_CGROUP
  806. bool "Block IO controller"
  807. default y
  808. help
  809. Generic block IO controller cgroup interface. This is the common
  810. cgroup interface which should be used by various IO controlling
  811. policies.
  812. Currently, CFQ IO scheduler uses it to recognize task groups and
  813. control disk bandwidth allocation (proportional time slice allocation)
  814. to such task groups. It is also used by bio throttling logic in
  815. block layer to implement upper limit in IO rates on a device.
  816. This option only enables generic Block IO controller infrastructure.
  817. One needs to also enable actual IO controlling logic/policy. For
  818. enabling proportional weight division of disk bandwidth in CFQ, set
  819. CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set
  820. CONFIG_BLK_DEV_THROTTLING=y.
  821. if KERNEL_BLK_CGROUP
  822. config KERNEL_CFQ_GROUP_IOSCHED
  823. bool "Proportional weight of disk bandwidth in CFQ"
  824. config KERNEL_BLK_DEV_THROTTLING
  825. bool "Enable throttling policy"
  826. default y
  827. config KERNEL_BLK_DEV_THROTTLING_LOW
  828. bool "Block throttling .low limit interface support (EXPERIMENTAL)"
  829. depends on KERNEL_BLK_DEV_THROTTLING
  830. endif
  831. config KERNEL_DEBUG_BLK_CGROUP
  832. bool "Enable Block IO controller debugging"
  833. depends on KERNEL_BLK_CGROUP
  834. help
  835. Enable some debugging help. Currently it exports additional stat
  836. files in a cgroup which can be useful for debugging.
  837. config KERNEL_NET_CLS_CGROUP
  838. bool "legacy Control Group Classifier"
  839. config KERNEL_CGROUP_NET_CLASSID
  840. bool "legacy Network classid cgroup"
  841. config KERNEL_CGROUP_NET_PRIO
  842. bool "legacy Network priority cgroup"
  843. endif
  844. #
  845. # Namespace support symbols
  846. #
  847. config KERNEL_NAMESPACES
  848. bool "Enable kernel namespaces"
  849. default y if !SMALL_FLASH
  850. if KERNEL_NAMESPACES
  851. config KERNEL_UTS_NS
  852. bool "UTS namespace"
  853. default y
  854. help
  855. In this namespace, tasks see different info provided
  856. with the uname() system call.
  857. config KERNEL_IPC_NS
  858. bool "IPC namespace"
  859. default y
  860. help
  861. In this namespace, tasks work with IPC ids which correspond to
  862. different IPC objects in different namespaces.
  863. config KERNEL_USER_NS
  864. bool "User namespace (EXPERIMENTAL)"
  865. default y
  866. help
  867. This allows containers, i.e. vservers, to use user namespaces
  868. to provide different user info for different servers.
  869. config KERNEL_PID_NS
  870. bool "PID Namespaces"
  871. default y
  872. help
  873. Support process id namespaces. This allows having multiple
  874. processes with the same pid as long as they are in different
  875. pid namespaces. This is a building block of containers.
  876. config KERNEL_NET_NS
  877. bool "Network namespace"
  878. default y
  879. help
  880. Allow user space to create what appear to be multiple instances
  881. of the network stack.
  882. endif
  883. config KERNEL_DEVPTS_MULTIPLE_INSTANCES
  884. bool "Support multiple instances of devpts"
  885. default y if !SMALL_FLASH
  886. help
  887. Enable support for multiple instances of devpts filesystem.
  888. If you want to have isolated PTY namespaces (eg: in containers),
  889. say Y here. Otherwise, say N. If enabled, each mount of devpts
  890. filesystem with the '-o newinstance' option will create an
  891. independent PTY namespace.
  892. config KERNEL_POSIX_MQUEUE
  893. bool "POSIX Message Queues"
  894. default y if !SMALL_FLASH
  895. help
  896. POSIX variant of message queues is a part of IPC. In POSIX message
  897. queues every message has a priority which decides about succession
  898. of receiving it by a process. If you want to compile and run
  899. programs written e.g. for Solaris with use of its POSIX message
  900. queues (functions mq_*) say Y here.
  901. POSIX message queues are visible as a filesystem called 'mqueue'
  902. and can be mounted somewhere if you want to do filesystem
  903. operations on message queues.
  904. config KERNEL_SECCOMP_FILTER
  905. bool
  906. default y if !SMALL_FLASH
  907. config KERNEL_SECCOMP
  908. bool "Enable seccomp support"
  909. depends on !(TARGET_uml)
  910. select KERNEL_SECCOMP_FILTER
  911. default y if !SMALL_FLASH
  912. help
  913. Build kernel with support for seccomp.
  914. #
  915. # IPv4 configuration
  916. #
  917. config KERNEL_IP_MROUTE
  918. bool "Enable IPv4 multicast routing"
  919. default y
  920. help
  921. Multicast routing requires a multicast routing daemon in
  922. addition to kernel support.
  923. if KERNEL_IP_MROUTE
  924. config KERNEL_IP_MROUTE_MULTIPLE_TABLES
  925. def_bool y
  926. config KERNEL_IP_PIMSM_V1
  927. def_bool y
  928. config KERNEL_IP_PIMSM_V2
  929. def_bool y
  930. endif
  931. #
  932. # IPv6 configuration
  933. #
  934. config KERNEL_IPV6
  935. def_bool IPV6
  936. if KERNEL_IPV6
  937. config KERNEL_IPV6_MULTIPLE_TABLES
  938. def_bool y
  939. config KERNEL_IPV6_SUBTREES
  940. def_bool y
  941. config KERNEL_IPV6_MROUTE
  942. bool "Enable IPv6 multicast routing"
  943. default y
  944. help
  945. Multicast routing requires a multicast routing daemon in
  946. addition to kernel support.
  947. if KERNEL_IPV6_MROUTE
  948. config KERNEL_IPV6_MROUTE_MULTIPLE_TABLES
  949. def_bool y
  950. config KERNEL_IPV6_PIMSM_V2
  951. def_bool y
  952. endif
  953. config KERNEL_IPV6_SEG6_LWTUNNEL
  954. bool "Enable support for lightweight tunnels"
  955. default y if !SMALL_FLASH
  956. help
  957. Using lwtunnel (needed for IPv6 segment routing) requires ip-full package.
  958. config KERNEL_LWTUNNEL_BPF
  959. def_bool n
  960. endif
  961. #
  962. # Miscellaneous network configuration
  963. #
  964. config KERNEL_NET_L3_MASTER_DEV
  965. bool "L3 Master device support"
  966. help
  967. This module provides glue between core networking code and device
  968. drivers to support L3 master devices like VRF.
  969. config KERNEL_XDP_SOCKETS
  970. bool "XDP sockets support"
  971. help
  972. XDP sockets allows a channel between XDP programs and
  973. userspace applications.
  974. config KERNEL_PAGE_POOL
  975. def_bool n
  976. config KERNEL_PAGE_POOL_STATS
  977. bool "Page pool stats support"
  978. depends on KERNEL_PAGE_POOL
  979. #
  980. # NFS related symbols
  981. #
  982. config KERNEL_IP_PNP
  983. bool "Compile the kernel with rootfs on NFS"
  984. help
  985. If you want to make your kernel boot off a NFS server as root
  986. filesystem, select Y here.
  987. if KERNEL_IP_PNP
  988. config KERNEL_IP_PNP_DHCP
  989. def_bool y
  990. config KERNEL_IP_PNP_BOOTP
  991. def_bool n
  992. config KERNEL_IP_PNP_RARP
  993. def_bool n
  994. config KERNEL_NFS_FS
  995. def_bool y
  996. config KERNEL_NFS_V2
  997. def_bool y
  998. config KERNEL_NFS_V3
  999. def_bool y
  1000. config KERNEL_ROOT_NFS
  1001. def_bool y
  1002. endif
  1003. menu "Filesystem ACL and attr support options"
  1004. config USE_FS_ACL_ATTR
  1005. bool "Use filesystem ACL and attr support by default"
  1006. help
  1007. Make using ACLs (e.g. POSIX ACL, NFSv4 ACL) the default
  1008. for kernel and packages, except tmpfs, flash filesystems,
  1009. and old NFS. Also enable userspace extended attribute support
  1010. by default. (OpenWrt already has an expection it will be
  1011. present in the kernel).
  1012. config KERNEL_FS_POSIX_ACL
  1013. bool "Enable POSIX ACL support"
  1014. default y if USE_FS_ACL_ATTR
  1015. config KERNEL_BTRFS_FS_POSIX_ACL
  1016. bool "Enable POSIX ACL for BtrFS Filesystems"
  1017. select KERNEL_FS_POSIX_ACL
  1018. default y if USE_FS_ACL_ATTR
  1019. config KERNEL_EXT4_FS_POSIX_ACL
  1020. bool "Enable POSIX ACL for Ext4 Filesystems"
  1021. select KERNEL_FS_POSIX_ACL
  1022. default y if USE_FS_ACL_ATTR
  1023. config KERNEL_F2FS_FS_POSIX_ACL
  1024. bool "Enable POSIX ACL for F2FS Filesystems"
  1025. select KERNEL_FS_POSIX_ACL
  1026. config KERNEL_JFFS2_FS_POSIX_ACL
  1027. bool "Enable POSIX ACL for JFFS2 Filesystems"
  1028. select KERNEL_FS_POSIX_ACL
  1029. config KERNEL_TMPFS_POSIX_ACL
  1030. bool "Enable POSIX ACL for TMPFS Filesystems"
  1031. select KERNEL_FS_POSIX_ACL
  1032. config KERNEL_CIFS_ACL
  1033. bool "Enable CIFS ACLs"
  1034. select KERNEL_FS_POSIX_ACL
  1035. default y if USE_FS_ACL_ATTR
  1036. config KERNEL_HFS_FS_POSIX_ACL
  1037. bool "Enable POSIX ACL for HFS Filesystems"
  1038. select KERNEL_FS_POSIX_ACL
  1039. default y if USE_FS_ACL_ATTR
  1040. config KERNEL_HFSPLUS_FS_POSIX_ACL
  1041. bool "Enable POSIX ACL for HFS+ Filesystems"
  1042. select KERNEL_FS_POSIX_ACL
  1043. default y if USE_FS_ACL_ATTR
  1044. config KERNEL_NFS_ACL_SUPPORT
  1045. bool "Enable ACLs for NFS"
  1046. default y if USE_FS_ACL_ATTR
  1047. config KERNEL_NFS_V3_ACL_SUPPORT
  1048. bool "Enable ACLs for NFSv3"
  1049. config KERNEL_NFSD_V2_ACL_SUPPORT
  1050. bool "Enable ACLs for NFSDv2"
  1051. config KERNEL_NFSD_V3_ACL_SUPPORT
  1052. bool "Enable ACLs for NFSDv3"
  1053. config KERNEL_REISER_FS_POSIX_ACL
  1054. bool "Enable POSIX ACLs for ReiserFS"
  1055. select KERNEL_FS_POSIX_ACL
  1056. default y if USE_FS_ACL_ATTR
  1057. config KERNEL_XFS_POSIX_ACL
  1058. bool "Enable POSIX ACLs for XFS"
  1059. select KERNEL_FS_POSIX_ACL
  1060. default y if USE_FS_ACL_ATTR
  1061. config KERNEL_JFS_POSIX_ACL
  1062. bool "Enable POSIX ACLs for JFS"
  1063. select KERNEL_FS_POSIX_ACL
  1064. default y if USE_FS_ACL_ATTR
  1065. endmenu
  1066. config KERNEL_DEVMEM
  1067. bool "/dev/mem virtual device support"
  1068. help
  1069. Say Y here if you want to support the /dev/mem device.
  1070. The /dev/mem device is used to access areas of physical
  1071. memory.
  1072. config KERNEL_DEVKMEM
  1073. bool "/dev/kmem virtual device support"
  1074. help
  1075. Say Y here if you want to support the /dev/kmem device. The
  1076. /dev/kmem device is rarely used, but can be used for certain
  1077. kind of kernel debugging operations.
  1078. config KERNEL_SQUASHFS_FRAGMENT_CACHE_SIZE
  1079. int "Number of squashfs fragments cached"
  1080. default 2 if (SMALL_FLASH && !LOW_MEMORY_FOOTPRINT)
  1081. default 3
  1082. config KERNEL_SQUASHFS_XATTR
  1083. bool "Squashfs XATTR support"
  1084. #
  1085. # compile optimization setting
  1086. #
  1087. choice
  1088. prompt "Compiler optimization level"
  1089. default KERNEL_CC_OPTIMIZE_FOR_SIZE if SMALL_FLASH
  1090. config KERNEL_CC_OPTIMIZE_FOR_PERFORMANCE
  1091. bool "Optimize for performance"
  1092. help
  1093. This is the default optimization level for the kernel, building
  1094. with the "-O2" compiler flag for best performance and most
  1095. helpful compile-time warnings.
  1096. config KERNEL_CC_OPTIMIZE_FOR_SIZE
  1097. bool "Optimize for size"
  1098. help
  1099. Enabling this option will pass "-Os" instead of "-O2" to
  1100. your compiler resulting in a smaller kernel.
  1101. endchoice
  1102. config KERNEL_AUDIT
  1103. bool "Auditing support"
  1104. config KERNEL_SECURITY
  1105. bool "Enable different security models"
  1106. config KERNEL_SECURITY_NETWORK
  1107. bool "Socket and Networking Security Hooks"
  1108. select KERNEL_SECURITY
  1109. config KERNEL_SECURITY_SELINUX
  1110. bool "NSA SELinux Support"
  1111. select KERNEL_SECURITY_NETWORK
  1112. select KERNEL_AUDIT
  1113. config KERNEL_SECURITY_SELINUX_BOOTPARAM
  1114. bool "NSA SELinux boot parameter"
  1115. depends on KERNEL_SECURITY_SELINUX
  1116. default y
  1117. config KERNEL_SECURITY_SELINUX_DISABLE
  1118. bool "NSA SELinux runtime disable"
  1119. depends on KERNEL_SECURITY_SELINUX
  1120. config KERNEL_SECURITY_SELINUX_DEVELOP
  1121. bool "NSA SELinux Development Support"
  1122. depends on KERNEL_SECURITY_SELINUX
  1123. default y
  1124. config KERNEL_SECURITY_SELINUX_SIDTAB_HASH_BITS
  1125. int
  1126. depends on KERNEL_SECURITY_SELINUX
  1127. default 9
  1128. config KERNEL_SECURITY_SELINUX_SID2STR_CACHE_SIZE
  1129. int
  1130. depends on KERNEL_SECURITY_SELINUX
  1131. default 256
  1132. config KERNEL_LSM
  1133. string
  1134. default "lockdown,yama,loadpin,safesetid,integrity,selinux"
  1135. depends on KERNEL_SECURITY_SELINUX
  1136. config KERNEL_EXT4_FS_SECURITY
  1137. bool "Ext4 Security Labels"
  1138. config KERNEL_F2FS_FS_SECURITY
  1139. bool "F2FS Security Labels"
  1140. config KERNEL_UBIFS_FS_SECURITY
  1141. bool "UBIFS Security Labels"
  1142. config KERNEL_JFFS2_FS_SECURITY
  1143. bool "JFFS2 Security Labels"
  1144. config KERNEL_WERROR
  1145. bool "Compile the kernel with warnings as errors"
  1146. help
  1147. A kernel build should not cause any compiler warnings, and this
  1148. enables the '-Werror' (for C) and '-Dwarnings' (for Rust) flags
  1149. to enforce that rule by default. Certain warnings from other tools
  1150. such as the linker may be upgraded to errors with this option as
  1151. well.
  1152. However, if you have a new (or very old) compiler or linker with odd
  1153. and unusual warnings, or you have some architecture with problems,
  1154. you may need to disable this config option in order to
  1155. successfully build the kernel.