Jump to content

Windows 98SE (with 98SE2ME) and a recent USB composite device


RetroOS

Recommended Posts

How to get Windows 98SE (with 98SE2ME) to work with a recent USB composite device

Background

I wanted to switch between two PCs, one Windows 98SE, and the other Windows 7.

There are basic KVM switches that switch PS/2 keyboard/mouse and VGA.

However, I wanted to switch audio (and not just stereo!), printer, scanner, and so on.

I also wanted DVI switching.

So, I found a switch box, or KVMP, that switches peripherals as well.

In all, it does USB 2.0 devices (built-in hub) including it's own ports for HID keyboard and HID mouse, 6 audio lines (7.1 channels, line in, microphone), and DVI.

Great! Just what I wanted.

Installation

So, I hooked up the Windows 7 PC, and it detected the USB composite device and child devices, and worked correctly.

However, when I fired up Windows 98SE, it was a different story.

I have 98SE2ME and NUSB 3.3 installed.

Windows 98SE detected the USB composite device and prompted for a driver.

So, I plugged in a PS/2 keyboard, and proceeded.

There were two options:

- usb.inf - the standard Windows 98SE drivers

- usbme.inf - the standard Windows Me drivers from 98SE2ME.

I started with the 98SE drivers... BSOD!

Restarted... BSOD!

Solution

After some messing around and many restarts, I determined that Windows 98SE was dead...

So, I rolled back the registry to the last known good registry save.

Windows 98SE started okay, and redetected the USB composite device.

This time I selected USBME.INF to use the Windows Me drivers.

That worked and I arrived at the desktop.

However, the HID devices were not detected.

I checked the Device Manager and discovered that the USB composite device had failed with a ntkern.vxd code 2 failure.

The driver it was using was usbccgp.sys (4.90.3000 - original Windows Me).

So, after a number of wasted restarts, I thought I would try the Windows 98SE version...

However, Windows 98SE does not have this file.

Well, I reasoned, maybe Windows 2000? No such driver (it uses usbhub.sys).

Okay then, what about Windows XP KB822603 (5.1.2600.1243) version of usbccgp.sys?

It worked!

The other USB devices were all detected okay, and the shared keyboard and mouse were now working.

So, I further reasoned, maybe the Windows XP SP3 (KB936929) version of the file (5.1.2600.5512) would work too?

Sure enough, it works perfectly, and has been running with no USB problems for some weeks now.

So, this is how I got a recent USB composite device and child devices working in Windows 98SE.

Please note however, that you will need at least 98SE2ME, and probably also NUSB 3.3.

Maybe it would be possible to include the usb.inf file from Windows Me and the usbccgp.sys file from Windows XP SP3 in NUSB?

Edited by RetroOS
Link to comment
Share on other sites


Great find, RetroOS! :thumbup

I've just compared USB.INF and USBME.INF (BeyondCompare is perfect to do this), and I think they might be consolidated into a single .INF, but lots of testing will be needed, of course. But it sure seems possible, from this quick inspection.

Link to comment
Share on other sites

How to get Windows 98SE (with 98SE2ME) to work with a recent USB composite device
I assume that a "recent" USB Composite Device is a device for which there is no manufacturer-provided Win98 driver. BTW, could you explain very briefly what a Composite Device is, I am not quite sure. I thought it was kind of an internal USB hub, built into the box, under the hood.
Please note however, that you will need at least 98SE2ME, and probably also NUSB 3.3. Maybe it would be possible to include the usb.inf file from Windows Me and the usbccgp.sys file from Windows XP SP3 in NUSB?
I am using an HP2605dn Color LaserJet printer, which has a USB connector and an Ethernet connector. On both my laptop and desktop I have installed first the OrangeWare driver, then NUSB 3.3, without uninstalling the OrangeWare driver, so both drivers co-exist. When I installed the HP2605dn printer under Win98SE, it first detected a USB Composite Device and the location of the USB 2.0 driver was \INF\OEM0.INF [=the OrangeWare driver, ousb2.INF]. \INF\USB.INF was used only when I installed the printer at the USB 1.1 connector of my old laptop.

The HP2605dn is the only Composite Device I use (except for a special foreign language USB keyboard). It works fine, but it was a big can of worms to install under Win98SE. The HP2605dn has manufacturer-provided drivers for Win98SE, your KVM switch probably doesn't. Congratulations that you got it to work under 98SE2ME anyway.

I use NUSB as a driver for USB mass storage devices, not as a driver for a USB hub. Expanding the functionality of nusb to more USB devices would be a great next step.

Edited by Multibooter
Link to comment
Share on other sites

...BTW, could you explain very briefly what a Composite Device is, I am not quite sure. I thought it was kind of an internal USB hub, built into the box, under the hood.

...

A simple explanation to your question, is that a USB Composite Device is a single USB device with more than one function.

For example, the KVM I have is a single USB device (the root device is the Composite Device) that has three child devices being a USB 2.0 Hub, a USB HID Keyboard, and a USB HID Mouse.

Some PC-Card/ExpressCard mobile data cards have an internal USB hub connected to a USB composite device with a USB CD (virtual) for installing the software, a USB cellular wireless device, and a Mass Storage Device (flash storage card).

Another example is a printer with a flash card socket where the printer and mass storage device are part of the composite device.

The operating system will always detect and load the driver for the composite device first before it can detect the other child devices.

There are exceptions to this explaination.

Some USB devices function as compound devices where each function is seen from the operating system as a separate device.

An example might be a webcam with a built-in microphone.

Here is some good technical USB information for those interested:

http://www.microsoft.com/whdc/connect/usb/usbfaq_intro.mspx

http://www.microsoft.com/whdc/connect/usb/usbfaq_intermed.mspx

Edited by RetroOS
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...