Config.in 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523
  1. menu "Kernel"
  2. config BR2_LINUX_KERNEL
  3. bool "Linux Kernel"
  4. select BR2_PACKAGE_HOST_KMOD # Unconditional, even if modules not enabled
  5. select BR2_PACKAGE_HOST_IMAGEMAGICK if BR2_LINUX_KERNEL_CUSTOM_LOGO_PATH != ""
  6. help
  7. Enable this option if you want to build a Linux kernel for
  8. your embedded device
  9. if BR2_LINUX_KERNEL
  10. # Packages that need to have a kernel with support for loadable modules,
  11. # but do not use the kernel-modules infrastructure, should select that
  12. # option.
  13. config BR2_LINUX_NEEDS_MODULES
  14. bool
  15. #
  16. # Version selection. We provide the choice between:
  17. #
  18. # 1. A single fairly recent stable kernel version
  19. # 2. A custom stable version
  20. # 3. A custom tarball
  21. # 4. A set of custom repository locations
  22. #
  23. choice
  24. prompt "Kernel version"
  25. config BR2_LINUX_KERNEL_LATEST_VERSION
  26. bool "Latest version (6.12)"
  27. select BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_12 if BR2_KERNEL_HEADERS_AS_KERNEL
  28. # mips always generates an ITB image
  29. select BR2_PACKAGE_HOST_UBOOT_TOOLS if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
  30. select BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
  31. config BR2_LINUX_KERNEL_LATEST_CIP_VERSION
  32. bool "Latest CIP SLTS version (5.10.162-cip24)"
  33. select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10 if BR2_KERNEL_HEADERS_AS_KERNEL
  34. help
  35. CIP launched in the spring of 2016 to address the needs of
  36. organizations in industries such as power generation and
  37. distribution, water, oil and gas, transportation, building
  38. automation and more for reliable and secure Linux-based
  39. embedded systems that can be sustained over a period of
  40. 10 to as many as 60 years.
  41. The project's goal is to provide an open source base layer
  42. of industrial-grade software that permits the use and
  43. implementation of software building blocks that meet
  44. these requirements.
  45. The CIP community plans to maintain 5.10 for security and
  46. bug fixes for more than 10 years.
  47. https://www.cip-project.org
  48. config BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION
  49. bool "Latest CIP RT SLTS version (5.10.162-cip24-rt10)"
  50. select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10 if BR2_KERNEL_HEADERS_AS_KERNEL
  51. help
  52. Same as the CIP version, but this is the PREEMPT_RT realtime
  53. variant.
  54. The CIP community plans to maintain 5.10 for security and
  55. bug fixes for more than 10 years.
  56. https://www.cip-project.org
  57. config BR2_LINUX_KERNEL_CUSTOM_VERSION
  58. bool "Custom version"
  59. help
  60. This option allows to use a specific official version from
  61. kernel.org, like 2.6.x, 2.6.x.y, 3.x.y, ...
  62. Note: you cannot use this option to select a _longterm_ 2.6
  63. kernel, because these kernels are not located at the standard
  64. URL at kernel.org. Instead, select "Custom tarball" and
  65. specify the right URL directly.
  66. config BR2_LINUX_KERNEL_CUSTOM_TARBALL
  67. bool "Custom tarball"
  68. help
  69. This option allows to specify a URL pointing to a kernel
  70. source tarball. This URL can use any protocol recognized by
  71. Buildroot, like http://, ftp://, file:// or scp://.
  72. When pointing to a local tarball using file://, you may want
  73. to use a make variable like $(TOPDIR) to reference the root of
  74. the Buildroot tree.
  75. config BR2_LINUX_KERNEL_CUSTOM_GIT
  76. bool "Custom Git repository"
  77. help
  78. This option allows Buildroot to get the Linux kernel source
  79. code from a Git repository.
  80. config BR2_LINUX_KERNEL_CUSTOM_HG
  81. bool "Custom Mercurial repository"
  82. help
  83. This option allows Buildroot to get the Linux kernel source
  84. code from a Mercurial repository.
  85. config BR2_LINUX_KERNEL_CUSTOM_SVN
  86. bool "Custom Subversion repository"
  87. help
  88. This option allows Buildroot to get the Linux kernel source
  89. code from a Subversion repository.
  90. endchoice
  91. config BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE
  92. string "Kernel version"
  93. depends on BR2_LINUX_KERNEL_CUSTOM_VERSION
  94. config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
  95. string "URL of custom kernel tarball"
  96. depends on BR2_LINUX_KERNEL_CUSTOM_TARBALL
  97. if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN
  98. config BR2_LINUX_KERNEL_CUSTOM_REPO_URL
  99. string "URL of custom repository"
  100. config BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION
  101. string "Custom repository version"
  102. help
  103. Revision to use in the typical format used by
  104. Git/Mercurial/Subversion E.G. a sha id, a tag, branch, ..
  105. endif
  106. config BR2_LINUX_KERNEL_CUSTOM_REPO_GIT_SUBMODULES
  107. bool "Download also git submodules"
  108. depends on BR2_LINUX_KERNEL_CUSTOM_GIT
  109. help
  110. Include git submodules in the kernel source tree.
  111. config BR2_LINUX_KERNEL_VERSION
  112. string
  113. default "6.12.11" if BR2_LINUX_KERNEL_LATEST_VERSION
  114. default "5.10.162-cip24" if BR2_LINUX_KERNEL_LATEST_CIP_VERSION
  115. default "5.10.162-cip24-rt10" if BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION
  116. default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
  117. if BR2_LINUX_KERNEL_CUSTOM_VERSION
  118. default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL
  119. default BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION \
  120. if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN
  121. #
  122. # Patch selection
  123. #
  124. config BR2_LINUX_KERNEL_PATCH
  125. string "Custom kernel patches"
  126. help
  127. A space-separated list of patches to apply to the
  128. kernel. Each patch can be described as an URL, a local file
  129. path, or a directory. In the case of a directory, all files
  130. matching *.patch in the directory will be applied.
  131. #
  132. # Configuration selection
  133. #
  134. choice
  135. prompt "Kernel configuration"
  136. default BR2_LINUX_KERNEL_USE_DEFCONFIG
  137. config BR2_LINUX_KERNEL_USE_DEFCONFIG
  138. bool "Using an in-tree defconfig file"
  139. config BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG
  140. bool "Use the architecture default configuration"
  141. # We know that the default configuration on some architectures
  142. # requires host-openssl, so select it for the latest kernel
  143. # version. This is mainly needed to fix autobuilder testing.
  144. select BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL if \
  145. BR2_LINUX_KERNEL_LATEST_VERSION && \
  146. (BR2_aarch64 || BR2_aarch64_be || BR2_arcle || BR2_arceb || BR2_sparc || BR2_x86_64)
  147. help
  148. This option will use the default configuration for the
  149. selected architecture. I.e, it is equivalent to running
  150. "make ARCH=<foo> defconfig". This is useful on architectures
  151. that have a single defconfig file, such as ARM64.
  152. config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
  153. bool "Using a custom (def)config file"
  154. endchoice
  155. config BR2_LINUX_KERNEL_DEFCONFIG
  156. string "Defconfig name"
  157. depends on BR2_LINUX_KERNEL_USE_DEFCONFIG
  158. help
  159. Name of the kernel defconfig file to use, without the
  160. trailing _defconfig. The defconfig is located in
  161. arch/<arch>/configs in the kernel tree.
  162. config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
  163. string "Configuration file path"
  164. depends on BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
  165. help
  166. Path to the kernel configuration file
  167. Note: this can be a defconfig file or a complete .config file,
  168. which can later be saved back with make
  169. linux-update-(def)config.
  170. config BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
  171. string "Additional configuration fragment files"
  172. help
  173. A space-separated list of kernel configuration fragment files,
  174. that will be merged to the main kernel configuration file.
  175. config BR2_LINUX_KERNEL_CUSTOM_LOGO_PATH
  176. string "Custom boot logo file path"
  177. help
  178. Use a custom Linux framebuffer boot logo.
  179. Custom logo should be in PNG or JPEG format, it will be
  180. converted to the linux kernel format (224 colors only)
  181. and copied over the original logo file.
  182. #
  183. # Binary format
  184. #
  185. choice
  186. prompt "Kernel binary format"
  187. default BR2_LINUX_KERNEL_ZIMAGE if BR2_arm || BR2_armeb
  188. config BR2_LINUX_KERNEL_UIMAGE
  189. bool "uImage"
  190. depends on BR2_arc || BR2_arm || BR2_armeb || \
  191. BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \
  192. BR2_sh || BR2_mips || BR2_mipsel || \
  193. BR2_mips64 || BR2_mips64el || BR2_xtensa
  194. select BR2_PACKAGE_HOST_UBOOT_TOOLS
  195. config BR2_LINUX_KERNEL_APPENDED_UIMAGE
  196. bool "uImage with appended DT"
  197. depends on BR2_arm || BR2_armeb
  198. select BR2_LINUX_KERNEL_DTS_SUPPORT
  199. select BR2_LINUX_KERNEL_APPENDED_DTB
  200. select BR2_PACKAGE_HOST_UBOOT_TOOLS
  201. config BR2_LINUX_KERNEL_BZIMAGE
  202. bool "bzImage"
  203. depends on BR2_i386 || BR2_x86_64 || BR2_s390x
  204. config BR2_LINUX_KERNEL_ZIMAGE
  205. bool "zImage"
  206. depends on BR2_arm || BR2_armeb || BR2_powerpc || \
  207. BR2_powerpc64 || BR2_powerpc64le || BR2_sparc || \
  208. BR2_sh || BR2_xtensa
  209. config BR2_LINUX_KERNEL_ZIMAGE_EPAPR
  210. bool "zImage.epapr"
  211. depends on BR2_powerpc64 || BR2_powerpc64le
  212. config BR2_LINUX_KERNEL_APPENDED_ZIMAGE
  213. bool "zImage with appended DT"
  214. depends on BR2_arm || BR2_armeb
  215. select BR2_LINUX_KERNEL_DTS_SUPPORT
  216. select BR2_LINUX_KERNEL_APPENDED_DTB
  217. config BR2_LINUX_KERNEL_CUIMAGE
  218. bool "cuImage"
  219. depends on BR2_powerpc
  220. select BR2_PACKAGE_HOST_UBOOT_TOOLS
  221. select BR2_LINUX_KERNEL_DTS_SUPPORT
  222. select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
  223. config BR2_LINUX_KERNEL_SIMPLEIMAGE
  224. bool "simpleImage"
  225. depends on BR2_microblaze
  226. select BR2_PACKAGE_HOST_UBOOT_TOOLS
  227. select BR2_LINUX_KERNEL_DTS_SUPPORT
  228. select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
  229. config BR2_LINUX_KERNEL_IMAGE
  230. bool "Image"
  231. depends on BR2_aarch64 || BR2_aarch64_be || BR2_riscv
  232. config BR2_LINUX_KERNEL_IMAGEGZ
  233. bool "Image.gz"
  234. depends on BR2_aarch64 || BR2_aarch64_be || BR2_riscv
  235. config BR2_LINUX_KERNEL_LINUX_BIN
  236. bool "linux.bin"
  237. depends on BR2_microblaze
  238. select BR2_PACKAGE_HOST_UBOOT_TOOLS
  239. config BR2_LINUX_KERNEL_VMLINUX_BIN
  240. bool "vmlinux.bin"
  241. depends on BR2_mips || BR2_mipsel || BR2_sh
  242. config BR2_LINUX_KERNEL_VMLINUX
  243. bool "vmlinux"
  244. config BR2_LINUX_KERNEL_VMLINUZ
  245. bool "vmlinuz"
  246. depends on BR2_mips || BR2_mipsel
  247. config BR2_LINUX_KERNEL_VMLINUZ_BIN
  248. bool "vmlinuz.bin"
  249. depends on BR2_mips || BR2_mipsel
  250. config BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
  251. bool "custom target"
  252. help
  253. For certain cases a board-specific target image must be
  254. used. For example, on powerPC where the OpenFirmware
  255. description is attached in a board-specific kernel image
  256. target like 'cuImage.mpc8379_rdb'.
  257. Select this option and specify the make target in "Kernel
  258. image target name".
  259. endchoice
  260. #
  261. # Kernel compression format
  262. #
  263. choice
  264. prompt "Kernel compression format"
  265. help
  266. This selection will just ensure that the correct host tools
  267. are built. The actual compression for the kernel should be
  268. selected in the kernel configuration menu.
  269. config BR2_LINUX_KERNEL_GZIP
  270. bool "gzip compression"
  271. config BR2_LINUX_KERNEL_LZ4
  272. bool "lz4 compression"
  273. config BR2_LINUX_KERNEL_LZMA
  274. bool "lzma compression"
  275. config BR2_LINUX_KERNEL_LZO
  276. bool "lzo compression"
  277. config BR2_LINUX_KERNEL_XZ
  278. bool "xz compression"
  279. config BR2_LINUX_KERNEL_ZSTD
  280. bool "zstd compression"
  281. config BR2_LINUX_KERNEL_UNCOMPRESSED
  282. bool "uncompressed"
  283. depends on BR2_s390x
  284. endchoice
  285. config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
  286. string "Kernel image target name"
  287. depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
  288. help
  289. Specify the kernel make target to build the kernel that you
  290. need.
  291. config BR2_LINUX_KERNEL_IMAGE_NAME
  292. string "Kernel image name"
  293. depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
  294. help
  295. The filename of the kernel image, if it is different from
  296. the make target (above). Defaults to
  297. BR2_LINUX_KERNEL_IMAGE_TARGET_NAME. If specified, the
  298. filename is relative to arch/ARCH/boot/.
  299. If unsure, leave it empty.
  300. config BR2_LINUX_KERNEL_UIMAGE_LOADADDR
  301. string "load address (for 3.7+ multi-platform image)"
  302. depends on BR2_arm || BR2_armeb
  303. depends on BR2_LINUX_KERNEL_UIMAGE || BR2_LINUX_KERNEL_APPENDED_UIMAGE
  304. help
  305. If your ARM system's Linux kernel is configured with the new
  306. (3.7+) multi-architecture support (CONFIG_ARCH_MULTIPLATFORM=y
  307. in your kernel config), then it is necessary to specify a
  308. kernel load address when building the uImage. This should be a
  309. hexadecimal string beginning with 0x, for example: 0x00008000.
  310. If unsure, let this option empty.
  311. config BR2_LINUX_KERNEL_DTS_SUPPORT
  312. bool "Build a Device Tree Blob (DTB)"
  313. help
  314. Compile one or more device tree sources into device tree
  315. blobs.
  316. Select the dts files to compile in the options below.
  317. if BR2_LINUX_KERNEL_DTS_SUPPORT
  318. # We have mainly three cases when it comes to device tree support:
  319. # 1) We don't want any support at all. Then the ..DTS_SUPPORT
  320. # variable won't be set
  321. # 2) We want device tree support, so we need the user to enter the
  322. # device tree name or the path to the custom device he uses, but
  323. # the kernel abstracts this from us and only build an image that
  324. # looks like a regular kernel image. In this case, we only need
  325. # to derive the kernel image name from the given device tree
  326. # name, and all the rest is as usual
  327. # 3) We want device tree support, but the kernel requires us to
  328. # build the device tree blob separately. In this case, some
  329. # more logic will be needed.
  330. # The variable below address the second case, were you only want
  331. # limited actions from buildroot.
  332. config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
  333. bool "DTB is built by kernel itself"
  334. help
  335. Normally, the device tree(s) to be built have to be passed
  336. explicitly to the kernel build system. For some binary
  337. formats, however, the kernel build system links in the
  338. device tree directly in the kernel binary. Select this option
  339. if you have such a kernel binary format.
  340. config BR2_LINUX_KERNEL_APPENDED_DTB
  341. bool
  342. config BR2_LINUX_KERNEL_INTREE_DTS_NAME
  343. string "In-tree Device Tree Source file names"
  344. help
  345. Name of in-tree device tree source file, without
  346. the trailing .dts. You can provide a list of
  347. dts files to build, separated by spaces.
  348. config BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
  349. string "Out-of-tree Device Tree Source file paths"
  350. help
  351. Paths to out-of-tree Device Tree Source (.dts) and Device Tree
  352. Source Include (.dtsi) files, separated by spaces. These files
  353. will be copied to the kernel sources and the .dts files will
  354. be compiled from there.
  355. config BR2_LINUX_KERNEL_DTB_KEEP_DIRNAME
  356. bool "Keep the directory name of the Device Tree"
  357. help
  358. If enabled, the device tree blobs keep their
  359. directory prefixes when they get copied to the
  360. output image directory or the target directory.
  361. config BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT
  362. bool "Build Device Tree with overlay support"
  363. help
  364. If enabled, pass the "-@" option to dtc, such that
  365. symbols are generated in the compiled Device Tree.
  366. Choose this option to support Device Tree overlays
  367. on the target system.
  368. endif
  369. config BR2_LINUX_KERNEL_INSTALL_TARGET
  370. bool "Install kernel image to /boot in target"
  371. depends on !BR2_TARGET_ROOTFS_INITRAMFS
  372. help
  373. Select this option to have the kernel image installed to
  374. /boot in the target root filesystem, as is typically done on
  375. x86/x86_64 systems.
  376. Note that this option also installs the Device Tree Blobs to
  377. /boot if DTBs have been generated by the kernel build
  378. process.
  379. config BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL
  380. bool "Needs host OpenSSL"
  381. help
  382. Some Linux kernel configuration options (such as
  383. CONFIG_SYSTEM_TRUSTED_KEYRING) require building a host
  384. program called extract-cert, which itself needs
  385. OpenSSL. Enabling this option will ensure host-openssl gets
  386. built before the Linux kernel.
  387. Enable this option if you get a Linux kernel build failure
  388. such as "scripts/extract-cert.c:21:25: fatal error:
  389. openssl/bio.h: No such file or directory".
  390. config BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF
  391. bool "Needs host libelf"
  392. help
  393. Some Linux kernel configuration options (such as
  394. CONFIG_UNWINDER_ORC) require building a host program that
  395. needs libelf. Enabling this option will ensure host-elfutils
  396. (which provides libelf) gets built before the Linux kernel.
  397. Enable this option if you get a Linux kernel build failure
  398. such as "Cannot generate ORC metadata for
  399. CONFIG_UNWINDER_ORC=y, please install libelf-dev,
  400. libelf-devel or elfutils-libelf-devel".
  401. config BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE
  402. bool "Needs host pahole"
  403. help
  404. Some Linux kernel configuration options (such as
  405. CONFIG_DEBUG_INFO_BTF) require building a host program
  406. called pahole. Enabling this option will ensure host-pahole
  407. gets built before the Linux kernel.
  408. Enable this option if you get a Linux kernel build failure
  409. such as "BTF: .tmp_vmlinux.btf: pahole (pahole) is not
  410. available".
  411. config BR2_LINUX_KERNEL_NEEDS_HOST_PYTHON3
  412. bool "Needs host python3"
  413. help
  414. Some Linux kernel configuration options (such as the
  415. CONFIG_DRM_MSM in v6.10 and greater) require a host python3
  416. interpreter. Enabling this option will ensure host-python3
  417. gets built before the Linux kernel.
  418. Enable this option if you get a Linux kernel build failure
  419. such as "python3: not found".
  420. # Linux extensions
  421. source "linux/Config.ext.in"
  422. # Linux tools
  423. source "package/linux-tools/Config.in"
  424. endif # BR2_LINUX_KERNEL
  425. endmenu