Config.in 14 KB

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