1 # SPDX-License-Identifier: GPL-2.0-only
3 # Copyright (C) 2006-2013 OpenWrt.org
7 menuconfig TARGET_ROOTFS_INITRAMFS
9 default y if USES_INITRAMFS
11 Embed the root filesystem into the kernel (initramfs).
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_ipq807x
21 default TARGET_INITRAMFS_COMPRESSION_XZ if USES_SEPARATE_INITRAMFS
22 default TARGET_INITRAMFS_COMPRESSION_NONE
23 depends on TARGET_ROOTFS_INITRAMFS
25 Select ramdisk compression.
27 config TARGET_INITRAMFS_COMPRESSION_NONE
30 config TARGET_INITRAMFS_COMPRESSION_GZIP
33 config TARGET_INITRAMFS_COMPRESSION_BZIP2
36 config TARGET_INITRAMFS_COMPRESSION_LZMA
39 config TARGET_INITRAMFS_COMPRESSION_LZO
40 depends on !TARGET_ROOTFS_INITRAMFS_SEPARATE
43 config TARGET_INITRAMFS_COMPRESSION_LZ4
44 depends on !TARGET_ROOTFS_INITRAMFS_SEPARATE
47 config TARGET_INITRAMFS_COMPRESSION_XZ
50 config TARGET_INITRAMFS_COMPRESSION_ZSTD
56 prompt "Use external cpio" if TARGET_ROOTFS_INITRAMFS
59 Kernel uses specified external cpio as INITRAMFS_SOURCE.
61 config TARGET_INITRAMFS_FORCE
63 depends on TARGET_ROOTFS_INITRAMFS
66 Ignore the initramfs passed by the bootloader.
68 config TARGET_ROOTFS_INITRAMFS_SEPARATE
69 bool "separate ramdisk"
70 depends on USES_SEPARATE_INITRAMFS && TARGET_ROOTFS_INITRAMFS && !TARGET_INITRAMFS_FORCE
71 default y if USES_SEPARATE_INITRAMFS
73 Generate separate initrd.cpio instead of embedding it.
74 This is useful for generating images with a dedicated
75 ramdisk e.g. in U-Boot's uImage and uImage.FIT formats.
77 comment "Root filesystem archives"
79 config TARGET_ROOTFS_CPIOGZ
81 default y if USES_CPIOGZ
83 Build a compressed cpio archive of the root filesystem.
85 config TARGET_ROOTFS_TARGZ
87 default y if USES_TARGZ
89 Build a compressed tar archive of the root filesystem.
91 comment "Root filesystem images"
93 menuconfig TARGET_ROOTFS_EXT4FS
95 default y if USES_EXT4
97 Build an ext4 root filesystem.
99 config TARGET_EXT4_RESERVED_PCT
100 int "Percentage of reserved blocks in root filesystem"
101 depends on TARGET_ROOTFS_EXT4FS
104 Select the percentage of reserved blocks in the root filesystem.
107 prompt "Root filesystem block size"
108 default TARGET_EXT4_BLOCKSIZE_4K
109 depends on TARGET_ROOTFS_EXT4FS
111 Select the block size of the root filesystem.
113 config TARGET_EXT4_BLOCKSIZE_4K
116 config TARGET_EXT4_BLOCKSIZE_2K
119 config TARGET_EXT4_BLOCKSIZE_1K
123 config TARGET_EXT4_BLOCKSIZE
125 default 4096 if TARGET_EXT4_BLOCKSIZE_4K
126 default 2048 if TARGET_EXT4_BLOCKSIZE_2K
127 default 1024 if TARGET_EXT4_BLOCKSIZE_1K
128 depends on TARGET_ROOTFS_EXT4FS
130 config TARGET_EXT4_JOURNAL
131 bool "Create a journaling filesystem"
132 depends on TARGET_ROOTFS_EXT4FS
135 Create an ext4 filesystem with a journal.
137 config TARGET_ROOTFS_JFFS2
139 depends on USES_JFFS2
141 Build a JFFS2 root filesystem.
143 config TARGET_ROOTFS_JFFS2_NAND
144 bool "jffs2 for NAND"
145 default y if USES_JFFS2_NAND
146 depends on USES_JFFS2_NAND
148 Build a JFFS2 root filesystem for NAND flash.
150 menuconfig TARGET_ROOTFS_SQUASHFS
152 default y if USES_SQUASHFS
154 Build a squashfs root filesystem.
156 config TARGET_SQUASHFS_BLOCK_SIZE
157 int "Block size (in KiB)"
158 depends on TARGET_ROOTFS_SQUASHFS
159 default 64 if LOW_MEMORY_FOOTPRINT
160 default 1024 if (SMALL_FLASH && !LOW_MEMORY_FOOTPRINT)
163 Select squashfs block size, must be one of:
164 4, 8, 16, 32, 64, 128, 256, 512, 1024
166 menuconfig TARGET_ROOTFS_UBIFS
168 default y if USES_UBIFS
169 depends on USES_UBIFS
171 Build a UBIFS root filesystem.
175 default TARGET_UBIFS_COMPRESSION_ZLIB
176 depends on TARGET_ROOTFS_UBIFS
178 Select compression type
180 config TARGET_UBIFS_COMPRESSION_NONE
183 config TARGET_UBIFS_COMPRESSION_LZO
186 config TARGET_UBIFS_COMPRESSION_ZLIB
190 config TARGET_UBIFS_FREE_SPACE_FIXUP
191 bool "free space fixup" if TARGET_ROOTFS_UBIFS
194 The filesystem free space has to be fixed up on first mount.
196 config TARGET_UBIFS_JOURNAL_SIZE
198 prompt "journal size" if TARGET_ROOTFS_UBIFS
202 bool "Build GRUB images (Linux x86 or x86_64 host only)"
203 depends on TARGET_x86
204 depends on TARGET_ROOTFS_EXT4FS || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS
206 select PACKAGE_grub2-bios-setup
209 config GRUB_EFI_IMAGES
210 bool "Build GRUB EFI images (Linux x86 or x86_64 host only)"
211 depends on TARGET_x86
212 depends on TARGET_ROOTFS_EXT4FS || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS
214 select PACKAGE_grub2-efi
215 select PACKAGE_grub2-bios-setup
216 select PACKAGE_kmod-fs-vfat
220 bool "Use Console Terminal (in addition to Serial)"
221 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
225 string "Serial port device"
226 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
230 int "Serial port baud rate"
231 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
232 default 38400 if TARGET_x86_generic
235 config GRUB_FLOWCONTROL
236 bool "Use RTE/CTS on serial console"
237 depends on GRUB_SERIAL != ""
241 string "Extra kernel boot options"
242 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
244 If you don't know, just leave it blank.
247 string "Seconds to wait before booting the default entry"
248 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
251 If you don't know, 5 seconds is a reasonable default.
254 string "Title for the menu entry in GRUB"
255 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
258 This is the title of the GRUB menu entry.
259 If unspecified, it defaults to OpenWrt.
262 bool "Build LiveCD image (ISO)"
263 depends on TARGET_x86
264 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
267 bool "Build VirtualBox image files (VDI)"
268 depends on TARGET_x86
269 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
270 select PACKAGE_kmod-e1000
273 bool "Build VMware image files (VMDK)"
274 depends on TARGET_x86
275 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
276 select PACKAGE_kmod-e1000
279 bool "Build Hyper-V image files (VHDX)"
280 depends on TARGET_x86
281 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
282 select PACKAGE_kmod-e1000
284 config TARGET_IMAGES_GZIP
286 depends on TARGET_ROOTFS_EXT4FS || TARGET_x86 || TARGET_armvirt || TARGET_malta
289 comment "Image Options"
291 source "target/linux/*/image/Config.in"
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
300 config TARGET_ROOTFS_PARTSIZE
301 int "Root filesystem partition size (in MiB)"
302 depends on USES_ROOTFS_PART || TARGET_ROOTFS_EXT4FS
305 Select the root filesystem partition size.
307 config TARGET_ROOTFS_PARTNAME
308 string "Root partition on target device"
309 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
311 Override the root partition on the final device. If left empty,
312 it will be mounted by PARTUUID which makes the kernel find the
313 appropriate disk automatically.
315 config TARGET_ROOTFS_PERSIST_VAR
316 bool "Make /var persistent"
319 Do not symlink /var to /tmp, so that its content will persist
320 across reboots. When enabled, /var/run will still be linked