Preparing and Installing Windows XP Embedded Images – Part II: Building Images

January 7, 2009 at 12:23 pm | In Windows Embedded, Windows XP Embedded | 17 Comments
Tags: ,

Now that the environment is ready as we’ve seen on the first part of these posts, let’s start on creating our own Windows XP Embedded image. There are involved different kinds of tools to accomplish this, but you will see that is a simple process at the end of it.

The big picture of this process is that the images are built on the server; using the hardware data from the clients.

Target Analyzer

This is the tool that you will use to get the hardware data from the clients.

The data represents all the drivers that the Windows XP Embedded image will include to support the hardware on the clients. When Windows XP arrived you probably noticed that a huge difference appears on the hardware detection of the operating system; it’s mainly because the XP included almost every device driver that was available on the market. With Windows XP Embedded the same thing happens, but since you are customizing images for particular clients you must first find out the hardware that it’s available on them.

Using Target Analyzer it’s very simple:

1. First of all you’ll need access to the client’s machine to run this tool. 

If it’s a virtualized environment where the server and clients will be using same type of host (physical machine) then there’s no need to access to a “client machine” because the hardware will be the same as in the server. If that’s the case, on your server just access to the folder:

C:Program FilesWindows Embeddedutilities

If they are not virtual machines and they have completely different hardware, you should copy those folder files to a client machine.

2. Double click on tap.exe (Target Analyzer Pro).


Note: There’s also a simpler version of Target Analyzer available, named ta.exe. This tool only compiles a short list of your hardware, and is more suitable for smaller environments.

3. The tool stored a file with all of the hardware information, named devices.pmq. You will use that file when creating the hardware image.


Using Target Designer

The Target Designer is the main tool to build the images. Here you’ll add all the drivers necessary for your clients, components of Windows XP Embedded, etc.

1. From the Start menu, All Programs, Microsoft Windows Embedded Studio, open Target Designer

2. Create a new profile of the image that you’ll create. To do that, click on File | New. Select a name for your configuration and click OK to close the dialog

3. The first thing to do is to import the hardware data. This way you will have more chances to succeed, avoiding the “missing drivers” problem. From the File menu click on Import

4. Locate the file that was created with Target Analyzer: devices.pmq. That was left on the utilities folder. Click on Open

5. The Import File dialog will open. Click on Start to begin the process

6. After this process finishes, you’ll see on the center pane that all the hardware components were added to your new image.


Using Design Templates

Now that you have the hardware components added, the next step is to add the required XP operating system components.

On the left pane there are thousands of components that can be included to the images. The Design Templates will help you on adding the right components depending on the client machine profile that you are looking for.

Each template was built targeted at a specific scenario.

You can check on the specific data and components included by each template by right-clicking on any template and selecting Component Help.

To add the components within the template to the current image, you can right-click on the component and select Add, or just drag and drop the component to the image component list.

Adding these templates will not automatically add all the components necessary for the XP Embedded image; those components will be added when the Dependency Check is run, which you will use afterwards.

RAM Disk Driver

When creating a Windows XP Embedded image that will boot remotely, you need to add additional drivers. To be able to remotely load a disk image and keep it on RAM, the RAM Disk Driver is needed. This component is the one that is load to support booting an XP Embedded image from RAM memory.

You can add it simply by using the Search option on the left pane of Target Designer. Use the phrase RAM Disk Driver to find the location of the component

To add the component, you can right-click on it and choose Add, or you can drag it to the center pane.

System Cloning

When you are deploying the environment on more than one client, it is a good idea to use the same image on each client, enabling large scale deployment. To be able to share the image, computer-specific information (such as computer name and security identifier) must be removed from the image.

There is a tool named fbreseal (first boot reseal) that removes this computer-specific functionality. This tool is run on the first boot on the newly installed OS, and prepares the computer for deployment on several clients. When the computer is rebooted, the computer will generate a random computer name and SID.

To add the fbreseal tool, locate and add the System Cloning Tool component.


Checking Dependencies

