Windows Embedded Standard 2009 Step-by-Step Deployment – Part II

 

Check also:

Windows Embedded Standard 2009 Step-by-Step Deployment – Part I

Windows Embedded Standard 2009 Step-by-Step Deployment – Part III

After reviewing Post I we’ve set our environment to start building the images.

The process it’s practically the same that we executed on XP Embedded (Post I, Post II and Post III). And again, as I mentioned before, this deployment is oriented to Embedded images booting on diskless devices, so there will be steps that are not necessary if you are not looking for a remote boot environment with Windows Embedded Standard 2009 images.

Building the Image

1. Get hardware information from your target

This step is done with Target Analyzer, that is just an .exe file that compiles all of the hardware necessary information to be included on the image you are building. With the information gathered here, the corresponding drivers will be added to the image.

Since I’m using virtual machines in the same physical server, I’m going to collect hardware data in the same machine where I’m going to build the target image.

1.1 Open a cmd and focus on “C:\Program Files\Windows Embedded\utilities”.

1.2 Run “tap.exe”.

You’ll see that the program recollects information about your devices, and creates a new file on the same folder called “devices.pmq” containing all that data. 

Target analyzer collecting information

The files devices.pmq contains all the hardware information

2. Adding the Drivers to the Image

The image builder from the Windows Embedded Standard 2009 suite is still Target Designer.

2.1 Open Target Designer from Windows Embedded Studio.

2.2 Select create a new image and we are going to name it Embedded2009

Now you have to start creating the image from scratch and the first thing we are going to do is import the hardware information we gathered from Target Analyzer.

2.3 From “File” menu select “Import” and select “devices.pmq” created recently.

2.4 On the “Import File” window click “Start” and the importing process will begin.

Once it’s completed, you can check any warnings generated. In my case, there are several warnings regarding virtual machines synthetic drivers, those can be ignored for now.

The image now is loaded with a bunch of hardware components that the image will use.

3. Using Design Templates and Adding Components

3.1 Check on the Target Designer left pane and expand the “Design Templates”.

Here you’ll find common templates used when you are creating Embedded images. To find more information about each one, right click on the component and select “Help”.

I’m going to select the “Thin Client” component. You can drag and drop the objects to your customized image or right-click and select “Add”.

This component will generate the necessary requirements that, when the dependency check is run, will add other components included on the database. We’ll see that step later on this post.

Since we are using a remote boot environment, two special components are needed to achieve it: RAM Disk Driver (will allow booting from RAM) and System Cloning Tool (will include a kind of sysprep step, called fbreseal, to make each image unique and avoid cloning SID, computer name, etc each time is deployed).

3.2 From the left pane, use the “Search” box and insert “RAM Disk Driver”.

3.3 The component is shown. Right-click on it and select “Add”.

3.4 Repeat the step for “System Cloning Tool” component.

Here’s the chance for you to add any other special component that you want on your image.

.Net Framework 3.5

Silverlight 1.0

Or even more, you can set some of the components properties at this stage. For example: Windows Firewall.

Access Windows Firewall component settings

In here you’ll find much more options that the ones shown on XP Embedded

Turn on/off the Firewall by default on your image

Setting Firewall’s exceptions

Authorizing applications

Opening ports

4. Checking and Solving Dependencies

The main step of the building process is checking the dependencies that are created soon as you add a component to your image.

At this point you’ve configured your image with the proper drivers, customized it adding components and setting their properties; now let’s check what dependencies are been set.

4.1 From “Configuration” select “Check Dependencies”.

4.2 In the “Dependency Check” windows click on “Start”.

The process will start, it will take a few moments to complete. At the end of the process, you’ll see in the lower pane window all the messages that need attention before building the image.

Just double click on each of them to select the proper component to be added and solve the dependency.

Here are some of the common messages that you should see:

Component: “Base Component”. To solve it I’m selecting an standard component “Standard PC”.

Component: “Compression and Expansion Tools”. Solving it with “NTFS” component.

Component: “Regional and Language Options”.English Language Support” to resolve.

Component: “Windows Logon”. I’m selecting “Explorer Shell”.

Soon as you click on “Add” on your last dependency, your image would seem to be ready to the build process, but not quite.

Since you’ve add new components with the dependency check, it’s highly recommended that you run the dependency check again for the new ones.

Soon as you finish this new “Dependency Check” and new and highly important component will appear to be added.

Select your boot loader. In my case I’m using the default loader for XP and 2003 environments: “NT Loader”. If you are trying to protect from any change to your boot environment, you can select “EWF NTLDR” component.

