Config.in 14 KB

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