2020-09-22 02:48:37 +00:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
2013-11-22 14:30:40 +00:00
|
|
|
#
|
2020-09-22 02:48:37 +00:00
|
|
|
# Copyright (C) 2006-2013 OpenWrt.org
|
2013-11-22 14:30:40 +00:00
|
|
|
|
|
|
|
menu "Target Images"
|
|
|
|
|
|
|
|
menuconfig TARGET_ROOTFS_INITRAMFS
|
|
|
|
bool "ramdisk"
|
|
|
|
default y if USES_INITRAMFS
|
|
|
|
help
|
2014-09-13 20:27:25 +00:00
|
|
|
Embed the root filesystem into the kernel (initramfs).
|
2013-11-22 14:30:40 +00:00
|
|
|
|
|
|
|
choice
|
|
|
|
prompt "Compression"
|
2016-07-23 12:20:52 +00:00
|
|
|
default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_apm821xx
|
2020-05-26 01:10:00 +00:00
|
|
|
default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ath79_mikrotik
|
2019-04-27 16:23:21 +00:00
|
|
|
default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_lantiq
|
2017-09-30 16:13:35 +00:00
|
|
|
default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_mpc85xx
|
2019-04-27 16:23:21 +00:00
|
|
|
default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ramips
|
2023-06-11 17:32:52 +00:00
|
|
|
default TARGET_INITRAMFS_COMPRESSION_ZSTD if TARGET_qualcommax
|
2021-02-28 23:58:10 +00:00
|
|
|
default TARGET_INITRAMFS_COMPRESSION_XZ if USES_SEPARATE_INITRAMFS
|
2013-11-22 14:30:40 +00:00
|
|
|
default TARGET_INITRAMFS_COMPRESSION_NONE
|
|
|
|
depends on TARGET_ROOTFS_INITRAMFS
|
|
|
|
help
|
|
|
|
Select ramdisk compression.
|
|
|
|
|
|
|
|
config TARGET_INITRAMFS_COMPRESSION_NONE
|
|
|
|
bool "none"
|
|
|
|
|
|
|
|
config TARGET_INITRAMFS_COMPRESSION_GZIP
|
|
|
|
bool "gzip"
|
|
|
|
|
|
|
|
config TARGET_INITRAMFS_COMPRESSION_BZIP2
|
|
|
|
bool "bzip2"
|
|
|
|
|
|
|
|
config TARGET_INITRAMFS_COMPRESSION_LZMA
|
|
|
|
bool "lzma"
|
|
|
|
|
|
|
|
config TARGET_INITRAMFS_COMPRESSION_LZO
|
|
|
|
bool "lzo"
|
|
|
|
|
|
|
|
config TARGET_INITRAMFS_COMPRESSION_LZ4
|
|
|
|
bool "lz4"
|
|
|
|
|
|
|
|
config TARGET_INITRAMFS_COMPRESSION_XZ
|
|
|
|
bool "xz"
|
2020-10-23 09:48:11 +00:00
|
|
|
|
|
|
|
config TARGET_INITRAMFS_COMPRESSION_ZSTD
|
|
|
|
bool "zstd"
|
2013-11-22 14:30:40 +00:00
|
|
|
endchoice
|
|
|
|
|
|
|
|
config EXTERNAL_CPIO
|
|
|
|
string
|
|
|
|
prompt "Use external cpio" if TARGET_ROOTFS_INITRAMFS
|
|
|
|
default ""
|
|
|
|
help
|
2014-09-13 20:27:25 +00:00
|
|
|
Kernel uses specified external cpio as INITRAMFS_SOURCE.
|
2013-11-22 14:30:40 +00:00
|
|
|
|
2018-01-11 11:55:02 +00:00
|
|
|
config TARGET_INITRAMFS_FORCE
|
2021-02-21 14:19:26 +00:00
|
|
|
bool "Force"
|
|
|
|
depends on TARGET_ROOTFS_INITRAMFS
|
|
|
|
help
|
|
|
|
Ignore the initramfs passed by the bootloader.
|
|
|
|
|
2021-02-28 23:58:10 +00:00
|
|
|
config TARGET_ROOTFS_INITRAMFS_SEPARATE
|
|
|
|
bool "separate ramdisk"
|
|
|
|
depends on USES_SEPARATE_INITRAMFS && TARGET_ROOTFS_INITRAMFS && !TARGET_INITRAMFS_FORCE
|
|
|
|
default y if USES_SEPARATE_INITRAMFS
|
2021-02-21 14:19:26 +00:00
|
|
|
help
|
2021-02-28 23:58:10 +00:00
|
|
|
Generate separate initrd.cpio instead of embedding it.
|
2021-02-21 14:19:26 +00:00
|
|
|
This is useful for generating images with a dedicated
|
|
|
|
ramdisk e.g. in U-Boot's uImage and uImage.FIT formats.
|
2018-01-11 11:55:02 +00:00
|
|
|
|
2013-11-22 14:30:40 +00:00
|
|
|
comment "Root filesystem archives"
|
|
|
|
|
|
|
|
config TARGET_ROOTFS_CPIOGZ
|
|
|
|
bool "cpio.gz"
|
|
|
|
default y if USES_CPIOGZ
|
|
|
|
help
|
2014-09-13 20:27:25 +00:00
|
|
|
Build a compressed cpio archive of the root filesystem.
|
2013-11-22 14:30:40 +00:00
|
|
|
|
|
|
|
config TARGET_ROOTFS_TARGZ
|
|
|
|
bool "tar.gz"
|
|
|
|
default y if USES_TARGZ
|
|
|
|
help
|
2014-09-13 20:27:25 +00:00
|
|
|
Build a compressed tar archive of the root filesystem.
|
2013-11-22 14:30:40 +00:00
|
|
|
|
|
|
|
comment "Root filesystem images"
|
|
|
|
|
2014-06-02 12:43:53 +00:00
|
|
|
menuconfig TARGET_ROOTFS_EXT4FS
|
2013-11-22 14:30:40 +00:00
|
|
|
bool "ext4"
|
|
|
|
default y if USES_EXT4
|
|
|
|
help
|
2014-09-13 20:27:25 +00:00
|
|
|
Build an ext4 root filesystem.
|
2014-06-02 12:43:53 +00:00
|
|
|
|
2014-06-02 12:44:10 +00:00
|
|
|
config TARGET_EXT4_RESERVED_PCT
|
2014-06-02 12:43:53 +00:00
|
|
|
int "Percentage of reserved blocks in root filesystem"
|
|
|
|
depends on TARGET_ROOTFS_EXT4FS
|
|
|
|
default 0
|
|
|
|
help
|
2014-09-13 20:27:25 +00:00
|
|
|
Select the percentage of reserved blocks in the root filesystem.
|
2013-11-22 14:30:40 +00:00
|
|
|
|
2014-06-02 12:44:04 +00:00
|
|
|
choice
|
2014-06-02 13:03:15 +00:00
|
|
|
prompt "Root filesystem block size"
|
2014-06-02 12:44:04 +00:00
|
|
|
default TARGET_EXT4_BLOCKSIZE_4K
|
2014-06-02 13:03:15 +00:00
|
|
|
depends on TARGET_ROOTFS_EXT4FS
|
2014-06-02 12:44:04 +00:00
|
|
|
help
|
2014-09-13 20:27:25 +00:00
|
|
|
Select the block size of the root filesystem.
|
2014-06-02 12:44:04 +00:00
|
|
|
|
|
|
|
config TARGET_EXT4_BLOCKSIZE_4K
|
|
|
|
bool "4k"
|
|
|
|
|
|
|
|
config TARGET_EXT4_BLOCKSIZE_2K
|
|
|
|
bool "2k"
|
|
|
|
|
|
|
|
config TARGET_EXT4_BLOCKSIZE_1K
|
|
|
|
bool "1k"
|
|
|
|
endchoice
|
|
|
|
|
|
|
|
config TARGET_EXT4_BLOCKSIZE
|
|
|
|
int
|
|
|
|
default 4096 if TARGET_EXT4_BLOCKSIZE_4K
|
|
|
|
default 2048 if TARGET_EXT4_BLOCKSIZE_2K
|
|
|
|
default 1024 if TARGET_EXT4_BLOCKSIZE_1K
|
2014-06-02 13:03:15 +00:00
|
|
|
depends on TARGET_ROOTFS_EXT4FS
|
2014-06-02 12:44:04 +00:00
|
|
|
|
2014-06-02 12:44:07 +00:00
|
|
|
config TARGET_EXT4_JOURNAL
|
|
|
|
bool "Create a journaling filesystem"
|
|
|
|
depends on TARGET_ROOTFS_EXT4FS
|
2024-03-26 01:56:06 +00:00
|
|
|
default y
|
2014-06-02 12:44:07 +00:00
|
|
|
help
|
2014-09-13 20:27:25 +00:00
|
|
|
Create an ext4 filesystem with a journal.
|
2014-06-02 12:44:07 +00:00
|
|
|
|
2013-11-22 14:30:40 +00:00
|
|
|
config TARGET_ROOTFS_JFFS2
|
|
|
|
bool "jffs2"
|
2016-07-19 10:21:29 +00:00
|
|
|
depends on USES_JFFS2
|
2013-11-22 14:30:40 +00:00
|
|
|
help
|
2014-09-13 20:27:25 +00:00
|
|
|
Build a JFFS2 root filesystem.
|
2013-11-22 14:30:40 +00:00
|
|
|
|
|
|
|
config TARGET_ROOTFS_JFFS2_NAND
|
|
|
|
bool "jffs2 for NAND"
|
|
|
|
default y if USES_JFFS2_NAND
|
|
|
|
depends on USES_JFFS2_NAND
|
|
|
|
help
|
2014-09-13 20:27:25 +00:00
|
|
|
Build a JFFS2 root filesystem for NAND flash.
|
2013-11-22 14:30:40 +00:00
|
|
|
|
2014-06-02 17:04:34 +00:00
|
|
|
menuconfig TARGET_ROOTFS_SQUASHFS
|
2013-11-22 14:30:40 +00:00
|
|
|
bool "squashfs"
|
|
|
|
default y if USES_SQUASHFS
|
|
|
|
help
|
build: images: squashfs: add help, fix description
add help text for `TARGET_SQUASHFS_BLOCK_SIZE` to match the only valid
settings accepted by `mksquashfs4` ("block size not power of two or not
between 4096 and 1Mbyte") thus for this setting in "KB", the set:
`4, 8, 16, 32, 64, 128, 256, 512, 1024`
replace `squashfs-lzma` with `squashfs` in the description for
`TARGET_ROOTFS_SQUASHFS` because it has various compressions, and not
just lzma as it did in the past
cosmetic change with no functional effect
Signed-off-by: Tony Butler <spudz76@gmail.com>
2022-11-28 12:00:02 +00:00
|
|
|
Build a squashfs root filesystem.
|
2013-11-22 14:30:40 +00:00
|
|
|
|
2014-06-02 17:04:34 +00:00
|
|
|
config TARGET_SQUASHFS_BLOCK_SIZE
|
|
|
|
int "Block size (in KiB)"
|
|
|
|
depends on TARGET_ROOTFS_SQUASHFS
|
2014-06-02 17:04:41 +00:00
|
|
|
default 64 if LOW_MEMORY_FOOTPRINT
|
2018-07-09 17:09:05 +00:00
|
|
|
default 1024 if (SMALL_FLASH && !LOW_MEMORY_FOOTPRINT)
|
2014-06-02 17:04:34 +00:00
|
|
|
default 256
|
build: images: squashfs: add help, fix description
add help text for `TARGET_SQUASHFS_BLOCK_SIZE` to match the only valid
settings accepted by `mksquashfs4` ("block size not power of two or not
between 4096 and 1Mbyte") thus for this setting in "KB", the set:
`4, 8, 16, 32, 64, 128, 256, 512, 1024`
replace `squashfs-lzma` with `squashfs` in the description for
`TARGET_ROOTFS_SQUASHFS` because it has various compressions, and not
just lzma as it did in the past
cosmetic change with no functional effect
Signed-off-by: Tony Butler <spudz76@gmail.com>
2022-11-28 12:00:02 +00:00
|
|
|
help
|
|
|
|
Select squashfs block size, must be one of:
|
|
|
|
4, 8, 16, 32, 64, 128, 256, 512, 1024
|
2014-06-02 17:04:34 +00:00
|
|
|
|
2013-11-22 14:30:40 +00:00
|
|
|
menuconfig TARGET_ROOTFS_UBIFS
|
|
|
|
bool "ubifs"
|
|
|
|
default y if USES_UBIFS
|
|
|
|
depends on USES_UBIFS
|
|
|
|
help
|
2014-09-13 20:27:25 +00:00
|
|
|
Build a UBIFS root filesystem.
|
2013-11-22 14:30:40 +00:00
|
|
|
|
|
|
|
choice
|
|
|
|
prompt "compression"
|
2014-06-24 18:14:05 +00:00
|
|
|
default TARGET_UBIFS_COMPRESSION_ZLIB
|
2013-11-22 14:30:40 +00:00
|
|
|
depends on TARGET_ROOTFS_UBIFS
|
|
|
|
help
|
|
|
|
Select compression type
|
|
|
|
|
|
|
|
config TARGET_UBIFS_COMPRESSION_NONE
|
|
|
|
bool "none"
|
|
|
|
|
|
|
|
config TARGET_UBIFS_COMPRESSION_LZO
|
|
|
|
bool "lzo"
|
|
|
|
|
|
|
|
config TARGET_UBIFS_COMPRESSION_ZLIB
|
|
|
|
bool "zlib"
|
|
|
|
endchoice
|
|
|
|
|
|
|
|
config TARGET_UBIFS_FREE_SPACE_FIXUP
|
|
|
|
bool "free space fixup" if TARGET_ROOTFS_UBIFS
|
|
|
|
default y
|
|
|
|
help
|
2014-09-13 20:27:25 +00:00
|
|
|
The filesystem free space has to be fixed up on first mount.
|
2013-11-22 14:30:40 +00:00
|
|
|
|
|
|
|
config TARGET_UBIFS_JOURNAL_SIZE
|
|
|
|
string
|
|
|
|
prompt "journal size" if TARGET_ROOTFS_UBIFS
|
|
|
|
default ""
|
|
|
|
|
2014-01-07 10:18:55 +00:00
|
|
|
config GRUB_IMAGES
|
|
|
|
bool "Build GRUB images (Linux x86 or x86_64 host only)"
|
2016-05-12 15:43:17 +00:00
|
|
|
depends on TARGET_x86
|
2020-03-20 10:10:55 +00:00
|
|
|
depends on TARGET_ROOTFS_EXT4FS || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS
|
2014-01-07 10:18:55 +00:00
|
|
|
select PACKAGE_grub2
|
2020-07-25 04:04:05 +00:00
|
|
|
select PACKAGE_grub2-bios-setup
|
2014-01-07 10:18:55 +00:00
|
|
|
default y
|
|
|
|
|
2020-03-26 06:05:33 +00:00
|
|
|
config GRUB_EFI_IMAGES
|
2024-01-06 19:10:45 +00:00
|
|
|
bool "Build GRUB EFI images"
|
|
|
|
depends on TARGET_x86 || TARGET_armsr || TARGET_loongarch64
|
2020-03-26 06:05:33 +00:00
|
|
|
depends on TARGET_ROOTFS_EXT4FS || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS
|
2021-02-24 04:53:40 +00:00
|
|
|
select PACKAGE_grub2 if TARGET_x86
|
|
|
|
select PACKAGE_grub2-efi if TARGET_x86
|
|
|
|
select PACKAGE_grub2-bios-setup if TARGET_x86
|
2023-06-06 23:22:01 +00:00
|
|
|
select PACKAGE_grub2-efi-arm if TARGET_armsr
|
2024-01-06 19:10:45 +00:00
|
|
|
select PACKAGE_grub2-efi-loongarch64 if TARGET_loongarch64
|
2020-03-26 06:05:33 +00:00
|
|
|
select PACKAGE_kmod-fs-vfat
|
|
|
|
default y
|
|
|
|
|
2014-01-07 10:18:55 +00:00
|
|
|
config GRUB_CONSOLE
|
|
|
|
bool "Use Console Terminal (in addition to Serial)"
|
2020-03-26 06:05:33 +00:00
|
|
|
depends on GRUB_IMAGES || GRUB_EFI_IMAGES
|
2014-01-07 10:18:55 +00:00
|
|
|
default y
|
|
|
|
|
|
|
|
config GRUB_BAUDRATE
|
|
|
|
int "Serial port baud rate"
|
2020-03-26 06:05:33 +00:00
|
|
|
depends on GRUB_IMAGES || GRUB_EFI_IMAGES
|
2015-03-29 04:31:21 +00:00
|
|
|
default 38400 if TARGET_x86_generic
|
|
|
|
default 115200
|
2014-01-07 10:18:55 +00:00
|
|
|
|
2017-02-07 03:33:36 +00:00
|
|
|
config GRUB_FLOWCONTROL
|
|
|
|
bool "Use RTE/CTS on serial console"
|
2023-11-26 22:04:04 +00:00
|
|
|
depends on GRUB_IMAGES || GRUB_EFI_IMAGES
|
|
|
|
depends on TARGET_SERIAL != ""
|
2017-02-07 03:33:36 +00:00
|
|
|
|
2014-01-07 10:18:55 +00:00
|
|
|
config GRUB_BOOTOPTS
|
|
|
|
string "Extra kernel boot options"
|
2020-03-26 06:05:33 +00:00
|
|
|
depends on GRUB_IMAGES || GRUB_EFI_IMAGES
|
2014-01-07 10:18:55 +00:00
|
|
|
help
|
|
|
|
If you don't know, just leave it blank.
|
|
|
|
|
|
|
|
config GRUB_TIMEOUT
|
|
|
|
string "Seconds to wait before booting the default entry"
|
2020-03-26 06:05:33 +00:00
|
|
|
depends on GRUB_IMAGES || GRUB_EFI_IMAGES
|
2014-01-07 10:18:55 +00:00
|
|
|
default "5"
|
|
|
|
help
|
|
|
|
If you don't know, 5 seconds is a reasonable default.
|
|
|
|
|
2018-06-05 13:47:05 +00:00
|
|
|
config GRUB_TITLE
|
|
|
|
string "Title for the menu entry in GRUB"
|
2020-03-26 06:05:33 +00:00
|
|
|
depends on GRUB_IMAGES || GRUB_EFI_IMAGES
|
2018-06-05 13:47:05 +00:00
|
|
|
default "OpenWrt"
|
|
|
|
help
|
|
|
|
This is the title of the GRUB menu entry.
|
|
|
|
If unspecified, it defaults to OpenWrt.
|
|
|
|
|
2020-03-20 10:10:55 +00:00
|
|
|
config ISO_IMAGES
|
|
|
|
bool "Build LiveCD image (ISO)"
|
|
|
|
depends on TARGET_x86
|
2020-03-26 06:05:33 +00:00
|
|
|
depends on GRUB_IMAGES || GRUB_EFI_IMAGES
|
2020-03-20 10:10:55 +00:00
|
|
|
|
2014-01-07 10:18:55 +00:00
|
|
|
config VDI_IMAGES
|
|
|
|
bool "Build VirtualBox image files (VDI)"
|
2019-01-13 20:37:47 +00:00
|
|
|
depends on TARGET_x86
|
2020-03-26 06:05:33 +00:00
|
|
|
depends on GRUB_IMAGES || GRUB_EFI_IMAGES
|
2014-01-07 10:21:31 +00:00
|
|
|
select PACKAGE_kmod-e1000
|
2014-01-07 10:18:55 +00:00
|
|
|
|
|
|
|
config VMDK_IMAGES
|
|
|
|
bool "Build VMware image files (VMDK)"
|
2023-06-06 23:22:01 +00:00
|
|
|
depends on TARGET_x86 || TARGET_armsr
|
2020-03-26 06:05:33 +00:00
|
|
|
depends on GRUB_IMAGES || GRUB_EFI_IMAGES
|
2014-01-07 10:18:55 +00:00
|
|
|
select PACKAGE_kmod-e1000
|
|
|
|
|
2021-01-09 21:23:09 +00:00
|
|
|
config VHDX_IMAGES
|
|
|
|
bool "Build Hyper-V image files (VHDX)"
|
|
|
|
depends on TARGET_x86
|
|
|
|
depends on GRUB_IMAGES || GRUB_EFI_IMAGES
|
|
|
|
select PACKAGE_kmod-e1000
|
|
|
|
|
2023-11-26 22:04:04 +00:00
|
|
|
config TARGET_SERIAL
|
|
|
|
string "Serial port device"
|
2024-01-06 19:10:45 +00:00
|
|
|
depends on TARGET_x86 || TARGET_armsr || TARGET_loongarch64
|
2023-11-26 22:04:04 +00:00
|
|
|
default "ttyS0"
|
|
|
|
|
2014-01-07 10:18:55 +00:00
|
|
|
config TARGET_IMAGES_GZIP
|
|
|
|
bool "GZip images"
|
2024-01-06 19:10:45 +00:00
|
|
|
depends on TARGET_ROOTFS_EXT4FS || TARGET_x86 || TARGET_armsr || TARGET_malta || TARGET_loongarch64
|
2014-01-07 10:18:55 +00:00
|
|
|
default y
|
|
|
|
|
2013-11-22 14:30:40 +00:00
|
|
|
comment "Image Options"
|
|
|
|
|
|
|
|
source "target/linux/*/image/Config.in"
|
2022-11-16 11:03:33 +00:00
|
|
|
source "target/linux/*/*/image/Config.in"
|
2013-11-22 14:30:40 +00:00
|
|
|
|
2014-01-07 10:18:55 +00:00
|
|
|
config TARGET_KERNEL_PARTSIZE
|
2021-06-16 14:15:59 +00:00
|
|
|
int "Kernel partition size (in MiB)"
|
2020-03-20 10:10:55 +00:00
|
|
|
depends on USES_BOOT_PART
|
2018-12-27 18:12:23 +00:00
|
|
|
default 8 if TARGET_apm821xx_sata
|
2020-02-08 20:58:55 +00:00
|
|
|
default 64 if TARGET_bcm27xx
|
2023-06-06 23:22:01 +00:00
|
|
|
default 128 if TARGET_armsr
|
2016-11-09 11:17:22 +00:00
|
|
|
default 16
|
2014-01-07 10:18:55 +00:00
|
|
|
|
2013-11-22 14:30:40 +00:00
|
|
|
config TARGET_ROOTFS_PARTSIZE
|
2021-06-16 14:15:59 +00:00
|
|
|
int "Root filesystem partition size (in MiB)"
|
2022-01-22 00:26:52 +00:00
|
|
|
depends on USES_ROOTFS_PART || TARGET_ROOTFS_EXT4FS
|
2024-01-06 19:10:45 +00:00
|
|
|
default 232 if TARGET_loongarch64
|
2024-04-30 21:21:16 +00:00
|
|
|
default 448 if TARGET_mediatek
|
2019-09-21 11:21:36 +00:00
|
|
|
default 104
|
2013-11-22 14:30:40 +00:00
|
|
|
help
|
2014-09-13 20:27:25 +00:00
|
|
|
Select the root filesystem partition size.
|
2013-11-22 14:30:40 +00:00
|
|
|
|
2014-01-07 10:18:55 +00:00
|
|
|
config TARGET_ROOTFS_PARTNAME
|
|
|
|
string "Root partition on target device"
|
2020-03-26 06:05:33 +00:00
|
|
|
depends on GRUB_IMAGES || GRUB_EFI_IMAGES
|
2014-01-07 10:18:55 +00:00
|
|
|
help
|
2014-10-27 14:35:39 +00:00
|
|
|
Override the root partition on the final device. If left empty,
|
|
|
|
it will be mounted by PARTUUID which makes the kernel find the
|
|
|
|
appropriate disk automatically.
|
2014-01-07 10:18:55 +00:00
|
|
|
|
2019-02-25 13:05:07 +00:00
|
|
|
config TARGET_ROOTFS_PERSIST_VAR
|
|
|
|
bool "Make /var persistent"
|
|
|
|
help
|
|
|
|
Do not symlink /var to /tmp, so that its content will persist
|
|
|
|
across reboots. When enabled, /var/run will still be linked
|
|
|
|
to /tmp/run.
|
|
|
|
|
2013-11-22 14:30:40 +00:00
|
|
|
endmenu
|