IMG Environment Variables (Compact 2013)
3/26/2014
IMG environment variables control image configuration options. You can change IMG variables from the properties page for your OS design project. If you change an IMG environment variable, you can rebuild just the run-time image instead of rebuilding your entire OS design. For more information about how to change IMG variables and rebuild the run-time image, see Procedures for IMG environment variables.
There are two categories of IMG environment variables.
- IMG variables. These IMG variables add modules to your run-time image or change the image configuration.
- IMGNO variables. These IMG variables exclude modules from your run-time image that are on by default. To exclude the module from your final run-time image, set the IMGNO variable to 1.
The tables in the following sections describe the IMG and IMGNO variables.
IMG environment variables
The following table shows IMG environment variables. Many of these variables control debugging options that should not be enabled in a shipped product.
Environment variable |
Description |
---|---|
IMGASLRENABLE |
Enables Address Space Layout Randomization (ASLR), a computer security technique in which the positions of key data areas are rearranged randomly within the address space for a process. |
IMGAUTH |
Enables run-time images to be keyed to a specific device. This variable makes sure that the images are flashed only on the selected device. When the device starts, it validates the run-time image signature by making sure that the signature matches the hardware device ID. |
IMGAUTOFLUSH |
Configures CeLog to automatically flush events to a specified directory.
Note:
Do not include CeLog on a shipping device because the logging that CeLog performs can reduce system performance. Also, omitting CeLog reduces the attack surface through which a malicious user could try to compromise the system.
|
IMGCELOGENABLE |
Adds CELog.dll to the run-time image and initializes event logging when the run-time image starts.
Note:
Do not include CeLog on a shipping device because the logging that CeLog performs can reduce system performance. Also, omitting CeLog reduces the attack surface through which a malicious user could try to compromise the system.
|
IMGEBOOT |
Reserves space for the boot loader in ROM. |
IMGFLASH |
This environment variable is available to board support package (BSP) vendors for custom implementation. |
IMGHDSTUB |
Adds OS awareness for hardware-assisted debugging. |
IMGMULTIXIP |
Controls the BIB selections that allow componentization of BIN files. The exact implementation of this variable is BSP-specific. |
IMGNXSUPPORT |
Adds OS support for ARM’s “No eXecute” functionality. |
IMGOSCAPTURE |
Adds OSCapture.exe to the run-time image. It starts buffering events in RAM when the run-time image starts. |
IMGPROFILER |
Enables Monte Carlo kernel profiling in the run-time image. For more information, see Running the Kernel Profiler in Monte Carlo Mode. Because the profiler takes up memory and reduces performance, you will usually turn this option off in shipping devices. |
IMGRAMx variables |
This set of IMG variables configure the run-time image to use a designated amount of RAM. On some platforms, the run-time image will automatically resize based on the amount of RAM available. Use one of the IMGRAM variables to specify the size of the run-time image:
|
IMGRILCOM1 |
Configures the RIL driver to open COM1 instead of COM2 for the AT command/response port. |
IMGSIGN |
Includes the signature extension block in the ROM header. |
IMGTINYFSRAM |
Sets FSRAMPERCENT that reduces the RAM allocated for the file system. For more information, see Binary Image Builder (.bib) File and FSRAMPERCENT. |
IMGTRUSTROMONLY |
Sets ROMFLAGS that configures the run-time image to trust only modules in ROM. For more information, see Binary Image Builder (.bib) File and ROMFLAGS. |
IMGDUALPORTRIL |
Configures the RIL driver to use a MUX driver instead of a raw serial driver. |
IMGNO Variables
The following table shows the IMGNO environment variables. Set these variables to 1 to exclude “always on” features from your run-time image.
Environment variable |
Description |
---|---|
IMGNODEBUGGER |
Excludes debugger support from the run-time image. |
IMGNOKITL |
Excludes KITL support from the run-time image. |
IMGNOSMP |
Excludes symmetric multiprocessing (SMP) support from the kernel. On most devices that are not SMP hardware platforms, SMP support causes no issues. However, if you see issues during boot up on non-SMP hardware platforms, try setting this variable to 1. |
IMGNOLOC |
Excludes localization functionality from the run-time image. |
IMGNOREDIR |
Excludes support for the release directory file system from the run-time image. Set this option to prevent the device from access files on the connected development computer. |
IMGNOSHAREETH |
Excludes VMINI support from the run-time image. Setting this environment variable might require you to perform a rebuild of the BSP. For more information, see Build a BSP. |
Procedures for IMG environment variables
Use the following procedures to change the IMG variables and rebuild the run-time image. You can rebuild the run-time image either from within Platform Builder or from the command line.
To change an IMG environment variable
Open your OS design in Visual Studio.
On the Project menu, select Properties to open the Property Pages dialog box.
In the Configuration drop-down list box, select the build configuration you want to modify. If this OS design supports more than one BSP, use the Platform drop-down list box to select the BSP you want to change.
On the left of the Property Pages dialog box, expand Configuration Properties, and then select Build Options.
Select the IMG environment variable you want to change, use the drop-down arrow on the right to select the new value, and then click OK.
To rebuild the run-time image from Platform Builder
Open your OS design in Visual Studio.
On the Build menu, select Make Run-time Image.
To rebuild the run-time image from the command line
Open a command window.
Change the command path to the flat release folder for the OS design that you want to build.
Tip
If you are not certain where the flat release folder is, open Platform Builder. On the Build menu, select Open Release Directory in Build Window to open a command window with the path set to the release folder.
At the command prompt, type makeimg.exe. For more information about Makeimg.exe, see Make Binary Image Tool (Makeimg.exe).
See Also
Reference
BSP Environment Variables
PRJ Environment Variables
Miscellaneous Environment Variables