Now that you added all of the components and design templates necessary for your environment, it is time to check that all the components have the right dependencies in place.

This process will add the components that are missing to complete and guarantee the correct functionality of the image.

1. From the Configuration menu, click on Check Dependencies. This process may take a few minutes depending on the amount of components it has to process. When the process finishes, click on Close to continue

2. When you close the dialog, you’ll notice that there are some new items in the lower pane (“Tasks”). These are related to some dependencies that you need to resolve to complete the image.

3. Double click on each of them and you’ll see a menu of options to decide the correct component for each case. Fix each dependency until you fulfill all of the dependencies. Repeat steps 1 to 3 until you get no more dependencies unsatisfied.

These are the most common dependencies to resolve.

a. Regional and Language Options. To be able to boot the OS, you need to choose which language(s) the operating system will support. Simply select the language that you’ll use on the clients and click on OK

b. Advanced Configuration and Power Interface (ACPI). This component requires a boot loader to be specified. In this case, NT Loader is used (EWF NTLDR is used when booting from a read only media, like a CD)

c. Session Manager. To be able to log in, the system requires a Session Manager. Depending on your project, you will use either Minlogon or Windows Logon. Their main difference is that Minlogon is the smallest and logs in the user automatically as System, and Windows Logon takes more space on the image, but allows logging in as different users

d. User Interface Core. This component requires that the system should support a file system format, such as FAT or NTFS. Since NTFS supports permissions and compression, select it

e. Windows Logon (Standard) requires a shell to be specified. For the purposes of this image, just Command Shell is required


Configuring Components

When you are creating a Windows XP Embedded image, some components provide a configuration pane.

Windows Firewall Settings

If you are deploying the XP Embedded Image with applications that require incoming network connections, the Windows Firewall component must be added and turned off. If the Firewall component is not installed, the default action is to reject incoming connections.

This does not affect outgoing network connections.


Building the Image and the First Boot Agent

After you checked that all the dependencies have been fulfilled, the next step is to build the operating system image.

1. From the Configuration menu, click on Build Image

2. Select a folder to store the files to be copied on the image. The default location is C:Windows Embedded Images

3. Click on Build

4. A message will appear saying that it’s recommended to run the dependency check since there were some changes from the last time that it was run. If there were no significant changes that was made that could make any difference on the dependencies, you can choose No. Otherwise choose Yes.

After completing this process you can access to the folder where the files were introduce and check that the operating system files are created.

With that you have an image ready to be used of Windows XP Embedded, please take notice of the size of this image, because if you are planning on having it with a remote boot on diskless devices you’ll need twice amount of RAM or sufficient space on your USB/Flash device.

On the next post, we’ll see how to use this image on a Remote Boot environment with diskless devices.

Cheers!

Preparing and Installing Windows XP Embedded Images – Part I: Setting up the Environment

Preparing and Installing Windows XP Embedded Images – Part III: Using Remote Boot

17 Comments »

