2006-04-06 20:31:14 +02:00
|
|
|
config BR2_TARGET_ROOTFS_ISO9660
|
|
|
|
bool "iso image"
|
2010-04-03 18:55:43 +02:00
|
|
|
depends on (BR2_i386 || BR2_x86_64)
|
|
|
|
depends on BR2_LINUX_KERNEL
|
2021-09-23 17:57:22 +02:00
|
|
|
depends on BR2_TARGET_GRUB2 || BR2_TARGET_SYSLINUX_ISOLINUX
|
fs/iso9660: support building a real iso9660 filesystem
Until now, the iso9660 filesystem handling only supported using an
initrd/initramfs to store the root filesystem, which is very different
from what we do with the other filesystems.
This commit changes the iso9660 logic to also allow using directly an
iso9660 filesystem to store the root filesystem. A new option,
BR2_TARGET_ROOTFS_ISO9660_INITRD, is created to tell the iso9660 that
we want to use an initrd and not directly the root filesystem in
iso9660 format. This option defaults to 'y' to preserve the existing
behavior.
After this commit, we therefore have three possibilities:
* BR2_TARGET_ROOTFS_ISO9660=y, with BR2_TARGET_ROOTFS_INITRAMFS and
BR2_TARGET_ROOTFS_ISO9660_INITRD disabled. In this case, the
iso9660 filesystem is directly the contents of the root filesystem
(since is possible thanks to the Rockridge extensions that were
already enabled using the -R option of genisoimage). Obviously, it
means that the root filesystem is read-only.
* BR2_TARGET_ROOTFS_ISO9660=y and BR2_TARGET_ROOTFS_INITRAMFS=y (the
value of BR2_TARGET_ROOTFS_ISO9660_INITRD doesn't matter). In this
case, the root filesystem is already linked into the kernel image
itself, as an initramfs. So the iso9660 filesystem doesn't contain
the root filesystem as is, but just the bootloader and the kernel
image.
* BR2_TARGET_ROOTFS_ISO9660=y, BR2_TARGET_ROOTFS_ISO9660_INITRD=y and
BR2_TARGET_ROOTFS_INITRAMFS disabled. In this case, a separate
initrd is used. The iso9660 filesystem only contains the
bootloader, the kernel and the initrd.
In order to support the first case out of the box, root=/dev/sr0 is
added on the kernel command line in the example Grub configuration
file, so that the kernel knows where the root filesystem is
located. This argument is ignored when initrd/initramfs are used.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2015-06-09 00:21:41 +02:00
|
|
|
select BR2_LINUX_KERNEL_INSTALL_TARGET \
|
|
|
|
if (!BR2_TARGET_ROOTFS_ISO9660_INITRD && !BR2_TARGET_ROOTFS_INITRAMFS)
|
2006-04-06 20:31:14 +02:00
|
|
|
help
|
fs/iso9660: support building a real iso9660 filesystem
Until now, the iso9660 filesystem handling only supported using an
initrd/initramfs to store the root filesystem, which is very different
from what we do with the other filesystems.
This commit changes the iso9660 logic to also allow using directly an
iso9660 filesystem to store the root filesystem. A new option,
BR2_TARGET_ROOTFS_ISO9660_INITRD, is created to tell the iso9660 that
we want to use an initrd and not directly the root filesystem in
iso9660 format. This option defaults to 'y' to preserve the existing
behavior.
After this commit, we therefore have three possibilities:
* BR2_TARGET_ROOTFS_ISO9660=y, with BR2_TARGET_ROOTFS_INITRAMFS and
BR2_TARGET_ROOTFS_ISO9660_INITRD disabled. In this case, the
iso9660 filesystem is directly the contents of the root filesystem
(since is possible thanks to the Rockridge extensions that were
already enabled using the -R option of genisoimage). Obviously, it
means that the root filesystem is read-only.
* BR2_TARGET_ROOTFS_ISO9660=y and BR2_TARGET_ROOTFS_INITRAMFS=y (the
value of BR2_TARGET_ROOTFS_ISO9660_INITRD doesn't matter). In this
case, the root filesystem is already linked into the kernel image
itself, as an initramfs. So the iso9660 filesystem doesn't contain
the root filesystem as is, but just the bootloader and the kernel
image.
* BR2_TARGET_ROOTFS_ISO9660=y, BR2_TARGET_ROOTFS_ISO9660_INITRD=y and
BR2_TARGET_ROOTFS_INITRAMFS disabled. In this case, a separate
initrd is used. The iso9660 filesystem only contains the
bootloader, the kernel and the initrd.
In order to support the first case out of the box, root=/dev/sr0 is
added on the kernel command line in the example Grub configuration
file, so that the kernel knows where the root filesystem is
located. This argument is ignored when initrd/initramfs are used.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2015-06-09 00:21:41 +02:00
|
|
|
Build a bootable ISO9660 image. By default, the root
|
|
|
|
filesystem is directly packed as the ISO9660 filesystem,
|
|
|
|
which means the root filesystem will be read-only. It
|
|
|
|
requires ISO9660 filesystem support and CDROM support in the
|
|
|
|
kernel.
|
|
|
|
|
|
|
|
However, if BR2_TARGET_ROOTFS_INITRAMFS or
|
|
|
|
BR2_TARGET_ROOTFS_ISO9660_INITRD have been enabled, the
|
|
|
|
ISO9660 filesystem will only contain a kernel image and
|
|
|
|
optionally an external initrd image. In this case, the
|
|
|
|
filesystem being in RAM, it will be read/write. No ISO9660
|
|
|
|
or CDROM support is needed in the kernel.
|
2006-04-06 20:31:14 +02:00
|
|
|
|
2015-06-09 00:21:34 +02:00
|
|
|
if BR2_TARGET_ROOTFS_ISO9660
|
|
|
|
|
2015-06-09 00:21:43 +02:00
|
|
|
choice
|
|
|
|
prompt "Bootloader"
|
|
|
|
|
2015-06-09 00:21:48 +02:00
|
|
|
config BR2_TARGET_ROOTFS_ISO9660_GRUB2
|
|
|
|
bool "grub2"
|
2021-09-23 17:57:22 +02:00
|
|
|
depends on BR2_TARGET_GRUB2
|
2021-09-23 17:57:23 +02:00
|
|
|
select BR2_TARGET_ROOTFS_ISO9660_BIOS_BOOTLOADER \
|
|
|
|
if BR2_TARGET_GRUB2_I386_PC
|
|
|
|
select BR2_TARGET_ROOTFS_ISO9660_EFI_BOOTLOADER \
|
|
|
|
if (BR2_TARGET_GRUB2_I386_EFI || BR2_TARGET_GRUB2_X86_64_EFI)
|
2015-06-09 00:21:48 +02:00
|
|
|
help
|
|
|
|
Use Grub 2 as the bootloader for the ISO9660 image. Make
|
|
|
|
sure to enable the 'iso9660' module in
|
2021-09-23 17:57:22 +02:00
|
|
|
BR2_TARGET_GRUB2_BUILTIN_MODULES_PC or
|
|
|
|
BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI. Use 'cd' as the boot
|
|
|
|
partition in BR2_TARGET_GRUB2_BOOT_PARTITION= for GRUB on BIOS
|
|
|
|
or 'set root=(cd0)' in the configuration file passed to
|
|
|
|
BR2_TARGET_GRUB2_BUILTIN_CONFIG_EFI for GRUB on EFI.
|
2015-06-09 00:21:48 +02:00
|
|
|
|
2015-06-09 00:21:45 +02:00
|
|
|
config BR2_TARGET_ROOTFS_ISO9660_ISOLINUX
|
|
|
|
bool "isolinux"
|
|
|
|
depends on BR2_TARGET_SYSLINUX_ISOLINUX
|
2021-09-23 17:57:23 +02:00
|
|
|
select BR2_TARGET_ROOTFS_ISO9660_BIOS_BOOTLOADER
|
2015-06-09 00:21:45 +02:00
|
|
|
|
2015-06-09 00:21:43 +02:00
|
|
|
endchoice
|
|
|
|
|
2021-09-23 17:57:22 +02:00
|
|
|
config BR2_TARGET_ROOTFS_ISO9660_BIOS_BOOTLOADER
|
2021-09-23 17:57:23 +02:00
|
|
|
bool
|
2021-09-23 17:57:22 +02:00
|
|
|
|
|
|
|
config BR2_TARGET_ROOTFS_ISO9660_EFI_BOOTLOADER
|
2021-09-23 17:57:23 +02:00
|
|
|
bool
|
2021-09-23 17:57:22 +02:00
|
|
|
|
2006-04-06 20:31:14 +02:00
|
|
|
config BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU
|
2015-08-11 23:23:50 +02:00
|
|
|
string "Boot menu config file"
|
2015-06-09 00:21:48 +02:00
|
|
|
default "fs/iso9660/grub.cfg" if BR2_TARGET_ROOTFS_ISO9660_GRUB2
|
2015-06-09 00:21:45 +02:00
|
|
|
default "fs/iso9660/isolinux.cfg" if BR2_TARGET_ROOTFS_ISO9660_ISOLINUX
|
2015-06-09 00:21:40 +02:00
|
|
|
help
|
2015-06-09 00:21:45 +02:00
|
|
|
Use this option to provide a custom bootloader configuration
|
2017-08-11 18:10:15 +02:00
|
|
|
file (grub.cfg for Grub 2, isolinux.cfg for isolinux).
|
2015-06-09 00:21:45 +02:00
|
|
|
|
|
|
|
Note that the strings __KERNEL_PATH__ and __INITRD_PATH__
|
|
|
|
will automatically be replaced by the path to the kernel and
|
2015-06-09 00:21:40 +02:00
|
|
|
initrd images respectively.
|
2009-07-27 00:05:14 +02:00
|
|
|
|
fs/iso9660: support building a real iso9660 filesystem
Until now, the iso9660 filesystem handling only supported using an
initrd/initramfs to store the root filesystem, which is very different
from what we do with the other filesystems.
This commit changes the iso9660 logic to also allow using directly an
iso9660 filesystem to store the root filesystem. A new option,
BR2_TARGET_ROOTFS_ISO9660_INITRD, is created to tell the iso9660 that
we want to use an initrd and not directly the root filesystem in
iso9660 format. This option defaults to 'y' to preserve the existing
behavior.
After this commit, we therefore have three possibilities:
* BR2_TARGET_ROOTFS_ISO9660=y, with BR2_TARGET_ROOTFS_INITRAMFS and
BR2_TARGET_ROOTFS_ISO9660_INITRD disabled. In this case, the
iso9660 filesystem is directly the contents of the root filesystem
(since is possible thanks to the Rockridge extensions that were
already enabled using the -R option of genisoimage). Obviously, it
means that the root filesystem is read-only.
* BR2_TARGET_ROOTFS_ISO9660=y and BR2_TARGET_ROOTFS_INITRAMFS=y (the
value of BR2_TARGET_ROOTFS_ISO9660_INITRD doesn't matter). In this
case, the root filesystem is already linked into the kernel image
itself, as an initramfs. So the iso9660 filesystem doesn't contain
the root filesystem as is, but just the bootloader and the kernel
image.
* BR2_TARGET_ROOTFS_ISO9660=y, BR2_TARGET_ROOTFS_ISO9660_INITRD=y and
BR2_TARGET_ROOTFS_INITRAMFS disabled. In this case, a separate
initrd is used. The iso9660 filesystem only contains the
bootloader, the kernel and the initrd.
In order to support the first case out of the box, root=/dev/sr0 is
added on the kernel command line in the example Grub configuration
file, so that the kernel knows where the root filesystem is
located. This argument is ignored when initrd/initramfs are used.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2015-06-09 00:21:41 +02:00
|
|
|
config BR2_TARGET_ROOTFS_ISO9660_INITRD
|
|
|
|
bool "Use initrd"
|
|
|
|
default y
|
|
|
|
select BR2_TARGET_ROOTFS_CPIO
|
|
|
|
help
|
|
|
|
Enable this option to have the root filesystem bundled as an
|
|
|
|
initrd/initramfs rather than directly as the ISO9660
|
|
|
|
filesystem. With this option enabled, the ISO9660 will only
|
|
|
|
contain a kernel image, an initrd image (unless an initramfs
|
|
|
|
linked into the kernel is used) and the bootloader.
|
|
|
|
|
2017-12-20 22:27:42 +01:00
|
|
|
config BR2_TARGET_ROOTFS_ISO9660_TRANSPARENT_COMPRESSION
|
|
|
|
bool "transparent compression"
|
|
|
|
depends on !BR2_TARGET_ROOTFS_ISO9660_INITRD
|
|
|
|
depends on !BR2_TARGET_ROOTFS_INITRAMFS
|
|
|
|
help
|
|
|
|
Say 'y' to enable use of transparent (de)compression. Files
|
|
|
|
are stored compressed and will be decompressed on-the-fly
|
|
|
|
upon access at runtime.
|
|
|
|
|
2015-06-09 00:21:46 +02:00
|
|
|
config BR2_TARGET_ROOTFS_ISO9660_HYBRID
|
|
|
|
bool "Build hybrid image"
|
|
|
|
depends on BR2_TARGET_ROOTFS_ISO9660_ISOLINUX
|
|
|
|
help
|
|
|
|
Enable this option to build an hybrid image, i.e an image
|
|
|
|
which can either be booted from a CD-ROM or from a device
|
|
|
|
which BIOS considers a hard disk or ZIP disk, e.g. a USB key
|
|
|
|
or similar.
|
|
|
|
|
2015-06-09 00:21:34 +02:00
|
|
|
endif
|
|
|
|
|
2021-09-23 17:57:22 +02:00
|
|
|
comment "iso image needs a Linux kernel and either grub2 or isolinux to be built"
|
2013-11-07 09:24:37 +01:00
|
|
|
depends on BR2_i386 || BR2_x86_64
|
2015-06-09 00:21:45 +02:00
|
|
|
depends on !BR2_LINUX_KERNEL || \
|
2021-09-23 17:57:22 +02:00
|
|
|
!(BR2_TARGET_GRUB2 || BR2_TARGET_SYSLINUX_ISOLINUX)
|