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

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

37 Comments »

  1. 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.

  2. 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.

  3. 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

  4. 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.

  5. 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.

  6. 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

  7. 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 0x07 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

  8. 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

    • 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

  9. Hello Augusto,

    I followed your instructions and able to run Windows XP Embedded.
    However, it started up and showed me cmd.exe. I didn’t see user interface. I also set User interface core but I didn’t see GUI in Windows XP Embedded at all.
    What did I miss?
    Thank you,
    Pb

    • Hello PB,
      Which design templates did you use? You can check the components included on each by selecting “help”. You’ll see which one fits more into your needs.
      Hope it helps,
      Augusto

  10. why is it you don’t add instructions for including drivers? In your windows standard instructions you just ignore the warnings and then never provide a solution.

    • Hello Lisa,
      The Windows Embedded Standard posts are made using virtual machines and I didn’t require to use any driver regarding the integration components in Hyper-V.
      To add a driver into Windows XP Embedded or Windows Embedded Standard, you need to use “Component Designer”, “Import” and the save the new component. After that, import that file using “Target Designer”, it should now be available in “Hardware” > “Devices”.
      Cheers!
      Augusto

  11. Hi,

    I have build the image in to Windows Embedded image folder and copied all the files to another harddisk which is connected to my deployment server.Once all the files are copied i have removed the harddisk and connected it to the client.And when i booted the machine,First Boot Agent Started and ended with in less than 1 min without any error. From the FBA Log file i have found this

    Wednesday, January 12, 2011

    18:05:57 PM – [FBASetProgressText] Setting PNP Flag…

    Could you please resolve the issue asap…

    Thanks in Advance

  12. Hi Augusto,

    I’m facing issues to load the Operating System without hardisk.

    These are the steps i have followed..
    1,I have build the image
    2,Copied the files to another hardisk and booted it on the client machine.
    3,FirstBootAgent was run successfully and the machine restarted
    4,After the machine restarted FBReseal initiated automatically and i have found a message stating Machine resealed,Press ok to Reboot.
    5.I have clicked ok.once the system got shutdown,i have removed the harddisk and collected the files in it and created a SDI file using those files.
    6,i have given SDI file as boot image in the Remote Boot Manager for the client.
    7.At the client side i have set to boot from Network.
    8.RAMDISK image is loaded.
    9.After the image is loaded i have seen a image written as “Windows Embedded”.

    I’m stuck here,i don’t see any further progress…

    but if i put the harddisk which i have used initially and boot the machine through network,i’m able to load the OS..

    Please the solve the issue ASAP..
    Thanks in advance

  13. Hi Augusto,
    I’m facing issues to load the Operating System without hardisk.
    These are the steps i have followed..
    1,I have build the image
    2,Copied the files to another hardisk and booted it on the client machine.
    3,FirstBootAgent was run successfully and the machine restarted
    4,After the machine restarted FBReseal initiated automatically and i have found a message stating Machine resealed,Press ok to Reboot.
    5.I have clicked ok.once the system got shutdown,i have removed the harddisk and collected the files in it and created a SDI file using those files.
    6,i have given SDI file as boot image in the Remote Boot Manager for the client.
    7.At the client side i have set to boot from Network.
    8.RAMDISK image is loaded.
    9.After the image is loaded i have seen a image written as “Windows Embedded”.
    I’m stuck here,i don’t see any further progress…
    but if i put the harddisk which i have used initially and boot the machine through network,i’m able to load the OS..
    Please the solve the issue ASAP..
    Thanks in advance

  14. Saludos Augusto:

    Estoy creando un Windows Embedded Standard, pero me aparece el siguiente error en el log del Builder:

    Error 1109: Component: “ACPI Multiprocessor PC [Version 5.1.2600.3333, R3333]” requires an additional enabled component not in the configuration

    Espero me puedas ayudar.

    Gracias,

    IRivera

      • Saludos:

        Ya pude resolver esa situacion, pero tengo un problema con la el video intergado, el chipset es un Mobile Intel 945 Express Chipset. La situacion es que la ventana de propiedades habre en una resolucion incorrecta, en vez de abrir cuadrada habre rectangular y las letras de la ventana se ven diferentes a como deberian ser, a demas de que algunas ventanas en ciertas aplicaciones habren incompletas, y esto lo se porque tengo este equipo instalado con Win XP Pro y veo como deberia ser la ventana. Sin embargo le instalo el driver del Chipset e instala bien y la resolucion de 1024 x 768 la acepta sin problema, y en el Device Manager todos los componentes estan instalados. He estado intentando sin exito anadir diferentes componentes de video y codes. Te agradeceria grandemente tu ayuda ya que es lo que me falta para tener listo el Embbeded.

        Gracias por toda tu ayuda,

        IRivera

  15. Hi Augusto

    I have followed your step by step instructions and managed to install and boot XP Embedded .

    But I having three problems . One is there is nothing in the start menu only shut down and restart icons

    USB mouse is not working only ps2 mouse works
    I need to install chipset and video drivers nothing happens when I put a cd in the cd drive i.e. there is no auto run

    • Hello Kaiser,
      Regarding your problems:
      1 – Which design template are you using? As shown in the post, in the help file you’ll get a detailed description of the components included on each of them.
      2 – Probably the USB driver in the machine was not installed, did you create the devices file from the same hardware? If you insert a pen-drive it does not work either?
      3 – You will need to add the chipset and video drivers in the image previously. Or you can also add the CD drive files to use that device, you’ll need manufacturer information about the hardware.
      Hope it helps,
      Augusto

  16. Hi, i’m creating a image and successfully started first boot agent and windows. But i decide to go back and add some components in Target Designer. I’m open Target Designer and import my last configuration file and add some new componens then start Dependency Check with no error and build image again. Copy image files to the formatted another disk, but first boot agent does not start and “Operating system not found” message show in dos screen. How can we start windows successfully again?

    Thanx.

  17. Hi Augusto ,

    I have followed your step by step guide for building WES 2009 Image & Deployed image successfully in the device ..Its very useful ..

    Do you have any materials like this for building an Image in WES 7 and WINCE 6.0 ..If its there , Please let me know where i can get those information to build an image as per our requirement ,,

    Once again , its very useful information , which you posted here ..

    Thanks & Regards ,
    Manjunath.AV

  18. hi agustu

    i created a image by minmum component for thinclient.and it is good.
    i wanted to add some component on it. lke to control panel and add/remove program and…
    but after copy image the system hasnt winxpe.and i computer will be reset everytime
    i dont know are there conflict between components?

    • hi friend,
      Here i share to you all, light tool for helping us to create new categories in target categories via target designer, here i’ll share my own tool that i created myself. This tool can help us to create our own categories in target designer.
      You can download this tool to this link

      http://www.ziddu.com/download/19235582/componentdesignercreatecategories.rar.html

      later ill share with you guys XP minimum requirement and full requirement so that we can customize to minimum and maximum for our target machine belong to customer demand.

  19. Hi, this for weird partitioning install …

    I m trying to install XPe on a Virtual Machine, to simulate a Siemens PCU50, which is based on a PC + XPe sp2. This machine’s drive is organized in 4 partitions

    C:Fat (16) primary with MSDOS on it (500mb)
    D:NTFS (10gb)
    E:NTFS <—- windows XPE should go here (15gb)
    F:NTFS (10gb)

    I tried a few time, but could not get it to work properly myself… so I found en easy way to get it working…. here it is….

    1) prepare the drive as a spare with another machine with PM and setup what ever crazy partitioning you need

    2) use a XP Pro OEM to install itself on the partition you want without formating (done by PM)

    3) you will observe that windows has put the following files on
    c: (fat)
    autoexec.bat
    boot.ini (booting on partition 3!! :))
    config.sys
    IO.sys
    msdos.sys
    ntdetect
    ntdlr
    pagefile.sys
    leave it alone…

    4) windows XP pro installed itself in E as demanded during install
    5) reformat that partition
    6) put all the files you have build earlier during Building the Image and the First Boot Agent.
    7) reboot on the machine… alleluia… it worked for me

    Good luck everyone…

  20. Hi Augusto,
    I have a PC that runs WinXP embedded on a SSD. If I was to purchase or piece together the exact same PC with the exact same components would it be possible to do the following?

    1. Move the SSD to the new PC and boot with no issues
    2. Clone the SSD using a cloner and use the cloned SSD in the new PC

    Thanks in advance for your expertise!

    Regards,
    Dan

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s