5. Building the Image

Ok, now that we’ve resolved all of the dependencies on our image, we can start building it.

5.1 From “Configuration” select “Build Target Image”.

5.2 Select the folder where the image will be stored. The default folder is “C:\Windows Embedded Images”. Click on “Build”.

Once the build process is complete, you can check the files and folders created.

And verify the image size. In my case is 255mb.

Now the image is completed and ready to be used on any of your targets.

Check the next post about preparing the same image for remote boot on diskless devices.

Check also:

Windows Embedded Standard 2009 Step-by-Step Deployment – Part I

Windows Embedded Standard 2009 Step-by-Step Deployment – Part III

Cheers!

19 Comments »

  1. Hello Marcelo,
    I’m not sure I’m following you on that question, to install what on a virtual machine? The embedded image locally and not using a remote boot server?
    Cheers!
    Augusto

  2. Dear Augusto,

    I have been creating the image with success and run it from the compact flash. However, when I’m trying to run it under virtual PC, the FBA process doesn’t start.
    I’m using the virtual PC to save write cycles to the FLASH (as recommended) but this process does not reach to the firs blue screen.
    Any advice?

    Thank’s,

    Ran.

  3. Hi Augusto,
    To make things clear:
    1. The image is working perfectly once I run it on a FLASH.
    2. When I run the image under Virtual-PC, it doesn’t start even the first blue screen.

    I’m doing so in order to save the thousands of write cycles to the FLASH.
    So, there is no driver issue, only interfacing between the image and the virtual PC.

    B.R.

    Ran.

    • Hello Ran,
      But on which machine or drive you executed tap.exe? Remember that you should run this tool on a same hardware baseline to get all the necessary and correct drivers.
      Cheers!
      Augusto

      • Hi Augusto,
        It was all done on the same machine. But when try to run the image on the virtual PC (on the same machine) the run-time-image does not start.
        Any tip to make it start running?

        Ran.

  4. Hello Ran,
    VirtualPC emulated hardware on a virtual machine does not represents the original hardware, the device drivers you can find them are nothing more than a generic driver that VirtualPC use on a virtual machine.
    Here’s quick example, try using a driver that you have working on your physical machine, install it on a VirtualPC virtual machine located in the same hardware: it won’t work.
    Basically the drivers you’ve selected using tap.exe will never fit into a VirtualPC machine.
    Hope it helps,
    Cheers!
    Augusto

  5. Thank you so much,
    So, the virtual machine can not help in run-time-image for first time for image includes drivers.
    The other solution is to run it in a different partition (dual boot).
    I tried it but got a HAL.dll error (missing or corrupt).
    Then I had problem with the boot.ini and I’m to solve that issue.
    What is the best why to run the first run-time-image, which is not on the FLASH disk?

    B.R.

    Ran.

    • If you want the final image running on a Flash drive, the best way is to use a Flash drive to boot the image.
      Still another way is to get the drivers from the target machine you are trying to boot for the first time (at least hard drive and video), insert them into the image and boot in the new machine.
      BTW: On the last comment of my post regarding XP Embedded Part II it’s a quick explanation on how to insert new drivers into the images.
      Hope it helps,
      Augusto

      • Hi Augusto,

        Well, good news and bad news:
        The good news: I was able to start running the “run-time-image” in another partition.
        The bad news: after few minutes, running in doal boot from the hard disk, I was asked to insert a disk with file: mssmbios.sys. Just after I point to its location, the system stops and reboot.
        This does not happen in the FLASH disk (only when booting from the hard disk).

        Any idea?

        B.R.

        Ran Kalif.

  6. Hello Augusto Alvarez, please answer me.
    For a target machine i’ll use pentium 4/1Gb RAM/8Gb CF-to-IDE srorage.

    Can i install WinXP SP3 on tagret machine and run tap.exe; after i want to work with generated devices.pmq on the VMware with WinXP SP3 and Windows Embedded Studio. In VMware i’ll build image and install it on target machine

    Thank you.

    • Hello there,
      Running tap.exe will obtain the the drivers from the target computer, so basically that’s all you need. Using Embedded Studio running in a VM won’t make any difference as long as you use the .pmq file from the target machine.
      Best regards,
      Augusto

  7. I use windows server 2008 R2 and when I enter “tap.ex”, It occur errror “this program will only run on windows 2000 or windows xp rc1 or greater”. What should I do ?

Leave a comment