Config.in 13 KB

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