RSS feed for comments on this post. TrackBack URI

  1. [...] Preparing and Installing Windows XP Embedded Images – Part II: Building Images [...]

  2. [...] the previous posts: Setting up the environment (Part I) and building an Windows XP Embedded Image (Part II) we can complete the remote boot process with diskless devices with this last [...]

  3. The firewall component is not needed to accept incoming connections. My images never include the firewall and they certainly accept TCP socket connections. Unfortunately, including the firewall leads to substantial image size inflation. Many networks of XPe systems (such as mine) are isolated from the public Internet and other public networks in which case the firewall is not needed.

  4. The guideline that twice as much target RAM is needed as the image size is frequently repeated but it is a misleading simplification. The guideline is based on the fact that a ramdisk is created in RAM that is as large as the image size so if RAM is twice the image size then there should be “enough” RAM left over. This idea really makes no sense. You need enough RAM so that the needed kernel elements, system DLLs, user code, etc. can fit entirely in the remaining RAM with no paging. Depending on the application this amount can be smaller or much greater than twice the image size. For example if your application creates huge arrays or allocates a large amount of memory dynamically, the guideline is inadequate. On the other hand, if you have a very simple app that uses little memory for data, the guideline is more than adequate.

  5. About the firewall, I didnt’t make much tests on that, but I was quite sure that the FW component was needed… maybe on the tests that I made, I had some other dependency that was corrupting my connectivity.

    Thanks for all the comments, again.

    Cheers!

    Augusto

  6. A nice addition to this document would be how to add a third party driver with the component designer tool, by simply importing in the inf for the driver and doing the release etc. I had to do this for a device of mine because it had a SATA harddrive on it.

  7. Hi,
    Please let me know how to deploy a windows embedded standard image on SATA disk. What are steps to do that and which all components needs to be added.

  8. Hello RR,
    I’m preparing the steps necessary for deploying Windows Embedded, that are practically the same that you con find here.
    You’ll need to add the SATA drivers within the process of building the image, using Target Designer. Try downloading them from the HD manufacturer.
    Cheers
    Augusto

  9. [...] Preparing and Installing Windows XP Embedded Images – Part II: Building Images [...]

  10. [...] 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 [...]

  11. I have a Intel Pro 100 VE network connection. I am trying to build a case supporting network connection. One I import pmq file it does not detect my network adapter. So I added manually. However, when I copy the img file on the development computer. Win xp embedded works but it does not recognize any network adapter. I would be very thankful if you help me to fix the problem?

    • Mohammad,

      You’re going to have to download the driver for that particular nic from intel. Basically it’s going to be the same thing that I had to do to get the SATA chipset to be recognized because I kept getting the 0×07 bluescreen error on image boot. You have to add the driver through the component designer via importing the inf file from the driver that you downloaded. After you do that, there should be a device that shows up in the target designer that you can add to you image and you can bake it in. I need to find my specific docs on doing so but it wasn’t that hard.

      Arwin

  12. Hi Sir,

    I want to build an XPe image for a ibase ATOM based motherboard (IB888). I have setup the development enviroment on my Laptop having Vista as OS, will this make any difference compared to setting up the development eviroment on a machine having XP pro?
    I have followed the procedure mentioned in Part 1 and 2. I have added USB boot 2.0 as I want to install the operating system on a USB. I have checked the dependency and created the image. Also I have selected EWF NTLDR as I am going to burn the image on a CD. Rest I have followed as mentioned in your blog. Do I need to do anything extra other than this to make the system work?

    Awaiting reply.

    Thanks in advance.
    Aziz

    • Hello Aziz,
      Have you check this PDF? http://www.sjjmicro.com/Docs/Articles_XPE/USB%202%20Flash%20Boot.pdf
      Cheers!
      Augusto

    • Hi Aziz,

      I have an atom based processor single board computer:http://www.portwell.com/pdf/embedded/NANO-8045.pdf

      I have the WIN XP embedded and have installed the necessary components to create an image. But I am not sure how to go ahead and create the image considering the chipset is completely different to what I have on my PC on which I have installed the tools. So will running tap.exe actually work in my case? Also how do I add the drivers for the new chipset into the image? It has different Chipset, Audio, Lan and Video drivers.
      Your help would be much appreciated. Also I have a SATA hard drive which I need to run the OS from.

      Cheers!
      Aj

      • Hello AJ,
        I’m afraid that you won’t be able to actually manage to boot an image prepared in a completely different hardware; remember that Windows XP is a HAL dependant OS.
        Still, the drivers can be imported using Component Designer, File > Import and select the INF files.
        Hope it helps!
        Cheers,
        Augusto

      • Hi Augusto,

        Thanks for your reply. So do you think individually adding each hardware component including chipset/audio/video/Lan drivers then using a template to add the OS files would work? So running tap.exe on my Windows desktop and importing that file will obviously not work. I’m confused! I have never created an image using these tools and I don’t have a system running with this SBC to be able to create an image. What do you suggest I should do?

        Thanks,
        AJ


Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Blog at WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.