rootfs_ipkg class
The rootf_ipk class us used to create a root
filesystem for the target device from a set of .ipkg packages. The end
result is a directory containing all the files that need to be included in
the root filesystem of the target device.
This class is normally not used directly, but instead used from the
which creates images from a set of package
(typically .ipkg) files.
Summary of actions performed by the rootfs_ipkg
class:
Erase any existing root filesystem image by deleting the entire
contents of ${IMAGE_ROOTFS};
Creates the device node directory,
${IMAGE_ROOTFS}/dev;
Determines which packages to install in order to provide the
locales that have been requested;
Configures ipkg to allow it to be used locally to install into the
root filesystem ${IMAGE_ROOTFS};
Installs locale related .ipkg packages;
Installs the list of requested .ipkg packages,
${IPKG_INSTALL};
Creates ipkg's arch.conf as
${IMAGE_ROOTFS}/etc/ipkg/arch.conf;
Runs any preinst and postinst scripts that were specified by the
installed .ipkg packages;
Creates the system configuration directory
${IMAGE_ROOTFS}/${sysconfdir} (that is the
/etc directory on the target);
Runs and custom post-processing commands, as described by
${ROOTFS_POSTPROCESS_COMMAND};
Verifies that all the ipkg's were installed correctly and reports
an error if they were not;
Makes available a set of functions which may be used by callers of
the class: zap_root_password,
create_etc_timestamp and
remove_init_link;
Adds the rootfs task to run after the install
task "addtask rootfs before do_build and
do_install".
The following variables may be used to control some of the behaviour
of this class:
IPKG_INSTALL
The list of packages which will be installed into the root
filesystem. This needs to be set in order for this class to perform
any useful work.
Default: empty
ROOTFS_POSTPROCESS_COMMAND
Defines additional commands to run after processing of the root
filesystem. Could be used to change roots password, remove parts of
the install kernel such as the zImage kernel image
or to edit the ipkg configuration for example.
Default: empty
PACKAGE_ARCH
Defines the list of architectures that are support by the target
platform. This is used to configure the arch settings for ipkg on the
target system.
Default: "all any noarch ${TARGET_ARCH}
${PACKAGE_EXTRA_ARCHS} ${MACHINE}"
IMAGE_LINGUAS
Specifies which locales should be installed. This is often set
to "" to indicate that no locales will be
installed.
Default: "de-de fr-fr en-gb"
EXTRA_IMAGEDEPENDS
A list of dependencies, this is appended to
DEPENDS. This is typically used to ensure that any
commands that are called by
ROOTFS_POSTPROCESS_COMMAND are actually built by
the system prior to being called.
Default: empty
BUILDNAME
The name of the build. This is either set by the distro
configuration (for released versions) or set to a date stamp which is
autogenerated by bitbake.
Default: 'date +%Y%m%d%H%M'
IMAGE_ROOTFS
The path to the root of the filesystem image. You can use this
when you need to explicitly refer to the root filesystem
directory.
Default: IMAGE_ROOTFS =
"${TMPDIR}/rootfs"
DEPLOY_DIR
The base deploy dir. Used to find the directory containing the
ipkg files.
Default: DEPLOY_DIR =
"${TMPDIR}/deploy"
DEPLOY_DIR_IPK
The directory in which to search for the ipkg files that are to
be installed in the root filesystem.
Default: DEPLOY_DIR_IPK =
"${DEPLOY_DIR}/ipk"
Note that the entire process is run under the control of in order to handle device files, uids and gids. The
ROOTFS_POSTPROCESS_COMMAND is useful due to the fact that
it runs within the same instance as the rest of
this class.
The class also provides a function real_do_rootfs
which is executed without and therefore can be
used from other classes, such as , that
are already running under the control of .