locked
add additional usb devices to windows embedded image RRS feed

  • Question

  • Hi,

    I`ve created a windows embedded image by ice & tap.exe (together with windows 8). After the installation, I want to be able to add some additional usb devices - for example usb-midi-devices from every company. How could I do that? Cause I didn`t know all usb vendor ids and the windows embedded image doesn`t contain any usb-midi device driver.

    When I plug in such a usb-midi device to my windows embedded system, I will get the information (popup window) from windows that I`ve to restart my system due to some system changes. After that restart windows is no longer able to boot and launch my shell - even if I unplug the usb-midi device.

    best regards

    Bernd

    Thursday, April 4, 2013 3:45 PM

Answers

  • Lots of questions:

    1. Yes, create device driver modules for all your drivers, and include all the modules in the image.

    2. If the USB device is not connected on startup, the drivers will be in the driver store but not loaded. When the device is first connected, the driver loads, and you might be asked to reboot.

    3. WES is intended for fixed function devices. The problem you are introducing is to randomly install hardware. To avoid the end users from seeing a the reboot request, you have to plug in all the devices so the drivers load... then you create your master image.


    www.annabooks.com / www.seanliming.com / Book Author - Pro Guide to WES 7, XP Embedded Advanced, Pro Guide to POS for .NET

    • Marked as answer by bsu Friday, April 5, 2013 11:33 AM
    Thursday, April 4, 2013 7:50 PM

All replies

  • Sounds like two issues here. The first is to include as many device drivers in the image to support the hardware you want. When a device is plugged in, the driver gets loaded and the system will ask for a restart. Unless, you have already plugged in the devices during OS install or separately before running sysprep, the user will be asked to restart the system.

    Second, why the OS didn't restart correctly is a different matter.


    www.annabooks.com / www.seanliming.com / Book Author - Pro Guide to WES 7, XP Embedded Advanced, Pro Guide to POS for .NET

    Thursday, April 4, 2013 4:10 PM
  • Sounds like two issues here. The first is to include as many device drivers in the image to support the hardware you want. When a device is plugged in, the driver gets loaded and the system will ask for a restart. Unless, you have already plugged in the devices during OS install or separately before running sysprep, the user will be asked to restart the system.

    How can I add specific usb devices to my image by ice? Do I have to create a modul for each usb device by module designer? Because in ICE there are only a few usb packages under driver/usb, where I can only add several usb devices at all.

    The OS starts always as expected. Only if I add additional usb components to the system where the drivers are not included in the windows image.

    In a second test,  I install the windows embedded image on my system without usb devices connected to the system besides the keyboard. After the windows embedded installation I added some specific usb components, where the usb drivers where included in the windows image. I also had to restart the system. Before the restart, I checked the usb drivers in the device manager. Everything looks great. All usb components where recognized correct.

    After the restart, looking into the device manager, I can see that the required usb drivers where recognized with a question mark and  do not work due to a driver loading problem. "Windows can not load the device driver for this hardware. The driver may be corrupted or missing (Code 39)".

    In the event manager I will get a "Windows Kernel PNP" message with the event 219. The driver driver/WinUSB failed to load for the device USB\VIDxxxx\PIDxxxx

    Do you know how I can solve such a problem? If the usb components where connected to the system during the windows embedded installation, everything works as expected.


    One last comment: I`m using the unified write filter.


    • Edited by bsu Thursday, April 4, 2013 4:42 PM
    Thursday, April 4, 2013 4:28 PM
  • In a second test,  I install the windows embedded image on my system without usb devices connected to the system besides the keyboard. After the windows embedded installation I added some specific usb components, where the usb drivers where included in the windows image. I also had to restart the system. Before the restart, I checked the usb drivers in the device manager. Everything looks great. All usb components where recognized correct.

    After the restart, looking into the device manager, I can see that the required usb drivers where recognized with a question mark and  do not work due to a driver loading problem. "Windows can not load the device driver for this hardware. The driver may be corrupted or missing (Code 39)".

    In the event manager I will get a "Windows Kernel PNP" message with the event 219. The driver driver/WinUSB failed to load for the device USB\VIDxxxx\PIDxxxx

    Do you know how I can solve such a problem? If the usb components where connected to the system during the windows embedded installation, everything works as expected.


    One last comment: I`m using the unified write filter.
    ok the problem is the write filter. If I disable the write filter I also have to restart the system but after that all specific usb drivers are loaded successfully. Could you tell me which registry entries I have to add to the exclusion-list from the write filter so that all usb drivers will be loaded?
    Thursday, April 4, 2013 5:05 PM
  • one question more: "When a device is plugged in, the driver gets loaded and the system will ask for a restart." Is this a normal behaviour by indows embedded? Because if I plug the same usb-device into a computer running windows 8 -> windows doesn`t require a system restart to recognize and init the usb device.
    Thursday, April 4, 2013 6:13 PM
  • Lots of questions:

    1. Yes, create device driver modules for all your drivers, and include all the modules in the image.

    2. If the USB device is not connected on startup, the drivers will be in the driver store but not loaded. When the device is first connected, the driver loads, and you might be asked to reboot.

    3. WES is intended for fixed function devices. The problem you are introducing is to randomly install hardware. To avoid the end users from seeing a the reboot request, you have to plug in all the devices so the drivers load... then you create your master image.


    www.annabooks.com / www.seanliming.com / Book Author - Pro Guide to WES 7, XP Embedded Advanced, Pro Guide to POS for .NET

    • Marked as answer by bsu Friday, April 5, 2013 11:33 AM
    Thursday, April 4, 2013 7:50 PM
  • Lots of questions:

    1. Yes, create device driver modules for all your drivers, and include all the modules in the image.

    2. If the USB device is not connected on startup, the drivers will be in the driver store but not loaded. When the device is first connected, the driver loads, and you might be asked to reboot.

    3. WES is intended for fixed function devices. The problem you are introducing is to randomly install hardware. To avoid the end users from seeing a the reboot request, you have to plug in all the devices so the drivers load... then you create your master image.


    www.annabooks.com / www.seanliming.com / Book Author - Pro Guide to WES 7, XP Embedded Advanced, Pro Guide to POS for .NET


    thank you very much for answering my questions.
    Friday, April 5, 2013 6:43 AM