1# Copyright (C) 2006-2013 OpenWrt.org
2#
3# This is free software, licensed under the GNU General Public License v2.
4# See /LICENSE for more information.
5#
6
7menu "Target Images"
8
9	menuconfig TARGET_ROOTFS_INITRAMFS
10		bool "ramdisk"
11		default y if USES_INITRAMFS
12		help
13		  Embed the root filesystem into the kernel (initramfs).
14
15		choice
16			prompt "Compression"
17			default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ar71xx
18			default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ramips
19			default TARGET_INITRAMFS_COMPRESSION_NONE
20			depends on TARGET_ROOTFS_INITRAMFS
21			help
22			  Select ramdisk compression.
23
24			config TARGET_INITRAMFS_COMPRESSION_NONE
25				bool "none"
26
27			config TARGET_INITRAMFS_COMPRESSION_GZIP
28				bool "gzip"
29
30			config TARGET_INITRAMFS_COMPRESSION_BZIP2
31				bool "bzip2"
32
33			config TARGET_INITRAMFS_COMPRESSION_LZMA
34				bool "lzma"
35
36			config TARGET_INITRAMFS_COMPRESSION_LZO
37				bool "lzo"
38
39			config TARGET_INITRAMFS_COMPRESSION_LZ4
40				bool "lz4"
41
42			config TARGET_INITRAMFS_COMPRESSION_XZ
43				bool "xz"
44		endchoice
45
46		config EXTERNAL_CPIO
47			string
48			prompt "Use external cpio" if TARGET_ROOTFS_INITRAMFS
49			default ""
50			help
51			  Kernel uses specified external cpio as INITRAMFS_SOURCE.
52
53	comment "Root filesystem archives"
54
55	config TARGET_ROOTFS_CPIOGZ
56		bool "cpio.gz"
57		default y if USES_CPIOGZ
58		help
59		  Build a compressed cpio archive of the root filesystem.
60
61	config TARGET_ROOTFS_TARGZ
62		bool "tar.gz"
63		default y if USES_TARGZ
64		help
65		  Build a compressed tar archive of the root filesystem.
66
67	comment "Root filesystem images"
68
69	menuconfig TARGET_ROOTFS_EXT4FS
70		bool "ext4"
71		default y if USES_EXT4
72		help
73		  Build an ext4 root filesystem.
74
75		config TARGET_EXT4_MAXINODE
76			int "Maximum number of inodes in root filesystem"
77			depends on TARGET_ROOTFS_EXT4FS
78			default 6000
79			help
80			  Select the maximum number of inodes in the root filesystem.
81
82		config TARGET_EXT4_RESERVED_PCT
83			int "Percentage of reserved blocks in root filesystem"
84			depends on TARGET_ROOTFS_EXT4FS
85			default 0
86			help
87			  Select the percentage of reserved blocks in the root filesystem.
88
89		choice
90			prompt "Root filesystem block size"
91			default TARGET_EXT4_BLOCKSIZE_4K
92			depends on TARGET_ROOTFS_EXT4FS
93			help
94			  Select the block size of the root filesystem.
95
96			config TARGET_EXT4_BLOCKSIZE_4K
97				bool "4k"
98
99			config TARGET_EXT4_BLOCKSIZE_2K
100				bool "2k"
101
102			config TARGET_EXT4_BLOCKSIZE_1K
103				bool "1k"
104		endchoice
105
106		config TARGET_EXT4_BLOCKSIZE
107			int
108			default 4096 if TARGET_EXT4_BLOCKSIZE_4K
109			default 2048 if TARGET_EXT4_BLOCKSIZE_2K
110			default 1024 if TARGET_EXT4_BLOCKSIZE_1K
111			depends on TARGET_ROOTFS_EXT4FS
112
113		config TARGET_EXT4_JOURNAL
114			bool "Create a journaling filesystem"
115			depends on TARGET_ROOTFS_EXT4FS
116			default n
117			help
118			  Create an ext4 filesystem with a journal.
119
120	config TARGET_ROOTFS_ISO
121		bool "iso"
122		default n
123		depends on TARGET_x86_generic
124		help
125		  Create a bootable ISO image.
126
127	config TARGET_ROOTFS_JFFS2
128		bool "jffs2"
129		default y if USES_JFFS2
130		help
131		  Build a JFFS2 root filesystem.
132
133	config TARGET_ROOTFS_JFFS2_NAND
134		bool "jffs2 for NAND"
135		default y if USES_JFFS2_NAND
136		depends on USES_JFFS2_NAND
137		help
138		  Build a JFFS2 root filesystem for NAND flash.
139
140	menuconfig TARGET_ROOTFS_SQUASHFS
141		bool "squashfs"
142		default y if USES_SQUASHFS
143		help
144		  Build a squashfs-lzma root filesystem.
145
146		config TARGET_SQUASHFS_BLOCK_SIZE
147			int "Block size (in KiB)"
148			depends on TARGET_ROOTFS_SQUASHFS
149			default 64 if LOW_MEMORY_FOOTPRINT
150			default 256
151
152	menuconfig TARGET_ROOTFS_UBIFS
153		bool "ubifs"
154		default y if USES_UBIFS
155		depends on USES_UBIFS
156		help
157		  Build a UBIFS root filesystem.
158
159		choice
160			prompt "compression"
161			default TARGET_UBIFS_COMPRESSION_ZLIB
162			depends on TARGET_ROOTFS_UBIFS
163			help
164			  Select compression type
165
166			config TARGET_UBIFS_COMPRESSION_NONE
167				bool "none"
168
169			config TARGET_UBIFS_COMPRESSION_LZO
170				bool "lzo"
171
172			config TARGET_UBIFS_COMPRESSION_ZLIB
173				bool "zlib"
174		endchoice
175
176		config TARGET_UBIFS_FREE_SPACE_FIXUP
177			bool "free space fixup" if TARGET_ROOTFS_UBIFS
178			default y
179			help
180			  The filesystem free space has to be fixed up on first mount.
181
182		config TARGET_UBIFS_JOURNAL_SIZE
183			string
184			prompt "journal size" if TARGET_ROOTFS_UBIFS
185			default ""
186
187	config GRUB_IMAGES
188		bool "Build GRUB images (Linux x86 or x86_64 host only)"
189		depends on TARGET_x86_64 || (TARGET_x86 && !TARGET_x86_rdc)
190		depends on TARGET_ROOTFS_EXT4FS || TARGET_ROOTFS_ISO || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS
191		select PACKAGE_grub2
192		default y
193
194	config GRUB_CONSOLE
195		bool "Use Console Terminal (in addition to Serial)"
196		depends on GRUB_IMAGES
197		default n if (TARGET_x86_generic_Soekris45xx || TARGET_x86_generic_Soekris48xx || TARGET_x86_net5501 || TARGET_x86_geos || TARGET_x86_alix2)
198		default y
199
200	config GRUB_SERIAL
201		string "Serial port device"
202		depends on GRUB_IMAGES
203		default "hvc0" if TARGET_x86_xen_domu
204		default "ttyS0" if ! TARGET_x86_xen_domu
205
206	config GRUB_BAUDRATE
207		int "Serial port baud rate"
208		depends on GRUB_IMAGES
209		default 38400 if TARGET_x86_generic
210		default 38400 if TARGET_x86_geode
211		default 115200
212
213	config GRUB_BOOTOPTS
214		string "Extra kernel boot options"
215		depends on GRUB_IMAGES
216		default "xencons=hvc" if TARGET_x86_xen_domu
217		help
218		  If you don't know, just leave it blank.
219
220	config GRUB_TIMEOUT
221		string "Seconds to wait before booting the default entry"
222		depends on GRUB_IMAGES
223		default "5"
224		help
225		  If you don't know, 5 seconds is a reasonable default.
226
227	config VDI_IMAGES
228		bool "Build VirtualBox image files (VDI)"
229		depends on TARGET_x86 || TARGET_x86_64
230		select GRUB_IMAGES
231		select TARGET_IMAGES_PAD
232		select PACKAGE_kmod-e1000
233
234	config VMDK_IMAGES
235		bool "Build VMware image files (VMDK)"
236		depends on TARGET_x86 || TARGET_x86_64
237		select GRUB_IMAGES
238		select TARGET_IMAGES_PAD
239		select PACKAGE_kmod-e1000
240
241	config TARGET_IMAGES_PAD
242		bool "Pad images to filesystem size (for JFFS2)"
243		depends on GRUB_IMAGES
244
245	config TARGET_IMAGES_GZIP
246		bool "GZip images"
247		depends on TARGET_IMAGES_PAD || TARGET_ROOTFS_EXT4FS
248		default y
249
250	comment "Image Options"
251
252	source "target/linux/*/image/Config.in"
253
254	config TARGET_KERNEL_PARTSIZE
255		int "Kernel partition size (in MB)"
256		depends on GRUB_IMAGES
257		default 4
258
259	config TARGET_ROOTFS_PARTSIZE
260		int "Root filesystem partition size (in MB)"
261		depends on GRUB_IMAGES || TARGET_ROOTFS_EXT4FS || TARGET_rb532
262		default 48
263		help
264		  Select the root filesystem partition size.
265
266	config TARGET_ROOTFS_PARTNAME
267		string "Root partition on target device"
268		depends on GRUB_IMAGES
269		help
270		  Override the root partition on the final device. If left empty,
271		  it will be mounted by PARTUUID which makes the kernel find the
272		  appropriate disk automatically.
273
274
275	menuconfig TARGET_ROOTFS_INCLUDE_KERNEL
276		bool "Include kernel in root filesystem"
277		depends on TARGET_ROOTFS_UBIFS || TARGET_ROOTFS_EXT4FS
278		default n
279		help
280		  Include the kernel image in the rootfs. Typically, the image is placed
281		  below /boot.
282
283		config TARGET_ROOTFS_INCLUDE_UIMAGE
284			bool "include uImage" if TARGET_ROOTFS_INCLUDE_KERNEL
285			default y
286			help
287			  This option might not apply to all targets. Make sure
288			  to check target/linux/<your_target>/image/Makefile to
289			  see if this option will have any effect.
290
291		config TARGET_ROOTFS_INCLUDE_ZIMAGE
292			bool "include zImage" if TARGET_ROOTFS_INCLUDE_KERNEL
293			default y
294			help
295			  This option might not apply to all targets. Make sure
296			  to check target/linux/<your_target>/image/Makefile to
297			  see if this option will have any effect.
298
299		config TARGET_ROOTFS_INCLUDE_FIT
300			bool "include FIT" if TARGET_ROOTFS_INCLUDE_KERNEL
301			default y
302			help
303			  This option might not apply to all targets. Make sure
304			  to check target/linux/<your_target>/image/Makefile to
305			  see if this option will have any effect.
306
307	config TARGET_ROOTFS_INCLUDE_DTB
308		bool "Include DTB in root filesystem"
309		depends on USES_DEVICETREE && (TARGET_ROOTFS_UBIFS || TARGET_ROOTFS_EXT4FS)
310		default n
311		help
312		  Include the device tree blob file(s) in the rootfs. Typically the DTBs
313		  are placed below /boot.
314
315endmenu
316