-
Notifications
You must be signed in to change notification settings - Fork 13
NewFeature
Features serve to extend the functionality of the make-initrd
.
Features are located in the features
directory.
Let's assume the feature name is mdadm
. In this case, the directory structure
will be:
features/mdadm
`- README.md
`- config.mk
`- rules.mk
`- data/
- README.md - this file contains the documentation of the feature that describes the functionality and parameters.
- config.mk - this file is always read. It should only contain the definition of feature-specific variables. In this file, the kernel is checked (if necessary).
- rules.mk - this file will be used if the
mdadm
feature is used. In this file that the real actions should be described. - data/ - this directory contains a piece of initramfs image that you want to put into the image "as is".
Let's say in the image you need to put a mdadm utility, its configuration file and the data that the utility needs. To do this, we need to create a description of its resources:
MDAMD_RULES = \
/lib/udev/rules.d/63-md-raid-arrays.rules \
/lib/udev/rules.d/64-md-raid-assembly.rules
MDADM_CONF ?= $(SYSCONFDIR)/mdadm.conf
MDADM_PROGS = mdadm
MDADM_FILES = $(wildcard $(MDAMD_RULES) $(MDADM_CONF))
MDADM_DATADIR = $(FEATURESDIR)/mdadm/data
Variables do not need to be prefixed like this (MDADM_
). It must be unique
among other features. Usually a prefix based on the feature name.
The MDADM_CONF
variable is marked as overridden so that at the time of
initramfs image creation, you can specify a different configuration file.
The MDADM_DATADIR
contains a path to data/
directory. In this directory we
will put additional files needed for this feature.
This file adds files to those required in the initramfs image. There are several special variables to do this.
-
PUT_FEATURE_DIRS
contains a list of directories whose contents should be copied as is. -
PUT_FEATURE_FILES
contains a list of files that are copied to the image with the full path to the file. If a directory is placed in this list, then the directory will be copied with all the contents in it. -
PUT_FEATURE_PROGS
contains a list of program names. These programs will be found in the PATH and copied to the image. -
PUT_FEATURE_PROGS_WILDCARD
contains a list of glob patterns for the full path to utilities in thePATH
. -
PUT_FEATURE_LIBS
contains a list of libraries that are copied to the image. The library will be copied with all linked dependencies. -
PUT_FEATURE_OPTIONAL_LIBS
this is the same asPUT_FEATURE_LIBS
but only if the library is not found the error does not happen.
PUT_FEATURE_DIRS += $(MDADM_DATADIR)
PUT_FEATURE_FILES += $(MDADM_FILES)
PUT_FEATURE_PROGS += $(MDADM_PROGS)
All binary utilities will be copied along with a libraries with which they are linked.
- Get Started
- Initramfs Runtime
- Image Generation
- Contributing
- FAQ
- Presentations