When you complete a project with the QNX SDK for Apps and Media, you must build a target image to install
your project on the target hardware.
To build a target image, you need to package all
the following components:
- Board Support Packages (BSPs)
- the core OS and utilities
- HTML5 apps
- Qt apps
- Qt runtime
- HMI
- Browser/WebKit
- other binaries
Typically, you don't build all these components yourself. Instead, you:
- use the prebuilt binaries which you put in your development environment when you installed the QNX SDK for Apps and Media platform
- install additional packages
- download any required BSPs
Artifact organization
When you design a system, you must choose how to organize components
into one or more IFS files and partition images. You then combine partition images to produce target
images:
- Image filesystems (IFS)
- Image Filesystems (or .ifs files) are created by mkifs.
An IFS is a file that contains a bootable OS image. An IFS is a single binary that is loaded
into RAM, generally by a bootloader or IPL on bootup. IFS files are usually quite minimal; they
include only the drivers and libraries needed to start the kernel and mount additional
partitions.
- Because an IFS is loaded into RAM and the files in it are more difficult to upgrade
than files in a regular filesystem, an IFS is usually used only for startup code and a few key
libraries, especially libraries that need to load early in the boot process.
- In the case of the
QNX SDK for Apps and Media platform, everything required to start a QNX kernel and
mount secondary storage is stored in an IFS, but the HMI and apps are loaded from a storage
device. The primary binaries and libraries in the IFS are automatically mounted to
/proc/boot.
- Partition images
- Partition images (or .image files) are created by mkxfs
(a wrapper utility for various filesystem generation utilities; see "M" in the Utilities Reference). These files contain the
contents of a partition that is written to a storage device.
- Partition images can contain a variety of file types including IFS files. For the QNX SDK for
Apps and Media platform, for non-x86 platforms, the primary IFS is stored in a FAT32 partition
because most targets can read FAT32 with their default bootloader.
Note: For x86
platforms, the QNX IPL is used and it loads an IFS from a QNX filesystem.
- An image may consist of a maximum of four primary partitions. For example, an SD image
for the QNX SDK for Apps and Media platform contains three (3) partitions: a FAT32 partition for
booting and two Power-Safe (fs-qnx6.so) partitions (one for system data and
another for user data).
- Target images
- Partition images are combined to produce target images (or .img
files). A target image (also referred to as a disk image or system image) contains an entire
target system—a partition table and the partition contents—and so is convenient to
install. You can load a target image directly onto a storage medium, such as a micro SD card or
a USB key, without having to modify partition information.
Note: Typically, the resulting image is stored in non-removal storage; however, SD cards or USB keys
are easier to begin with.