Troubleshooting

Wikis > USB Subsystem > Troubleshooting

Troubleshooting the USB Drivers

Check these things first

  • Make sure you have installed the USB drivers using the WarpIn package with all the default package selections and settings, that you have allowed the installer to overwrite and unlock all existing files, and you have allowed it to modify your CONFIG.SYS.
  • Make sure all the USB drivers are installed in the standard location (\os2\boot) and that there are no other USB drivers installed in other locations on your boot disk.
  • Make sure all of the USB drivers are the same version and make sure that your CONFIG.SYS is loading the correct drivers. You should not mix versions since the drivers are designed to work together and changes in some drivers might not be compatible with older versions of other drivers.
    • USBEHCD.SYS, USBOHCD.SYS, USBUHCD.SYS, USBXHCD.SYS, and USBD.SYS are a matched set and must all be the same version. (Your system may not use all of these drivers.)
    • USBHID.SYS, USBKBD.SYS, and USBMOUSE.SYS are a matched set and must all be the same version. These must also be the same version as the Host Controller drivers and USBD.
    • USBRESMG.SYS and USBCALLS.DLL are a matched set and must be the same version. There are many different 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. You can use any pair of USBRESMG.SYS/USBCALLS.DLL you want. However, if you open a ticket, you must be using the versions in the official Arca Noae distribution. If you are unsure about which version to use, use the one from the Arca Noae distribution. It attempts to unify all the various versions and should work in all cases.
  • If you are using any third party drivers or software, try replacing those with Arca Noae components. If you are having problems with third party drivers or software, contact the provider of that software for support.
  • Make sure you are not using any switches on any of the USB drivers (except USBMSD.ADD). No switches are necessary and some switches can make the drivers not work properly. If no switches are specified for USBMSD, the defaults are zero floppies, zero CDs, and 4 removables. See the USBMSD ReadMe.
  • Make sure you have the number of USB removable devices that you intend to use simultaneously specified using the /REMOVABLES parameter on the USBMSD command line. See the USBMSD ReadMe. Note that multi-slot card readers must be able to attach all the slots simultaneously, so the number specified by the /REMOVABLES parameter must include all the slots in the card reader.
  • If you are using USB floppy drives, make sure you have the number of floppies that you intend to use simultaneously specified using the /FLOPPIES parameter on the USBMSD command line. See the USBMSD ReadMe.
  • If you are using USB CD/DVD drives, make sure you have the number of CD/DVD drives that you intend to use simultaneously specified using the /CDS parameter on the USBMSD command line. See the USBMSD ReadMe. The use of the USBCDROM.ADD statement in config.sys is not needed. Use the /CDS parameter on the USBMSD.ADD driver instead.
  • Make sure you do not have tracing enabled for the USB drivers. Tracing is generally not supported on version 12.x drivers.
  • If you have a very old version of the libusbcalls RPM package installed, and you update the libusbcalls RPM package, and then you get missing file errors when booting, simply reinstall the USB WarpIN package to replace the missing files.
  • If you are having problems with MSD type devices, and you are running eCS and have the eCenter USB widget installed, try uninstalling the eCenter USB widget to see if that is causing your problems. The eCenter USB widget is known to cause problems with MSD type devices. To eliminate the eCenter USB widget as a cause of the problems, you must completely uninstall it, including its DLL. Note that the AN Removable Media widget that comes with ArcaOS does not have these problems and is OK to use.

Known Issues

  • Certain nonstandard keyboards such as the Corsair K70 and K100 will only work when switched to “BIOS”. These keyboards generate incompatible reports when switched to any other mode.
  • Sometimes the keyboard doesn’t work during booting. For example, you cannot press ENTER when there are errors in the config.sys that require you to press ENTER. OS/2 relies on the system’s BIOS to provide all necessary services (disk, keyboard, video, etc.) while it loads and runs itself and its own drivers. If the BIOS stops providing a particular service such as USB keyboard emulation before the USB drivers are loaded and running, then you get this problem. Everyone blames the USB drivers even though they are not even running yet. This is a BIOS issue, not a USB driver issue. You can work around this problem by adding PAUSEONERROR=NO to your CONFIG.SYS, so that the kernel won’t stop and wait for you to press ENTER if there is an error.
  • Removing a USB MSD (thumb drive, memory stick, etc.) without properly ejecting it and waiting for all I/O to finish can cause traps and/or data loss. This is *not* a USB issue. 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 can result in lost data and/or traps. Be aware that if a cache is used, the disk I/O may be delayed.
  • Class 2 USB audio devices. Arca Noae does not provide a driver for Class 2 USB audio devices. If you are using a driver from a different provider, you must contact that provider for support.

Driver Order in CONFIG.SYS

The order of the USB base drivers in CONFIG.SYS changed from version 11.x to version 12.x. The old version 11.x drivers required USBD.SYS to come after the HC drivers:

BASEDEV=USBOHCD.SYS
BASEDEV=USBEHCD.SYS
BASEDEV=USBD.SYS

For the 12.x drivers, USBD.SYS should come first:

BASEDEV=USBD.SYS
BASEDEV=USBEHCD.SYS
BASEDEV=USBOHCD.SYS

USB MSD Disk Interoperability

In order to use MSD type memory sticks or disks with ArcaOS, the media must be partitioned and contain LVM information. This type of media is compatible with other operating systems. However, some other systems (Windows, for example) can create media that is not partitioned and does not have LVM information on it. Please see the Preparing USB MSD Disks page for information on how to make your USB memory stick or USB disk compatible. For ArcaOS 5.1.0 and later, most FAT16 and FAT32 formatted MSD type memory sticks can be used regardless of whether they are partitioned or not. HPFS and JFS formatted media must always be partitioned.

Opening a Ticket

Before opening a ticket, make sure your issue is not already listed in the Known Issues section above.

If you open a ticket, a TestLog log file is always required. You can save a lot of time by attaching the TestLog log file to your ticket when you open it, rather than waiting for the developer to ask for it. Always make sure you capture the TestLog log file when the problem exists.

Unless specifically requested, don’t provide comparisons or reports from different operating systems. The ArcaOS, and OS/2 USB stack is completely different than USB on other systems. It has a different architecture, different implementation, and it operates differently. Any comparisons with or reports from some other OS just don’t provide any useful information. Also, any results, IDs, reports, etc. produced by Windows, for example, are known to be frequently wrong and cannot be trusted to be accurate. In general, unsolicited reports of how something works on another system like Windows can interfere with and discourage work on your problem.

Uninstalling the USB widget from the eCS eCenter

  1. Right click on the USB widget in the eCenter and select “Delete widget”.
  2. Close the eCenter
  3. Open a command window and navigate to “\ecs\system\ewps\plugins\xcenter” on your boot disk.
  4. Rename, move, or delete USBSHOLD.DLL so that it cannot be loaded.

Capturing A TestLog log file

If you don’t already have the current version of the TestLog program, you can download it here: Get TestLog

Open a command window and execute the testlog command

testlog generic

Attach the created log file to your ticket. Do not ZIP the log file.

This entry last updated: by David A