Config.in 14 KB

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