Installing Windows 7 on Machines without PCI-USB2 Bridging

Technical Memorandum OM/GTM/017/001

By the wicked Witch of the West
March 2017

1 Introduction

Despite the introduction of Windows 10 most embedded systems developers are still running Windows 7 on their development machines. This is likely to continue until Microsoft produces updates to Windows 10 that make it more controllable for critical systems development. Developers continuing to use Windows 7 but upgrading to new hardware do, however, face a well-known technical problem.

Most modern desktops and laptops have USB3 ports interfaced to the CPU by PCI-USB3 bridging. Unfortunately, while Windows 7 has drivers for PCI-USB2 bridging, it has none for PCI-USB3 bridging. Thus, even if some of the ports on a machine with PCI-USB3 bridging are themselves USB2 ports, Windows 7 cannot support them.

The first manifestation of this problem is the inability to install Windows 7 on PCI-USB3 bridged systems. It happens when the user is asked to enter data to set up the installation language and national keyboard layouts. At that point both USB keyboards and mice become inoperative and installation can proceed no further.

2 Software-based workarounds


A search on the internet for a solution to this problem will throw up various workarounds based on the creating a Windows 7 installation image that does have the correct USB3 drivers. Unfortunately, these solutions are cumbersome, poorly described, reliant on downloads of other software, and not always reliable. Such a workaround is, moreover, wholly unfit for the purpose of creating a well-controlled test environment such as is needed for, say, compiler validation. A better alternative is to use a hardware-based solution. Such a solution is described in the next section.

3 Hardware-based solutions

Hardware based solutions rely on avoiding the use of PCI-USB3 bridged USB ports during Windows 7 installation. There are two different approaches depending on whether the installation target is a laptop or a desktop.

3.1 Laptop solution

If installing Windows 7 on a PCI-USB3 bridged laptop, simply use the laptop’s own keyboard and mouse pad during Windows 7 installation. These are rarely supported via a PCI-USB bridge whether USB2 or USB3. Hence, when Windows Installer asks for language and national keyboard data, you can enter them easily and the installation can proceed to completion. So far, this author has not encountered a laptop on which this solution does not work.

After installation, any required USB3 drivers can be downloaded and installed in the normal way. For this purpose, Snappy Driver Installer (google for it) is both effective and easy to use. Should you be setting up a highly-controlled system that should never be connected to the internet, then simply download Snappy Driver Installer on another machine and use it offline to put Windows 7 USB3 drivers on your target machine.

3.2 Desktop solution

Where a desktop supports USB2 only by PCU-USB3 bridging, you will need a PCI or PCIe USB2 card. (The author used a StarTech card – Part No. PEXUSB4DP – UKP 32.00 from Amazon.) Install this in the target machine and connect the keyboard and mouse to it. Since Windows 7 does have PCI-USB2 drivers, it will detect the keyboard and mouse and the installation again does not get stuck when it asks for language and national keyboard data.

Once Windows 7 is installed, then install PCI-USB3 drivers as described for a laptop. When those drivers are installed, you can then plug the keyboard and mouse into the systems PCI-USB3-bridged ports and it should work normally. Once it is working normally with keyboard and mouse on PCI-USB3 bridged ports, you can remove the PCI or PCIe USB2 card and use it again.

4 Troubleshooting

The only problem the author has so far encountered with these solutions is that on a PCI-USB3 bridged Lenovo S510-10KY desktop, the machine will not boot from a Windows 7 install DVD unless the keyboard is plugged into a PCI-USB3 bridged USB port. The problem occurs when the user is asked to press any key to boot from the optical drive. When that happes the BIOS expects the keystroke to come via one of the machine’s PCI-USB3 bridged ports. The solution is simple: Plug the keyboard into the PCI-USB3 bridged port to enter the keystroke that starts the boot from DVD, then unplug it and plug it into a USB2 port on the PCI-USB2 card ready to enter nationality and keyboard data.

5 Your comments

The author and Phaedrus Systems would like to hear from people who try these workarounds, particularly if you hit problems that we so far haven’t.