XP Professional for Embedded Devices – Cannot change PID with MUI pack applied
Symptoms
If you have XP Professional Embedded with an MUI package – e.g. German installed and applied and you try to change the Product Key via the Telephone activation window (msoobe /a) the windows will just hang after you click “Change Product Key”.
Cause
The MUI pack files miss an important function in the javascript oobeutil.js. This file is located in the MUI pack directory under C:WINDOWSsystem32oobeMUIxxxx where xxxx stands for the language ID (e.g. 0407 for German).
Workaround
- To solve this issue open the oobeutil.js file in the oobe root folder (C:WINDOWSsystem32oobe) and copy the function StorePID () to your clipboard.
- Open the oobeutil.js in the MUI subfolder (C:WINDOWSsystem32oobeMUIxxxx) and paste the function to the end of the file.
- Save the file
Alternatively you can also copy the whole file to the MUI subdirectory.
Written by Wolfgang Unger
March 9, 2009 at 12:52
Posted in Uncategorized
Automatically enter the PID in XP Embedded Builder
If you don’t want to enter the PID in XP Embedded Builder all the time you can have XP Embedded Builder to do this for you.
For this please do the following:
- Create a textfile named PID.txt
- Enter the Product Key in this file including the dashes (e.g.: AAAAA-BBBBB-CCCCC-DDDDD-EEEEE)
- Save the PID.txt to the root of a USB flash drive
- Connect the USB flash drive to the target pc where you will boot XP Embedded Builder
Now every time you boot XP Embedded Builder with this USB flash drive connected the PID will be entered automatically from this file.
Written by Wolfgang Unger
February 3, 2009 at 19:41
Posted in XP Embedded Builder
Additional functionality for custom components in XP Embedded Builder
In the version 2.1 of XP Embedded Builder new functions were included which can be used in the custom components.
For creating customer components in XP Embedded Builder please have a look here.
Create batch commands that will run in FBA at RunOnce
You can create commands that will be executed in the RunOnce phase of FBA. To do this set the action parameter in the Step section of the component configuration file to finalize:
Sample
[Step_xx]
Action=finalize
Arg0=regedit.exe /s myregfile.reg
Arg1=del myregfile.reg
Create components for XP Professional like images only
In the new version of XP Embedded Builder it is possible to create XP Professional like images with all Embedded Features included by just selecting one option during the setup process.
If you want to create a component that will be also available for the XP Professional like installation or a component which should only be available in the XP Professional like setup mode you can use the following parameters in the component configuration.
[Component]
isXPPro=TRUE
forXPProOnly=TRUE
isXPPro –> this parameter will tell XP Embedded Builder that the component can be used in the XP Professional like setup mode too.
forXPProOnly –> this parameters tells XP Embedded Builder that the component can only be used in the XP Professional setup mode.
Additional Parameter for all XPPro options:
XPProStartStep –> this parameter will tell XP Embedded Builder where it should start with the installation.
Sample:
[Component]
Name=Network
Version=1.0
Group=Network
Order=550
isXPPro=TRUE
XPProStartStep=3[Step_0]
Action=copy
Arg0=DataWindows
Arg1=[InstallWinDir][Step_1]
Action=reg
Arg0=Import
Arg1=[InstallWinDir]System32configSYSTEM
Arg2=reg.reg[Step_2]
Action=reg
Arg0=Import
Arg1=[InstallWinDir]System32configSYSTEM.SAV
Arg2=reg.reg[Step_3]
Action=Network
If you select to install the Network component in XP Professional like setup mode, XP Embedded Builder will start the component installation at Step_3. In this case it means that it will only display the preconfigured Computername setup dialog which ships with the Network component. The rest of the installation specified in Step 0-2 will be skipped because the networking components are included in the XP Professional like version by default.
Written by Wolfgang Unger
February 3, 2009 at 19:30
Posted in XP Embedded Builder
Creating and deploying images using WAIK and imagex
Before beginning with the image creation or deployment – please download the WAIK tools from Microsoft (http://www.microsoft.com/downloads/details.aspx?FamilyID=C7D4BC6D-15F3-4284-9123-679830D629F2&displaylang=en) and create either a bootable DVD or bootable USB stick which contains imagex. For this please follow the documentation that comes with the WAIK tools.
Preparation
Please follow the preparation steps for both – image creation and image deployment as you’ll need to have a working network connection.
Setting up a DHCP server
You can skip this step if you have a DHCP server running in your network.
- Create a new dialup connection – the settings like number, etc. are not important.
- Open the settings of the created dialup connection and enable internet sharing for the local network adapter which will be connected with your target device.
- Check the IP-address of the local network adapter – it should be 192.168.0.1
Create a network share
On your development machine set up a network share where the image will be located. Please make sure you can access the network share from another pc and that you have write access to this share.
Mapping a network drive in Windows PE
- Boot the target machine from the previous created media.
- In the command prompt type ipconfig to check if the pc has a valid ip address. You can use ping (e.g. ping 192.168.0.1) to test if the connection to the development pc works.
- Map a network drive to your development pc.
net use N: \<IP-Address><Sharename> [/User:<pcname><username> <Password>] Sample
net use N: \192.168.0.1images /User:devmachineadministrator admin
Create an image
To create an image we will use the imagex tool which comes with the WAIK tools. For more information on imagex please have a look on Microsoft Technet http://technet.microsoft.com/en-us/library/cc722145.aspx
- Type the following command
imagex /capture C: N:image.wmi “Master image” You can also use additional paramters such as /compress to compress the image. For additional arguments please type imagex /?
Deploy an image
Before we will deploy the image we will prepare the target disk to make sure that the image can boot after the deployment.
Preparing the target disk
- Run diskpart and type the following commands
LIST DISK
DISKPART> list disk
Disk ### Status Size Free Dyn Gpt
——– ———- ——- ——- — —
Disk 0 Online 149 GB 0 B
Disk 1 Online 149 GB 0 B
Use this command to find out the disk id of the disk that should be used as target.
SELECT DISK 0 (instead of 0 use the appropriate disk id of your target disk)
CLEAN (this will remove all partitions on the target disk)
CREATE PARTITION PRIMARY (this creates a primary partition on the target disk)
ACTIVE (set the previous created partition active)
ASSIGN LETTER = C (assign the drive letter C)
FORMAT FS=NTFS QUICK (do a quick ntfs format)
EXIT (quick diskpart)
Deploy the image
- Run the following command to deploy the image from the network share
imagex /apply n:image.wim 1 c: - Reboot your machine – it should now boot from the image properly.
Written by Wolfgang Unger
January 29, 2009 at 16:15
Posted in Windows XP Embedded
How to integrate/remove EWF in a running XPe image
Installation
1. Copy the following files from your Repository to your target device.
| Filename | Targetdirectory + filename |
| ewfdll.dll | Windowssystem32ewfdll.dll |
| ewfinit.dll | Windowssystem32ewfinit.dll |
| ewfmgr.exe | Windowssystem32ewfmgr.exe |
| ewf.sys | Windowssystem32driverewf.sys |
| ewf.inf | Windowsinfewf.inf |
| ewfntldr | ntldr |
2. Run regedit.exe
Right click on the key HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumRoot and select permissions.
Change the permissions for your user to full and click apply.
3. Copy the following and change %ProtectedVolume% to the ARC path of the Volume you want to protect. You can find the ARC path for the boot volume in the boot.ini – it will look like this ”multi(0)disk(0)rdisk(0)partition(1)”
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEM]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSet]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{71A27CDD-812A-11D0-BEC7-08002BE2092F}]
"UpperFilters"=hex(7):45,00,57,00,46,00,00,00,00,00[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEWF]
"ErrorControl"=dword:00000001
"Group"="System Bus Extender"
"Start"=dword:00000000
"Type"=dword:00000001[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEWFFBA]
"OVSize"=dword:00000000
"OVLevel"=dword:00000001
"PVConfigs"=dword:00000001
"EwfEnable"=hex(7):31,00,00,00,00,00
"EnableLazyWrite"=hex(7):30,00,00,00,00,00
"PVDisk"=hex(7):30,00,00,00,00,00
"PVPart"=hex(7):31,00,00,00,00,00
"PVOptimize"=hex(7):30,00,00,00,00,00
"PVType"=hex(7):31,00,00,00,00,00[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEWFParameters]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEWFParametersProtected]
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEWFParametersProtectedVolume0]
"Type"=dword:00000001
"ArcName"="%ProtectedVolume%"
"Enabled"=dword:00000000
4. Import the saved registry file.
5. Reboot
The EWF should be integrated now into you image but it is disabled by default. You can enable it by running ewfmgr c: /enable
Removal
1. Locate the following files on your target device and delete them
| Filename |
| Windowssystem32ewfdll.dll |
| Windowssystem32ewfinit.dll |
| Windowssystem32ewfmgr.exe |
| Windowssystem32driverewf.sys |
| Windowsinfewf.inf |
| ntldr |
2. Copy the ntldr from your Repository to the target devices root directory.
3. Run regedit.exe
4. Remove EWF from the following key
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{71A27CDD-812A-11D0-BEC7-08002BE2092F}]
"UpperFilters"
5. Delete the following key in the registry
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEWF]
6. Reboot
The EWF should be completely removed from your system now. Please do not forget to copy over the ntldr before rebooting!
Written by Wolfgang Unger
December 22, 2008 at 19:25
Posted in Windows XP Embedded
Cannot access CD/DVD drive with Windows Explorer
When you try to explore the content of a DVD or CD drive in XP Embedded with your Windows explorer nothing happens or the explorer will automatically jumps to the next item in the folder list. By using the command line you can access the CD/DVD drive without problem and you are able to run applications too.
This behavior is can be caused if you have a CD/R(W) drive and you added the IMAPI – CD Burning component and use Minlogon. In this case Windows tries to access the temporary write cache which is normally located in the documents and settings folder for the user but with Minlogon this folder does not exist.
To resolve this error just open the properties of the CD/R(W) drive and go to the Recording tab. In this tab disable the “Enable CD recording on this device” checkbox and click ok. Now you can access the CD/DVD drive again.
Written by Wolfgang Unger
December 2, 2008 at 18:27
Posted in Windows XP Embedded
Driverinstallation in XP Embedded fails with message “problem installing error occurred. A service installation section in this INF is invalid”
If you install a driver in XP Embedded you get the following error and the device driver installation fails.
“A problem installing <devicename> error occurred. A service installation section in this INF is invalid”
This will happen when the driver inf file contains a file which is not available in the driver folder and not available on the Windows system. Some drivers assume that the files already exist because they are there on a full XP Pro installation.
To solve this and be able to install the driver open the inf file in notepad and have a look into the the CopyFiles section.
Check if all files are either in the windows folders (system32, system32drivers,..) or in the driver folder.
If a file is missing copy it over from a XP Professional system and retry the installation –> if all files are there the installation should succeed.
Written by Wolfgang Unger
November 4, 2008 at 18:04
Posted in Windows XP Embedded
Driverinstallation cannot find files
When you install drivers under XP Embedded you get the error message that the system cannot find a specific needed file.
This is a normal behavior in XP Embedded and can happen even if the files are already located in the correct folders.
Just click browse and search for the following filetypes in the following folders.
| .sys | Windowssystem32drivers |
| .dll | Windowssystem32 |
| .drv | Windowssystem32 |
If a file is not there just copy it over from an XP Professional system or extract it from the Repository folder.
You should also setup a filter in Target Designer to search for the missing file and include the component for the next build.
Written by Wolfgang Unger
November 4, 2008 at 17:50
Posted in Windows XP Embedded
EWF error: failed getting protected volume configuration with error 1.
When you created an image with EWF and run ewfmgr you get the following error message: “Failed getting protected volume configuration with error 1. incorrect function.”
One reason for this can be that you specified the ARC path for the volume wrong.
You can change the ARC path in the running image in the following registry key:
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesewfParametersProtectedVolume0]
ArcName=multi(0)disk(0)rdisk(0)partition(1)
You can find the naming convention for the ARC Path here: http://support.microsoft.com/kb/102873
If it is still not working check the following registry entry:
The UpperFilters key must contain the value Ewf
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{71A27CDD-812A-11D0-BEC7-08002BE2092F}]
UpperFilters=”Ewf”
After each change make a reboot and try running ewfmgr c: again.
Written by Wolfgang Unger
November 4, 2008 at 17:41
Posted in Windows XP Embedded
Deploying images
The easiest way to deploy an image (if you are not using a CF card which can be easily removed from the target device) is to use the Windows PE environment from Target Designer CD1. Using Windows PE you can deploy the image via a network share very easy.
Prequisits
Target Designer CD1
Network Share which contains your XP Embedded image
DHCP Server to assign an IP to WinPE
Deployment
Connect the target device to the same network as the development machine.
Boot Windows PE from Target Designer CD1.
Use ipconfig to check if you have received a valid IP address.
Map a network drive to the development machines share using the following command
net use N: \<IP of development machine> /User:domainusername
Enter the password if required.
Run diskpart to prepare the target disk.
To create a single primary partition on the first disk in the target disk use the following commands
SELECT DISK 0
CLEAN
CREATE PARTITION PRIMARY
ACTIVE
ASSIGN LETTER=C
EXIT
Format the previous created partition
format c: /fs:ntfs /q /y
Copy the image from the network share to the target device
xcopy N:*.* C: /H /E /Y /V /C
Reboot
Now you have successfully transfered the image from the development machine to the target device and it should boot correctly.
You can of course automate the commands from above by using a batchfile and a diskpart file. You can run diskpart with the /S parameter to specify a scriptfile.
Written by Wolfgang Unger
October 3, 2008 at 17:08
Posted in Windows XP Embedded