How to: configure Windows to boot from a USB

All the PVR drivers and support files need to be added to the Target Designer specification in the XPe image just built to have the complete PVR OS build. The basic Hauppauge drivers have INF scripts.

These need to be turned into a component definition using the Component Designer – this can consume the INF file, process its dependencies and produce an SLD component definition file.

Specific driver files are added to a repository directory and this is also recorded in the SLD file before it’s imported into the component database. The Hauppauge component can now be added to the OS specification in the Target Designer.

Next steps

The Hauppauge applications for viewing TV, scheduling, recording and codecs are all provided as WISE installation EXEs. There are three options for handling this:

■ Use a tool such as Inctrl5 to snapshot your machine before installing the applications, then go through the install process and use Inctrl5 to ‘diff’ your development machine. This will list out the files and registry entries created during the install of the application/codec – you could then build a component based on the files and registry entries

■ Add the components to the operating system to allow the installers to run on the booted XPe operating system image. If you boot to a custom shell then you’ll need to allow an ‘administrator option’ that gets you out to a command prompt so you can run the installers

■ Add the installers to the ‘run once’ key so they get installed on first boot

For simplicity, my OS image is using the Windows XP Explorer User Interface shell, which will allow me to use option 2. If I was building a more customised OS image I would have to explore implementing options 1 and 2. Because the Hauppauge application software uses an MDB database file to store channel data, we also need to add the Microsoft Data Access Component install to the image. This can be obtained from the Microsoft website.

Now our PVR OS image is complete, it can be built by pressing [F7] in the Target Designer. This causes a complete OS image to be assembled in the C:\Windows Embedded Images directory. The contents of this directory can then be copied to the boot-prepared USB Stick. For this PVR project I’m using the enormous 32GB Corsair Survivor.

When you first boot the created image, the OS needs to configure itself using the ‘First Boot Agent’. This takes a while. After this, boot times are typical of XP.

Once MDAC and the Hauppauge applications are installed, we can configure them to view and record TV. The system takes 40 seconds to boot. The image size is 682MB.

So, we’ve built a specific Windows XP Embedded OS image to provide a custom device with Windows functionality, all booting from a USB stick. This works smoothly, particularly with the Corsair sticks, which have good performance. However, your motherboard BIOS must support booting devices at high speed USB 2.0 to make this function well.