Config.in 16 KB

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