b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 1 | # SPDX-License-Identifier: GPL-2.0-only |
| 2 | # |
| 3 | # Copyright (C) 2006-2013 OpenWrt.org |
| 4 | |
| 5 | menu "Target Images" |
| 6 | |
| 7 | menuconfig TARGET_ROOTFS_INITRAMFS |
| 8 | bool "ramdisk" |
| 9 | default y if USES_INITRAMFS |
| 10 | help |
| 11 | Embed the root filesystem into the kernel (initramfs). |
| 12 | |
| 13 | choice |
| 14 | prompt "Compression" |
| 15 | default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_apm821xx |
| 16 | default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ath79_mikrotik |
| 17 | default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_lantiq |
| 18 | default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_mpc85xx |
| 19 | default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ramips |
| 20 | default TARGET_INITRAMFS_COMPRESSION_ZSTD if TARGET_qualcommax |
| 21 | default TARGET_INITRAMFS_COMPRESSION_XZ if USES_SEPARATE_INITRAMFS |
| 22 | default TARGET_INITRAMFS_COMPRESSION_NONE |
| 23 | depends on TARGET_ROOTFS_INITRAMFS |
| 24 | help |
| 25 | Select ramdisk compression. |
| 26 | |
| 27 | config TARGET_INITRAMFS_COMPRESSION_NONE |
| 28 | bool "none" |
| 29 | |
| 30 | config TARGET_INITRAMFS_COMPRESSION_GZIP |
| 31 | bool "gzip" |
| 32 | |
| 33 | config TARGET_INITRAMFS_COMPRESSION_BZIP2 |
| 34 | bool "bzip2" |
| 35 | |
| 36 | config TARGET_INITRAMFS_COMPRESSION_LZMA |
| 37 | bool "lzma" |
| 38 | |
| 39 | config TARGET_INITRAMFS_COMPRESSION_LZO |
| 40 | bool "lzo" |
| 41 | |
| 42 | config TARGET_INITRAMFS_COMPRESSION_LZ4 |
| 43 | bool "lz4" |
| 44 | |
| 45 | config TARGET_INITRAMFS_COMPRESSION_XZ |
| 46 | bool "xz" |
| 47 | |
| 48 | config TARGET_INITRAMFS_COMPRESSION_ZSTD |
| 49 | bool "zstd" |
| 50 | endchoice |
| 51 | |
| 52 | config EXTERNAL_CPIO |
| 53 | string |
| 54 | prompt "Use external cpio" if TARGET_ROOTFS_INITRAMFS |
| 55 | default "" |
| 56 | help |
| 57 | Kernel uses specified external cpio as INITRAMFS_SOURCE. |
| 58 | |
| 59 | config TARGET_INITRAMFS_FORCE |
| 60 | bool "Force" |
| 61 | depends on TARGET_ROOTFS_INITRAMFS |
| 62 | help |
| 63 | Ignore the initramfs passed by the bootloader. |
| 64 | |
| 65 | config TARGET_ROOTFS_INITRAMFS_SEPARATE |
| 66 | bool "separate ramdisk" |
| 67 | depends on USES_SEPARATE_INITRAMFS && TARGET_ROOTFS_INITRAMFS && !TARGET_INITRAMFS_FORCE |
| 68 | default y if USES_SEPARATE_INITRAMFS |
| 69 | help |
| 70 | Generate separate initrd.cpio instead of embedding it. |
| 71 | This is useful for generating images with a dedicated |
| 72 | ramdisk e.g. in U-Boot's uImage and uImage.FIT formats. |
| 73 | |
| 74 | comment "Root filesystem archives" |
| 75 | |
| 76 | config TARGET_ROOTFS_CPIOGZ |
| 77 | bool "cpio.gz" |
| 78 | default y if USES_CPIOGZ |
| 79 | help |
| 80 | Build a compressed cpio archive of the root filesystem. |
| 81 | |
| 82 | config TARGET_ROOTFS_TARGZ |
| 83 | bool "tar.gz" |
| 84 | default y if USES_TARGZ |
| 85 | help |
| 86 | Build a compressed tar archive of the root filesystem. |
| 87 | |
| 88 | comment "Root filesystem images" |
| 89 | |
| 90 | menuconfig TARGET_ROOTFS_EXT4FS |
| 91 | bool "ext4" |
| 92 | default y if USES_EXT4 |
| 93 | help |
| 94 | Build an ext4 root filesystem. |
| 95 | |
| 96 | config TARGET_EXT4_RESERVED_PCT |
| 97 | int "Percentage of reserved blocks in root filesystem" |
| 98 | depends on TARGET_ROOTFS_EXT4FS |
| 99 | default 0 |
| 100 | help |
| 101 | Select the percentage of reserved blocks in the root filesystem. |
| 102 | |
| 103 | choice |
| 104 | prompt "Root filesystem block size" |
| 105 | default TARGET_EXT4_BLOCKSIZE_4K |
| 106 | depends on TARGET_ROOTFS_EXT4FS |
| 107 | help |
| 108 | Select the block size of the root filesystem. |
| 109 | |
| 110 | config TARGET_EXT4_BLOCKSIZE_4K |
| 111 | bool "4k" |
| 112 | |
| 113 | config TARGET_EXT4_BLOCKSIZE_2K |
| 114 | bool "2k" |
| 115 | |
| 116 | config TARGET_EXT4_BLOCKSIZE_1K |
| 117 | bool "1k" |
| 118 | endchoice |
| 119 | |
| 120 | config TARGET_EXT4_BLOCKSIZE |
| 121 | int |
| 122 | default 4096 if TARGET_EXT4_BLOCKSIZE_4K |
| 123 | default 2048 if TARGET_EXT4_BLOCKSIZE_2K |
| 124 | default 1024 if TARGET_EXT4_BLOCKSIZE_1K |
| 125 | depends on TARGET_ROOTFS_EXT4FS |
| 126 | |
| 127 | config TARGET_EXT4_JOURNAL |
| 128 | bool "Create a journaling filesystem" |
| 129 | depends on TARGET_ROOTFS_EXT4FS |
| 130 | default y |
| 131 | help |
| 132 | Create an ext4 filesystem with a journal. |
| 133 | |
| 134 | config TARGET_ROOTFS_JFFS2 |
| 135 | bool "jffs2" |
| 136 | depends on USES_JFFS2 |
| 137 | help |
| 138 | Build a JFFS2 root filesystem. |
| 139 | |
| 140 | config TARGET_ROOTFS_JFFS2_NAND |
| 141 | bool "jffs2 for NAND" |
| 142 | default y if USES_JFFS2_NAND |
| 143 | depends on USES_JFFS2_NAND |
| 144 | help |
| 145 | Build a JFFS2 root filesystem for NAND flash. |
| 146 | |
| 147 | menuconfig TARGET_ROOTFS_SQUASHFS |
| 148 | bool "squashfs" |
| 149 | default y if USES_SQUASHFS |
| 150 | help |
| 151 | Build a squashfs root filesystem. |
| 152 | |
| 153 | config TARGET_SQUASHFS_BLOCK_SIZE |
| 154 | int "Block size (in KiB)" |
| 155 | depends on TARGET_ROOTFS_SQUASHFS |
| 156 | default 64 if LOW_MEMORY_FOOTPRINT |
| 157 | default 1024 if (SMALL_FLASH && !LOW_MEMORY_FOOTPRINT) |
| 158 | default 256 |
| 159 | help |
| 160 | Select squashfs block size, must be one of: |
| 161 | 4, 8, 16, 32, 64, 128, 256, 512, 1024 |
| 162 | |
| 163 | menuconfig TARGET_ROOTFS_UBIFS |
| 164 | bool "ubifs" |
| 165 | default y if USES_UBIFS |
| 166 | depends on USES_UBIFS |
| 167 | help |
| 168 | Build a UBIFS root filesystem. |
| 169 | |
| 170 | choice |
| 171 | prompt "compression" |
| 172 | default TARGET_UBIFS_COMPRESSION_ZLIB |
| 173 | depends on TARGET_ROOTFS_UBIFS |
| 174 | help |
| 175 | Select compression type |
| 176 | |
| 177 | config TARGET_UBIFS_COMPRESSION_NONE |
| 178 | bool "none" |
| 179 | |
| 180 | config TARGET_UBIFS_COMPRESSION_LZO |
| 181 | bool "lzo" |
| 182 | |
| 183 | config TARGET_UBIFS_COMPRESSION_ZLIB |
| 184 | bool "zlib" |
| 185 | endchoice |
| 186 | |
| 187 | config TARGET_UBIFS_FREE_SPACE_FIXUP |
| 188 | bool "free space fixup" if TARGET_ROOTFS_UBIFS |
| 189 | default y |
| 190 | help |
| 191 | The filesystem free space has to be fixed up on first mount. |
| 192 | |
| 193 | config TARGET_UBIFS_JOURNAL_SIZE |
| 194 | string |
| 195 | prompt "journal size" if TARGET_ROOTFS_UBIFS |
| 196 | default "" |
| 197 | |
| 198 | config GRUB_IMAGES |
| 199 | bool "Build GRUB images (Linux x86 or x86_64 host only)" |
| 200 | depends on TARGET_x86 |
| 201 | depends on TARGET_ROOTFS_EXT4FS || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS |
| 202 | select PACKAGE_grub2 |
| 203 | select PACKAGE_grub2-bios-setup |
| 204 | default y |
| 205 | |
| 206 | config GRUB_EFI_IMAGES |
| 207 | bool "Build GRUB EFI images" |
| 208 | depends on TARGET_x86 || TARGET_armsr || TARGET_loongarch64 |
| 209 | depends on TARGET_ROOTFS_EXT4FS || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS |
| 210 | select PACKAGE_grub2 if TARGET_x86 |
| 211 | select PACKAGE_grub2-efi if TARGET_x86 |
| 212 | select PACKAGE_grub2-bios-setup if TARGET_x86 |
| 213 | select PACKAGE_grub2-efi-arm if TARGET_armsr |
| 214 | select PACKAGE_grub2-efi-loongarch64 if TARGET_loongarch64 |
| 215 | select PACKAGE_kmod-fs-vfat |
| 216 | default y |
| 217 | |
| 218 | config GRUB_CONSOLE |
| 219 | bool "Use Console Terminal (in addition to Serial)" |
| 220 | depends on GRUB_IMAGES || GRUB_EFI_IMAGES |
| 221 | default y |
| 222 | |
| 223 | config GRUB_BAUDRATE |
| 224 | int "Serial port baud rate" |
| 225 | depends on GRUB_IMAGES || GRUB_EFI_IMAGES |
| 226 | default 38400 if TARGET_x86_generic |
| 227 | default 115200 |
| 228 | |
| 229 | config GRUB_FLOWCONTROL |
| 230 | bool "Use RTE/CTS on serial console" |
| 231 | depends on GRUB_IMAGES || GRUB_EFI_IMAGES |
| 232 | depends on TARGET_SERIAL != "" |
| 233 | |
| 234 | config GRUB_BOOTOPTS |
| 235 | string "Extra kernel boot options" |
| 236 | depends on GRUB_IMAGES || GRUB_EFI_IMAGES |
| 237 | help |
| 238 | If you don't know, just leave it blank. |
| 239 | |
| 240 | config GRUB_TIMEOUT |
| 241 | string "Seconds to wait before booting the default entry" |
| 242 | depends on GRUB_IMAGES || GRUB_EFI_IMAGES |
| 243 | default "5" |
| 244 | help |
| 245 | If you don't know, 5 seconds is a reasonable default. |
| 246 | |
| 247 | config GRUB_TITLE |
| 248 | string "Title for the menu entry in GRUB" |
| 249 | depends on GRUB_IMAGES || GRUB_EFI_IMAGES |
| 250 | default "OpenWrt" |
| 251 | help |
| 252 | This is the title of the GRUB menu entry. |
| 253 | If unspecified, it defaults to OpenWrt. |
| 254 | |
| 255 | config ISO_IMAGES |
| 256 | bool "Build LiveCD image (ISO)" |
| 257 | depends on TARGET_x86 |
| 258 | depends on GRUB_IMAGES || GRUB_EFI_IMAGES |
| 259 | |
| 260 | config VDI_IMAGES |
| 261 | bool "Build VirtualBox image files (VDI)" |
| 262 | depends on TARGET_x86 |
| 263 | depends on GRUB_IMAGES || GRUB_EFI_IMAGES |
| 264 | select PACKAGE_kmod-e1000 |
| 265 | |
| 266 | config VMDK_IMAGES |
| 267 | bool "Build VMware image files (VMDK)" |
| 268 | depends on TARGET_x86 || TARGET_armsr |
| 269 | depends on GRUB_IMAGES || GRUB_EFI_IMAGES |
| 270 | select PACKAGE_kmod-e1000 |
| 271 | |
| 272 | config VHDX_IMAGES |
| 273 | bool "Build Hyper-V image files (VHDX)" |
| 274 | depends on TARGET_x86 |
| 275 | depends on GRUB_IMAGES || GRUB_EFI_IMAGES |
| 276 | select PACKAGE_kmod-e1000 |
| 277 | |
| 278 | config TARGET_SERIAL |
| 279 | string "Serial port device" |
| 280 | depends on TARGET_x86 || TARGET_armsr || TARGET_loongarch64 |
| 281 | default "ttyS0" |
| 282 | |
| 283 | config TARGET_IMAGES_GZIP |
| 284 | bool "GZip images" |
| 285 | depends on TARGET_ROOTFS_EXT4FS || TARGET_x86 || TARGET_armsr || TARGET_malta || TARGET_loongarch64 |
| 286 | default y |
| 287 | |
| 288 | comment "Image Options" |
| 289 | |
| 290 | source "target/linux/*/image/Config.in" |
| 291 | source "target/linux/*/*/image/Config.in" |
| 292 | |
| 293 | config TARGET_KERNEL_PARTSIZE |
| 294 | int "Kernel partition size (in MiB)" |
| 295 | depends on USES_BOOT_PART |
| 296 | default 8 if TARGET_apm821xx_sata |
| 297 | default 64 if TARGET_bcm27xx |
| 298 | default 128 if TARGET_armsr |
| 299 | default 16 |
| 300 | |
| 301 | config TARGET_ROOTFS_PARTSIZE |
| 302 | int "Root filesystem partition size (in MiB)" |
| 303 | depends on USES_ROOTFS_PART || TARGET_ROOTFS_EXT4FS |
| 304 | default 232 if TARGET_loongarch64 |
| 305 | default 448 if TARGET_mediatek |
| 306 | default 104 |
| 307 | help |
| 308 | Select the root filesystem partition size. |
| 309 | |
| 310 | config TARGET_ROOTFS_PARTNAME |
| 311 | string "Root partition on target device" |
| 312 | depends on GRUB_IMAGES || GRUB_EFI_IMAGES |
| 313 | help |
| 314 | Override the root partition on the final device. If left empty, |
| 315 | it will be mounted by PARTUUID which makes the kernel find the |
| 316 | appropriate disk automatically. |
| 317 | |
| 318 | config TARGET_ROOTFS_PERSIST_VAR |
| 319 | bool "Make /var persistent" |
| 320 | help |
| 321 | Do not symlink /var to /tmp, so that its content will persist |
| 322 | across reboots. When enabled, /var/run will still be linked |
| 323 | to /tmp/run. |
| 324 | |
| 325 | endmenu |