Building a flash filesystem image

Updated: October 26, 2022

If your application requires a writable filesystem and you have flash memory devices on your embedded system, you can use a QNX Neutrino flash filesystem driver to provide a POSIX-compatible filesystem.

Combining files into a flash filesystem can simplify copies onto your target system. Instead of copying each file individually, once you have used mkefs to build the filesystem, you need only one instruction to move the image over, instead of for example, a script that must name every file and its path.

You have two options when you create a flash filesystem:

In this section we describe how to use the mkefs (for make embedded filesystem) utility and a buildfile to create a flash filesystem image file (.efs). After you have built the flash filesystem image, you can combine this image with the bootable OS image into a single image, which you can then copy onto your target system.


The flash filesystem drivers are described in the Filesystems chapter of the System Architecture guide.

For details on how to use the flash filesystem drivers, see devf-generic and devf-ram in the Utilities Reference.

Making flash filesystems

If you change the size or the configuration of the flash on your target (number of parts, size of parts, type of parts, interleave, etc.) you need to remake your flash filesystem.

BSPs contain the source code and the binary files for the appropriate flash filesystem driver. The associated header files and libraries are part of the QNX Neutrino RTOS. To generate the flash filesystem binary for your BSP:

  1. Go to your BSP's directory.
  2. In the command line, type make.
If you have combined the IPL and the IFS into one image which you will copy onto a flash medium, you need to offset the beginning of the flash filesystem by at least the size of the IPL plus the size of the IFS (see Combined IPL-IFS images in the USing QNX BSPs chapter).