USB drivers for OS/2

Release date: 
Saturday, 8 February, 2003




USB basic driver stack including UHCI, OHCI, EHCI (USB 2.0) support, always required and to be installed first!

All this drivers are the result of Lars Erdmann's efforts and now support also isochronous transfers!

Basic USB Device Driver Stack for OS/2 Warp Programmer’s Reference, Version 1.1 reprinted Courtesy of International Business Machines Corporation on 08/12/2013. Thanks to International Business Machines and Martin Iturbide for mediating!

This software is distributed as compressed package. You have to download and manually install it; if prerequisites are required, you will have to manually install them too.

Manual installation

Available both as ZIP and WarpIN package:

  • download the ZIP package to temporary directory and unpack it to destination folder;
  • the WarpIN package is self-installing.

OS/2 Warp4 >= fixpak13 or equivalent is required to use these drivers. See below for download link(s).

Following ones are the download links for manual installation:

USB drivers for OS/2 v. 10.244 (17/5/2022, Lars Erdmann) Readme/What's new
changes in 10.244: USBUHCD,USBOHCD,USBEHCD: 1) again, fix all HD drivers to chain in "isoInfo" structure into global linked list BEFORE adding the iso TDs to the schedule, see 10.242  local copy
USB drivers for OS/2 v. 12.12 (2/4/2022, Arca Noae LLC) Readme/What's new
USB drivers update for ArcaOS and OS/2 In this release =============== This release is intended to update an existing installation. The installer will not install or change UHCI, OHCI, or EHCI host controller drivers but it can install XHCI and certain class drivers. This release contains the following files: The Host Controller drivers and USB driver: - USBXHCD.SYS (USB 3.x XHCI hardware driver) - USBEHCD.SYS (USB 2.0 EHCI hardware driver) - USBOHCD.SYS (USB 1.x OHCI hardware driver) - USBUHCD.SYS (USB 1.x UHCI hardware driver) - USBD.SYS (USB driver) The Human Interface class drivers - USBHID.SYS (Human Interface driver) - USBKBD.SYS (USB Keyboard driver) - USBMOUSE.SYS (USB Mouse driver) Some other class drivers: - USBMSD.ADD (USB Mass Storage Device driver) - USBCOM.SYS (USB COM port and modem driver) - USBPRT.SYS (USB printer driver) - USBAUDIO.SYS (USB Class 1 Audio driver) - USBMOS.OS2 (Moschip USB to Ethernet driver) Other files: - USBRESMG.SYS (USBCALLS driver) - USBCALLS.DLL (USBCALLS DLL) - USBCALLS development sample code Copyrights and Licensing ======================== Copyright (c) 2011-2022 David Azarewicz <> All rights reserved. Copyright (C) 1992, 2000-2001 IBM Corporation. All rights reserved. Portions of the code may also contain modifications from the contributors to this code such as Lars Erdmann, Wim Brul, and others, to whom we are very grateful for their work. Binary programs and documentation for the USB drivers are licensed to and distributed by Arca Noae, LLC. Important! By downloading or using this software, you acknowledge that you have read and consent to the license agreement contained in the separate License.txt file, that you understand it, and that you agree to be bound by its terms. Installation ============ The distribution is a self executing WarpIn package. Simply run it. This release is intended to update an existing installation only. Except for XHCI, the installer will not check for which host controllers you have in your system and it will not change the host controller drivers in your config.sys. If you are running ArcaOS, the installer will check for XHCI controllers and will modify your config.sys accordingly. The installer cannot install the XHCI driver on non-ArcaOS systems so you will not see the XHCI driver in the package list on those systems. The installer will only update the USBAUDIO driver if a version 11.x or 12.x driver is already installed. The USBAUDIO package will not be available if you have a version 10.x driver installed. The installer will not overwrite an existing version 10.x driver. On the Packages page, make sure you select and/or deselect the drivers you want and/or don't want to update. Many drivers are a matched set and cannot be updated individually. For this reason matched drivers are grouped into packages and cannot be selected individually. USBRESMG.SYS and USBCALLS.DLL are a matched set and must be the same version. There are many different old versions of USBRESMG.SYS and USBCALLS.DLL distributed with various other packages. If you are having problems with the USBCALLS interface, make sure that you are not using mismatched versions. Beware of other versions of USBCALLS.DLL in your LIBPATH or current directory. Starting with version 11.01, the usbcalls library was reorganized to try to merge the functionality from all the different versions and create a universal interface. A few versions were incompatible and those incompatible interfaces were discarded in favor of the more capable, more popular modern ones. If your application is very old or was linked with an incompatible library, you will need to relink your application with the new library. The version 12.x drivers require USBD.SYS to load before the HC drivers in CONFIG.SYS. This is different than the old 11.x drivers. The Warpin installer changes the CONFIG.SYS if necessary. Getting Support and Reporting Problems ====================================== For more information about the USB drivers please visit: and click on SUPPORT. Or go directly to the USB support wiki at: Requirements, Limitations, and Known Problems ============================================= If a device is plugged into a root hub and powers up in an inoperative state, or if the BIOS puts the device into an inoperative state, the device will not work until it is repowered (ie. plugged in after bootup). This applies to any type of device, but especially hubs and KVM switches when a non-compliant device is plugged into them. This is a hardware limitation, not a driver defect. This problem exists on all other platforms as well. WARNING: The OS/2 DASD/IFS architecture is not designed to handle aborted disk transfers well. DO NOT disconnect or remove a USB MSD while a transaction is active, or when an error recovery is in progress. Always wait until the I/O is finished. Failure to wait will result in lost data and/or traps. Be aware that if a cache is used, the disk I/O may be delayed. An eject or reboot should be safe provided that you wait until it finishes. USBAUDIO -------- The OS/2 USB audio driver in this release is developed to support any USB audio device that follows USB Audio device class 1 specifications. This driver will not work on class 2 audio devices. To use this driver you must have the following prerequisites: 1. A USB audio device that conforms to the class 1 specification. 2. Basic USB support must be installed (HC driver, USBD). 3. Multimedia services must be installed. 4. The USBAUDIO driver must have already been installed in order to be updated by this release. USBXHCD ------- Current known limits and problems with USBXHCD.SYS: 1. Isochronous transfer support may not be fully tested due to the lack of compatible drivers and applications. You may experience reduced performance and/or additional problems on systems that are not fully up-to-date or are not in the standard Modern Hardware configuration. Specifically, make sure you are are using the latest Arca Noae 14.203 SMP kernel, the latest ACPI PSD, and that you are *not* using the /VW switch for the PSD. Some old vintage devices may not respond correctly to standard USB protocols. The USB3 spec and consequently XHCI hardware enforces strict compliance with the USB standards. If you have one of these non-compliant devices, please let us know and we will investigate if a workaround is possible. Some older USB class drivers may not be entirely USB3 compliant, or may have defects that were tolerated with the old USB2 stack. These drivers will need to be updated before they will work with the Arca Noae USB3 stack. The USB stack will block access to XHCI connected devices for drivers which are known to be XHCI unsafe. Change Log ========== v.12.12 02-Apr-2022 - David Azarewicz USBCOM: Fixed USB3 issues. Added support for some newer PL2303 devices. USBD: Added protection from some XHCI unsafe drivers. USBCALLS: Added protection from some misbehaved applications. XHCI: Added isochronous support. May not be fully tested due to the lack of compatible drivers and applications. v.12.11 05-Jan-2022 - David Azarewicz USBD: Added device descriptor verification to reject bad devices. OHCI: Fixed typo in RM strings. USBMSD: Added missing endpoint stall recovery. HID: Fixed descriptor parser to handle unusual global sequences. XHCI: Added workaround for VirtualBox port change defect. XHCI: Don't accept transfers for not-ready endpoints. v.12.10 16-Nov-2021 - David Azarewicz USBPRT: Fixed mutex issue that can cause a driver hang in some error coditions. USBMSD: Fixed problem attaching devices with physically removable media. USBD: Fixed port status data/timing problem that caused bad port status reads. XHCI: Changed how initial device endpoints are pre-configured. v.12.09 11-Jun-2021 - David Azarewicz USBCALLS: Enhanced buffer management to accomodate some peculiarities with certain non-compliant applications. USBMSD: Added preliminary GPT support. Standardized some RM strings. v.12.08 30-Mar-2021 - David Azarewicz USBD: Fixed problem configuring a device when multiple class drivers claim it. USBMSD: Fixed some buffer problems. USBMSD: Cleaned up and fixed eject logic. USBMSD: Fixed multi-LUN device attach. USBMSD: Added support for disks larger than 2TB. XHCI: Reworked transfer ring structure and management. v.12.07 28-Jul-2020 - David Azarewicz All drivers now check interface version rather than driver version for compatiblity. All drivers have improved resource manager strings. EHCI: Cleaned up Isochronous buffer management. Scheduled processing of Isochronous buffers earlier. KBD: Corrected scan codes for F13-F24 USBD: Implemented CheckService interlock. USBD: Fixed enumeration when a default address conflict. XHCI: By default route USB2 ports to EHCI controllers on systems with switchable ports. v.12.06 28-May-2020 - David Azarewicz EHCI: Fixed IOCtl pointer verification error. v.12.05 09-Apr-2020 - David Azarewicz DOCS: Changed where documentation is installed. USBD: Fixed device attach on large hubs. USBD: Fixed hub descriptor read on SS hubs. USBMSD: Enhanced error recovery algorithm. USBMOS: Added setting threshold for rev C chips. v.12.04 01-Mar-2020 - David Azarewicz Added new USBMSD driver with many fixes including: SMP fixes, stability fixes, bad pointer/random error fixes, buffer management fixes. USBD: Fixed max packet size problems. USBD: Added support for SS hubs. USBRESMG: Fixed a trap on certain IOCtl calls. USBMSD: Added SS device support. USBMOS: Added to distribution. v.12.03 01-Sep-2019 - David Azarewicz USBD: Significant changes to accomodate XHCI connected hub support. USBOHCD: Fixed a problem with isochronous transfers. USBEHCD: Fixed a problem with isochronous transfers. USBXHCD: Added error/stall clearing. v.12.02 31-Mar-2019 - David Azarewicz USBCALLS driver (USBRESMG.SYS) is now 32 bit. Significant changes throughout all drivers to accomodate USB3. This includes massive changes to USBD.SYS and minor changes to all the other HC drivers. Fixed a problem with abnormal termination in the USBCALLS driver. v.12.01 05-Jan-2018 - David Azarewicz All HC, USBD, and most class drivers are now 32 bit with a 32 bit non-thunked inter-driver interface. v.11.17 08-Jun-2017 - David Azarewicz Added support for keyboard auto-repeat. Fixed bandwidth allocation for certain types of 1.x devices when plugged into a 2.0 hub. v.11.16 08-Jun-2017 - David Azarewicz Misc cosmetic changes for debugging. v.11.15 30-Mar-2017 - David Azarewicz USBD: Fixed a MaxPacketSize error when initializing high speed devices. v.11.14 27-Nov-2015 - David Azarewicz Fixed a problem booting from USB devices. v.11.13 03-Jul-2015 - David Azarewicz Fixed another buffer management problem in USBCALLS interface. Added version checking to prevent using USBCALLS.DLL with wrong usbcalls driver. USBCALLS: Incorporated some changes from Wim. USBD,HC: Incorporated some hub changes from Lars. v.11.12 13-May-2015 - David Azarewicz Changed the way devices are initialized to accomodate some so-called buggy devices. Fixed buffer management problems in USBCALLS interface. v.11.11 01-Apr-2015 - David Azarewicz USBKBD: Fixed error handling USBMOUSE: Fixed error handling USBEHCD,USBOHCD,USBUHCD: Fixed a problem with extremely slow devices USBHID,USBAUDIO,USBCOM,USBPRT,USBD fixed a problem with concurrent device initialization. OHCI: Fixed a problem with isochronous transfers. Misc other minor changes. v.11.10 07-Mar-2015 - David Azarewicz USBCALLS: Reworked the way the DLL is built. Added query version function. USBCALLS: Fixed a transfer size problem which caused transfers to fail. USBRESMGR: Added query version function. USBD: Changed the way devices are initialized. USBEHCD,USBOHCD,USBUHCD: Added transfer timeout and conflict logic. USBEHCD,USBOHCD,USBUHCD: Fixed a problem working on Warp4 systems. USBOHCD: Fixed a problem that caused transfers to be lost. USBOHCD: Fixed an error detection problem. USBOHCD: Fixed a problem with default address transfers. USBCOM: Fixed a trap that could occur when certain devices are connected. Fixed an issue that could cause random traps in class drivers. Many other fixes and improvements so numerous I didn't keep track. Restructured the Warpin package to work on both OS/2 and eCS systems. v.11.09 10-Jan-2015 - David Azarewicz USBCALLS: Fixed a compatibility problem USBRESMGR: merged a fix from Wim. EHCI: Fixed a queue management problem EHCI: Reworked BIOS/OS ownership change KBD: Fixed a problem with shared devices Added version detection to prevent problems with using incompatible versions. Reworked and enhanced tracing capability. v.11.08 12-Aug-2014 - David Azarewicz USBD: Fixed a problem with some devices not attaching USBPRT: Fixed some SMP issues USBRESMGR: updates from Wim. USBCALLS: updates from Wim. v.11.07 19-Mar-2014 - David Azarewicz Fixed a failure on some UHCI controllers Create resource manager entries for mouse and keyboard devices. Serialize the initialization of HID devices. Temporarily added /S switch to USBMOUSE.SYS and USBKBD.SYS to allow reading product ID strings. Added USBPRT.SYS to the distribution. Added USBAUDIO.SYS to the distribution. v.11.06 11-Dec-2013 - David Azarewicz Updates to USBCOM, USBRESMG, USBKBD, USBHID, USBMOUSE Some fixes for keyboard and mouse on one device. Created WPI package for installation. v.11.05 12-Sep-2013 - David Azarewicz Implemented ISO changes from Lars' branch. Added some class drivers to the distribution. Fixed PL2303 support in USBCOM driver. v.11.04 14-Aug-2013 - David Azarewicz Implemented some trace and RemoveTDList changes from Lars Implemented data toggle changes from Lars v.11.03 23-Jul-2013 - David Azarewicz Changes to device enumeration based on changes from Lars branch Fixed another trap during device de-enumeration. v.11.02 (10.193) 14-Jul-2013 - David Azarewicz Some code cleanup Merge in some changes from Lars. Fixed some traps when doing device enumeration. Fixed a device enumeration problem. Fixed setting interrupt handler. Fixed a problem that caused some quirky systems to not work. Improved tracing information. v.11.01 (10.192) 14-May-2013 - David Azarewicz Cleanup and modernize build environment. Updated to modern build level string. Merged in some changes from Lars. Added ACPI suspend/resume support. Fixed lock/unlock routines which were causing hangs. Fixed an excessive CPU load problem. Fixed a problem which caused interference with some applications when USB is active.
USB drivers for OS/2 v. 11.17 (8/10/2017, Arca Noae LLC) Readme/What's new
This is a maintenance release and includes minor fixes and enhancements. Specifically, this version fixes keyboard auto-repeat so that it works for all USB keyboards. This version also fixes the ability to use certain unusual types of USB 1.x devices when plugged into a USB 2.0 hub.
USB drivers for OS/2 v. 11.16 (8/6/2017, Arca Noae LLC) Readme/What's new
Change Log ========== v.11.16 08-Jun-2017 - David Azarewicz Misc cosmetic changes for debugging.
USB drivers for OS/2 v. 11.15 (30/3/2017, Arca Noae LLC) Readme/What's new
Change Log ========== v.11.15 30-Mar-2017 - David Azarewicz USBD: Fixed a MaxPacketSize error when initializing high speed devices.
USB drivers for OS/2 v. 11.14 (27/11/2015, Arca Noae LLC) Readme/What's new
Change Log ========== v.11.14 27-Nov-2015 - David Azarewicz Fixed a problem booting from USB devices.
USB drivers for OS/2 v. 10.84 (8/2/2003, Einhandler von Schranzenstaad) Readme/What's new
2003/02/07 Unofficial Release 10.84 USB 2.0 drivers compiled from DDK by Einhandler von Schranzenstaad  local copy
Record updated last time on: 18/05/2022 - 05:25

Translate to...

Add new comment