Hello All,

Last time we left at configuring the OS design wizard. This time we will look at further customizing the OS design, so here we go.

After we have finished acknowledging the NDIS User mode I/O Protocol Driver warning

the VS 2005 IDE will open.


Now we can start with further customizing the OS design.

Step 1:

on the left hand side of the IDE window you can see the catalog item tab expand the CoreOS and you should be able to see the number of different components.

What do these different components do?

Expand the Third Party | BSP | ICOP_eBox4300_60CS: x86 followed by the Drivers tab.

Component catalog

You can see here some components are already selected.

VIA CN/CX Display Driver

VIA HD Audio Driver

VIA UAM3059 Audio Driver (Unified)

You can easily guess what these drivers are for, audio, video, etc. just in case if they are not selected don't forget to select them.

Also make sure that you select the ConMan_x86 Files Component This component adds the CoreCon files to the final image, needed to establish connectionbetween the CE 6.0 device and VS2005 development station.

Now expand Core OS | CEBASE catalog items, find and include the following components to the OS Design.

Applications-end User/CAB File Installer/Uninstaller: This component provides application installation and removal. It is needed for application development using Visual Studio .NET2003 and Visual Studio 2005.

Step 2:

Expand the CoreOS Services tab and add the following component as shown in the figure below.

CoreOS services

The only component we added in this step is under the USB Host Support tab. The rest of the components are included by default. You can notice that in the above figure some of the components show a “tick mark” before them and some of them show a small green square before them, the colored square symbol indicates that a respective component is included as a dependency to some other component. In order to find out the reason for such inclusion just right click on the component and go to properties.

Dependency check

Step 3:

This is one of the main steps in the OS design. In this step we add File System and Data Storage components.

File system & data storage components

File System--Internal (choose 1): Choose RAM and ROM File System. The above component is registry component. The RAM based registry implementation stores registry data within the object store. This is an efficient implementation for devices that rarely power off.

The object stores functions much like the hard drive for the desktop PC, and provides storage support for the device’s file system, databases and system registry.

Registry Storage (choose 1):Select Hive-based Registry.

The hive-based registry implementation stores registry data in files, or hives, which can be stored on any file system. With hive-based registry, the device eliminates the need for backup. This implementation is helpful for devices that typically go through the cold boot process when powered up by the user and seldom go through the warm boot process.

The three main files included in this are:

BOOT.HV: The boot hive is compiled as part of the OS runtime image. The boot hive contains system settings affecting the first boot phase.

SYSTEM.HV: when in use, the system hive is stored on the target device’s local storage.

USER.HV : When in use, the user hive is stored on the target device’s local storage.

Step 4:

Remember you added CoreCon component in the beginning, so we will verify if its correctly included and will auto launch, in order to do this switch from the Catalog item view to Solution Explorer view.

Component catalog

Expand the ICOP_Vortexx86_60ES:X86(Active) under the parameter files in the solution explorer tab, and double click on the project.reg file.

Project registry

After you double click the registry file it will open up in the VS 2005 IDE window.

project registry 2

Scroll down to the very end of this file and add the following entries:





"Process2"="ConmanClient2.exe" ; Autolaunch the Corecon connection Framework


Click SAVE and close the registry file.

This will ensure that CoreCon is launched once the device is powered on.

Step 5:

On the main window of IDE go to the projects tab and then go to the project properties and select Configuration Properties.

Configuration manager

Select release mode in the Active solution configuration menu on the top right hand corner of the above window.

Step 6:

Now expand the configuration properties tab and select the following components under build options.

Build option selection

Click to expand Configuration Properties tree on the left side of the screen.

Click to high-light Build Options, from the list of options we make the following choices.

Select Enable eboot space in memory (IMGEBOOT = 1). This option adds support for Ethernet debugging by building the Ethernet boot loader in the image.

Select Enable ship build (WINCESHIP = 1). This option will enable retail build and suppress debug messages. This option is not always needed and can be ignored if not needed.

Disable KITL. Make sure Enable KITL (noIMGNOKITL = 1) check box is NOT selected.

When deploying a release build image onto eBox 4300’s local storage with KITL enabled, the system may not start or takes a longer time to boot. This is caused by the system looking for unavailable KITL connection.

Step 7:

In this step we select the environment variables.

OS design environment variable selection

Click to highlight Environment on the left side of screen.

Click on the New… button, enter IMGRAM512 for Variable name, and enter 1 for Variable value and click on the OK button.

By setting the IMGRAM512 variable, the resulting image is generated to support device built with 512MB RAM. Many embedded devices are built with unique memory architecture. The IMGRAM512 setting is unique to eBox-4300 and may not be proper for other device.

Click on the New… button, enter PRJ_ENABLE_FSREGHIVE for Variable name, and enter 1 for Variable value and click on the OK button. This is one of the needed variables to enable Hive-based registry to persist registry changes when the device is powered off.

Follow the previous steps to create PRJ_BOOTDEVICE_ATAPI and PRJ_ENABLE_FSMOUNTASROOT environment variables and set the values to 1. The PRJ_BOOTDEVICE_ATAPI variable designates the IDE storage device as the boot device. The PRJ_ENABLE_FSMOUNTASROOT enables the file system to mount as the root file system. Click the Apply button followed by the OK button to complete the configuration.

Once this is done you are ready to build your first Windows CE Operating System.

From the VS 2005 IDE select Build│Build Solution to build the OS image from the OS design project.

OS Compile & Build

When the build process is complete the resulting files are generated in following release directories.

For the Debug image


For the Release image


Searching the above directories locate the file called NK.bin this is the CE 6.0 image.

There is one more section to this article which I will be posting on Monday, it will deal with downloading the image onto the ebox.

Thanks for reading