Config.in 14 KB

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