1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-31 00:39:46 +00:00

INITRD var: make it a list of filesystem images

The initrd image used by the Linux kernel is list of file system images
concatenated together and presented as a single initrd file at boot time.

So far the initrd is a single filesystem image. But in cases like to support
early microcode loading, the initrd image need to have multiple filesystem
images concatenated together.

This commit is extending the INITRD variable from a single filesystem image
to a list of filesystem images to satisfy the need mentioned above.

(From OE-Core rev: b0ac481dda99d8f4be8015964fcb2cb01afce08c)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Nitin A Kamble
2014-07-29 11:34:45 -07:00
committed by Richard Purdie
parent 463c9f4d3a
commit 3b19f90bdf
5 changed files with 35 additions and 11 deletions
+10 -3
View File
@@ -71,10 +71,17 @@ boot_direct_populate() {
# Install bzImage, initrd, and rootfs.img in DEST for all loaders to use. # Install bzImage, initrd, and rootfs.img in DEST for all loaders to use.
install -m 0644 ${STAGING_KERNEL_DIR}/bzImage $dest/vmlinuz install -m 0644 ${STAGING_KERNEL_DIR}/bzImage $dest/vmlinuz
if [ -n "${INITRD}" ] && [ -s "${INITRD}" ]; then # initrd is made of concatenation of multiple filesystem images
install -m 0644 ${INITRD} $dest/initrd if [ -n "${INITRD}" ]; then
rm -f $dest/initrd
for fs in ${INITRD}
do
if [ -n "${fs}" ] && [ -s "${fs}" ]; then
cat ${fs} >> $dest/initrd
fi
done
chmod 0644 $dest/initrd
fi fi
} }
build_boot_dd() { build_boot_dd() {
+21 -4
View File
@@ -18,7 +18,7 @@
# an hdd) # an hdd)
# External variables (also used by syslinux.bbclass) # External variables (also used by syslinux.bbclass)
# ${INITRD} - indicates a filesystem image to use as an initrd (optional) # ${INITRD} - indicates a list of filesystem images to concatenate and use as an initrd (optional)
# ${COMPRESSISO} - Transparent compress ISO, reduce size ~40% if set to 1 # ${COMPRESSISO} - Transparent compress ISO, reduce size ~40% if set to 1
# ${NOISO} - skip building the ISO image if set to 1 # ${NOISO} - skip building the ISO image if set to 1
# ${NOHDD} - skip building the HDD image if set to 1 # ${NOHDD} - skip building the HDD image if set to 1
@@ -68,8 +68,16 @@ populate() {
# Install bzImage, initrd, and rootfs.img in DEST for all loaders to use. # Install bzImage, initrd, and rootfs.img in DEST for all loaders to use.
install -m 0644 ${STAGING_KERNEL_DIR}/bzImage ${DEST}/vmlinuz install -m 0644 ${STAGING_KERNEL_DIR}/bzImage ${DEST}/vmlinuz
if [ -n "${INITRD}" ] && [ -s "${INITRD}" ]; then # initrd is made of concatenation of multiple filesystem images
install -m 0644 ${INITRD} ${DEST}/initrd if [ -n "${INITRD}" ]; then
rm -f ${DEST}/initrd
for fs in ${INITRD}
do
if [ -s "${fs}" ]; then
cat ${fs} >> ${DEST}/initrd
fi
done
chmod 0644 ${DEST}/initrd
fi fi
if [ -n "${ROOTFS}" ] && [ -s "${ROOTFS}" ]; then if [ -n "${ROOTFS}" ] && [ -s "${ROOTFS}" ]; then
@@ -80,10 +88,19 @@ populate() {
build_iso() { build_iso() {
# Only create an ISO if we have an INITRD and NOISO was not set # Only create an ISO if we have an INITRD and NOISO was not set
if [ -z "${INITRD}" ] || [ ! -s "${INITRD}" ] || [ "${NOISO}" = "1" ]; then if [ -z "${INITRD}" ] || [ "${NOISO}" = "1" ]; then
bbnote "ISO image will not be created." bbnote "ISO image will not be created."
return return
fi fi
# ${INITRD} is a list of multiple filesystem images
for fs in ${INITRD}
do
if [ ! -s "${fs}" ]; then
bbnote "ISO image will not be created. ${fs} is invalid."
return
fi
done
populate ${ISODIR} populate ${ISODIR}
+1 -1
View File
@@ -7,7 +7,7 @@
# Provide grub-efi specific functions for building bootable images. # Provide grub-efi specific functions for building bootable images.
# External variables # External variables
# ${INITRD} - indicates a filesystem image to use as an initrd (optional) # ${INITRD} - indicates a list of filesystem images to concatenate and use as an initrd (optional)
# ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional) # ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional)
# ${GRUB_GFXSERIAL} - set this to 1 to have graphics and serial in the boot menu # ${GRUB_GFXSERIAL} - set this to 1 to have graphics and serial in the boot menu
# ${LABELS} - a list of targets for the automatic config # ${LABELS} - a list of targets for the automatic config
+1 -1
View File
@@ -5,7 +5,7 @@
# Provide syslinux specific functions for building bootable images. # Provide syslinux specific functions for building bootable images.
# External variables # External variables
# ${INITRD} - indicates a filesystem image to use as an initrd (optional) # ${INITRD} - indicates a list of filesystem images to concatenate and use as an initrd (optional)
# ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional) # ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional)
# ${AUTO_SYSLINUXMENU} - set this to 1 to enable creating an automatic menu # ${AUTO_SYSLINUXMENU} - set this to 1 to enable creating an automatic menu
# ${LABELS} - a list of targets for the automatic config # ${LABELS} - a list of targets for the automatic config
+1 -1
View File
@@ -225,7 +225,7 @@ INHIBIT_PACKAGE_STRIP[doc] = "If set to "1", causes the build to not strip binar
INHERIT[doc] = "Causes the named class to be inherited at this point during parsing. The variable is only valid in configuration files." INHERIT[doc] = "Causes the named class to be inherited at this point during parsing. The variable is only valid in configuration files."
INHERIT_DISTRO[doc] = "Lists classes that will be inherited at the distribution level. It is unlikely that you want to edit this variable." INHERIT_DISTRO[doc] = "Lists classes that will be inherited at the distribution level. It is unlikely that you want to edit this variable."
INITRAMFS_FSTYPES[doc] = "Defines the format for the output image of an initial RAM disk (initramfs), which is used during boot." INITRAMFS_FSTYPES[doc] = "Defines the format for the output image of an initial RAM disk (initramfs), which is used during boot."
INITRD[doc] = "Indicates a filesystem image to use as an initial RAM disk (initrd)." INITRD[doc] = "Indicates list of filesystem images to concatenate and use as an initial RAM disk (initrd)."
INITSCRIPT_NAME[doc] = "The filename of the initialization script as installed to ${sysconfdir}/init.d." INITSCRIPT_NAME[doc] = "The filename of the initialization script as installed to ${sysconfdir}/init.d."
INITSCRIPT_PACKAGES[doc] = "A list of the packages that contain initscripts. This variable is used in recipes when using update-rc.d.bbclass. The variable is optional and defaults to the PN variable." INITSCRIPT_PACKAGES[doc] = "A list of the packages that contain initscripts. This variable is used in recipes when using update-rc.d.bbclass. The variable is optional and defaults to the PN variable."
INITSCRIPT_PARAMS[doc] = "Specifies the options to pass to update-rc.d. The variable is mandatory and is used in recipes when using update-rc.d.bbclass." INITSCRIPT_PARAMS[doc] = "Specifies the options to pass to update-rc.d. The variable is mandatory and is used in recipes when using update-rc.d.bbclass."