Profiles

Profile files specify the content to be included in the final target image, and the partitions into which this content will be placed.

Profile files are XML configuration files that specify the contents of the filesystems generated by mksysimage.py (see Configuring Partitions and Images). Profile files specify:

If a profile file specifies an app that is packaged as a .bar file, this app is included in the image. It won't require installation after the system is running.

Profile files are located in the following directory:

infra/boards/board.variant/

Specifying the profile files

Entries in the mksysimage.py configuration file for each board (board-mksysimage.cfg) specify the profile files to use for each type of bootable media. To facilitate configuration, a typical system uses two profile files. By convention, these files are:

dos.xml
Specifies the contents of the bootable partition
os.xml
Specifies the contents of the system partitions

This convention is useful if you are using a small, bootable image, plus a larger image with the rest of the system. The dos.xml profile file specifies the bootloader, IFS and other parameters, and the os.xml profile file lists the filesets to use to specify the image contents. For example, the rcarh3spre-mksysimage.cfg file for QNX Platform for ADAS 1.0 specifies: image-profiles=os.xml,dos.xml if the bootable removable media is an SD card, and the non-bootable media is an eMMC (see Configuring Partitions and Images).

Note: The information described below for the bootloader and the filesets can be included in a single profile file, if your system configuration supports it.

Bootloader profile

The dos.xml file specifies the bootloader, IFS and other parameters for a specific architecture and board. This profile information is kept separate from the rest of the profile information in the os.xml file.

Below are the contents of a dos.xml file showing the organization of the XML elements, and their attributes:

<?xml version="1.0" encoding="UTF-8"?>
<board type="rcarh3spre" cpu="armle-v7" profile="html5" description="" secure="false">
  <packaging>
    <package name="dosfs" install_path="/dos">
	<include-fileset name="dosfs.rcarh3spre.boot"/>
    </package>
  </packaging>
</board>

System contents profile

The os.xml lists the filesets to be included in the target image package. Each os.xml file specifies the board (<board type = >). Inside this element, the <packaging> element includes <package> elements for:

basefs
The base filesystem (<package name = basefs>). This filesystem is read-only, so it is used for files that will not be changed.
rootfs
The root filesystem (<package name = rootfs>). This filesystem is read-write, so it is used for files that may be changed.

Each package lists filesets whose contents are to be included in the image, and specifies an installation path for the package's root directory in the image: install_path="/dos" or install_path="/base". The contents of the filesets listed in a package will be installed to this path.

These packages and their filesets are complemented by the packages and filesets specified in a dos.xml file (see Bootloader profile section). Together these packages define the contents of an image.

Both the base fileset package and the root fileset package may include board-specific and variant-specific filesets. The base fileset package may also include extra packages.

Below is an os.xml file showing the organization of the XML elements, and their attributes:

<?xml version="1.0" encoding="UTF-8"?>

<board type="rcarh3spre" cpu="armle-v7" profile="html5" description=""
       secure="false">
  <packaging>
    <package name="basefs" install_path="/base">
      <include-fileset name="basefs.rcarh3spre"/>
      <include-fileset name="basefs.common.adas_multimedia"/>
      <include-fileset name="basefs.rcarh3spre.adas_multimedia"/>
      <include-fileset name="basefs.common.util"/>
      <include-fileset name="basefs.common.debug.os"/>
      <include-fileset name="basefs.common.developer.networking"/>
      <include-fileset name="basefs.common.directories"/>
      <include-fileset name="basefs.common.etc"/>
      <include-fileset name="basefs.common.os"/>
      <include-fileset name="basefs.common.scripts"/>
      <include-fileset name="basefs.adas.infoadas"/>
      <include-fileset name="basefs.adas.vsomeip"/>
      <include-fileset name="basefs.rcarh3spre.adas.config" />

      <!-- PLATFORM-SPECIFIC COMMON FILESETS -->
      <include-fileset name="basefs.rcarh3spre.dvfs"/>

      <!-- VARIANT-SPECIFIC FILESETS -->

      <!-- EXTRA PACKAGES -->

    </package>

    <package name="rootfs" install_path="/">
      <include-fileset name="rootfs.rcarh3spre"/>
      <include-fileset name="rootfs.common.accounts"/>
      <include-fileset name="rootfs.common.directories"/>
      <include-fileset name="rootfs.common.etc"/>
      <include-fileset name="rootfs.common.os"/>
      <include-fileset name="rootfs.common.pps"/>
	  <include-fileset name="rootfs.adas.infoadas"/>
      <!-- PLATFORM-SPECIFIC COMMON FILESETS -->

      <!-- VARIANT-SPECIFIC FILESETS -->

    </package>
  </packaging>
</board>

The profile file <package> element

The following rules apply to <package> elements in profile files:

For example, <package name="basefs" install_path="/base"> in an os.xml file will result in all files specified in that package's filesets having /base prefixed to their names, and being installed in the base partition (assuming that board-variant.cfg has defined path=/base to mean install to the base partition; see Configuring Partitions and Images).

Note: The names of filesets listed in a profile file aren't significant (assuming the fileset files exist), but the install_path specified in the profile file's <package> element is critical.