Serial driver in Windows 2000

Status
Not open for further replies.

BReeves

Well-known member
Hi Folks,

I'm working with a kiosk that is running Windows 2000 and I need to load the serial driver. When I point it to oem26.inf the computer just reboots but doesn't install the driver. I have copied usbser.sys to the Windows Drivers folder as it wasn't copied over when I installed Service Pack 4.

I am using a Teensy 2.0 with Keyboard,Mouse,Serial. Using the keyboard commands to talk to the computer and serial to talk from the computer to the Teensy. It works great under XP but this system needs to work under 2000 and have 11 computers that I need to make it work with.

Anyone been able to get the serial driver installed under Win 2000?

Thanks
Bob
 
What would really help is to know if anyone has been able to get the Serial driver loaded under Windows 2000. This would at least tell me if the problem is the Windows installation (maybe something is missing) or the driver.
 
In the very early days of Teensy, perhaps when it was only Teensy 1.0 (and shortly before Microsoft unleashed Vista upon the world), I recall at least one person confirmed everything worked on Windows 2000. That was of course years ago.

Here is a copy of the INF file that was originally distributed before I wrote the installer. To use this, first program your Teensy with Tools > USB Type set to Serial (today we ship every Teensy 3.0 with the blink example compiled as RawHID, so there aren't dire/misleading warnings about missing drivers). Then in the device manager, right-click the unknown device and update the driver. Choose the option to select the location, and navigate to the folder where you extracted this zip file.

I'm pretty sure this works on 2000. It might even work on NT 4. I hope you'll post a followup to confirm if it works, or doesn't work?
 

Attachments

  • cdc_acm_class.zip
    780 bytes · Views: 193
Oh, I believe I see what's wrong here.

I am using a Teensy 2.0 with Keyboard,Mouse,Serial.

The one thing that definitely will NOT work on Windows 2000 is the Serial+Keyboard+Mouse+Joystick option in Tools > USB Type. That's almost certainly the cause of your troubles.

This doesn't even work on XP before SP3 or Vista before SP1, or Macintosh OS-X before 10.7, so Windows 2000 certainly won't support it. You must set Tools > USB Type to only "Serial" without other stuff (remember, this change only takes effect after the next upload), because 2000 is far too old to support the newer descriptors used for that type of USB multi-function device.
 
Last edited:
Two things you might try to work around this are bringing XP's fixes back into 2000, or hacking the descriptors on Teensy.

I have some very old notes that the changes in Windows were related to "Hotfix 918365" or "Fix182465". I have absolutely no more information other than those numbers, but maybe they'll help you search for more info.


On hacking the descriptors, look for these lines in hardware/teensy/cores/usb_serial_hid/usb.c

Code:
        0xEF,                                   // bDeviceClass
        0x02,                                   // bDeviceSubClass
        0x01,                                   // bDeviceProtocol

Perhaps try changing them to 2, 0, 0, or maybe 0, 0, 0, or maybe 2, 2, 1?


You might also try deleting this (the specific feature 2000 didn't support):

Code:
        // interface association descriptor, USB ECN, Table 9-Z
        8,                                      // bLength
        11,                                     // bDescriptorType
        0,                                      // bFirstInterface
        2,                                      // bInterfaceCount
        0x02,                                   // bFunctionClass
        0x02,                                   // bFunctionSubClass
        0x01,                                   // bFunctionProtocol
        4,                                      // iFunction

If you delete those 8 bytes, you MUST decrease these by 8:

Code:
#define KEYBOARD_HID_DESC_OFFSET        ( 9+8 + 9+5+5+4+5+7+9+7+7 + 9 )
#define MOUSE_HID_DESC_OFFSET           ( 9+8 + 9+5+5+4+5+7+9+7+7 + 9+9+7 + 9 )
#define JOYSTICK_HID_DESC_OFFSET        ( 9+8 + 9+5+5+4+5+7+9+7+7 + 9+9+7 + 9+9+7 + 9 )
#define CONFIG1_DESC_SIZE               ( 9+8 + 9+5+5+4+5+7+9+7+7 + 9+9+7 + 9+9+7 + 9+9+7 )

These hacks are totally non-standard and in violation of the USB class specifications.

I've also heard rumors that old version of Microsoft's drivers could handle an utterly non-standard CDC serial with only 1 interface (rather than the standard control+data). How, I do not know. But you might find info if you search a LOT. Hacking these descriptors to non-standard settings probably won't cause any permanent damage (other than perhaps your sanity).

If you find anything that works, please post it here?
 
Last edited:
Hi Paul, thanks for taking the time to do all that research. Have decided to abondon the idea of trying to make it work with 2000 and just go with XP.

Discovered the computers were origionaly shipped with XP loaded and most still have the XP sticker. Not sure why they were downgraded to 2000, maybe the kiosk manfacture had a corporate license or the software needed it. In any case we are replacing everything on the HD so moving to XP won't be a problem plus it will solve my driver issue.

Sorry you wasted your time, I feel bad..
Bob
 
That's alright. It was never really documented whether stuff works on 2000. Hopefully if anyone else ever tries this, they'll find this thread.
 
Status
Not open for further replies.
Back
Top