USB and OS/2 (Part 2: Ethernet)

By Jonas Buys

OS/2 and hardware... For more than a decade, OS/2 has been misjudged to have very limited hardware support. But in fact, if you dig some further, you'll notice that OS/2 Warp and eComStation offer extreme large and powerful hardware support. Recently, a whole lot has changed ever since USB support became available for OS/2. Over the last two or three years, IBM has provided us with some great device drivers, which enable the use of a great deal of older and modern USB devices with OS/2 Warp family of operating systems.

This article will discuss the use of USB Ethernet NICs on the OS/2 Warp platform family. USB Ethernet adapters give more mobility to laptop and also desktop computers network connectivity.

This article will not discuss the many reasons why USB is inferior to other technologies like e.g. SCSI, nor explain the technical details about USB (for that, please refer to my previous article about USB controllers). Fact is, despite of its limited performance (and this performance limit doesn't matter with today's modern Hi-Speed USB 2.0) USB is a great technology, since it combines ease of use, compatibility with all major operating systems, and especially mobility (USB memory keys, USB Ethernet NICs).

Unfortunately, there often seems to be some misunderstanding related to USB terminology when discussing the Universal Serial Bus technology. That's why a brief and clear overview is given here: So far for a brief overview of technologies. Now, in the "USB technology family", there are some variants:

First, for USB 1.1 (or for USB 2.0 cards that can also use USB 1.1 devices), we have UHCI and OHCI. UHCI is short for Universal Host Controller Interface. It is one particular direction in the USB controller interfaces. It is used by Intel and VIA chipsets. Other brands also can be compatible with UHCI. This is the real standard for USB 1.1. nVidia nForce is also UHCI.

A kind of equivalent of UHCI is OHCI, Open Systems Host Controller Interface. It's another particular direction in USB 1.1, and is mainly used in chipsets branded by SiS, ALi, Opti and Cyrix (Gnode).

Then, there EHCI: Enhanced Host Controller Interface. This is a direction that enables USB 2.0, more to say USB Hi-Speed.

All of these variants are supported using OS/2 Base USB Device Drivers. Today, three major chipsets are used in USB Ethernet adapters. Of course, many more are used, but it is is my intention to get you acquainted with the main technical details about hardware.

The Pegasus chip is the only common USB device on the market that handles 100Mbps Ethernet and Home PNA transceivers. If it's a 10/100 adapter, it almost certainly uses this chip and will likely work with the pegasus chip. There are two variants of this chip: the AMDtek Pegasus AN986 and the PegasusII AN8511 chipset. One remark here, though: if you are planning to use such a NIC on a USB 1.1 port, then be aware that it's impossible to use 100Mbps! USB 1.1 has at most 12Mbps data transfer rate (throughput), and not 100Mbps. Should you be the happy owner of a USB 2.0 Hi-Speed controller, then, of course, your 100Mbps can be used.

Don't be confused however; I'm talking about the data transfer rates. Of course, using USB 1.1, you can get your network synchronized at 100Mbps, only the data transfer rates will be much slower.

Then, there's the Kawasaki Labs KL5KUSB101 chipset.This is the one for which the IBM USB Ethernet Device Driver was developed. USB NICs supporting only Base10-T, 10Mbps will most likely use this chipset. This is the most wide-spread accepted chipset for USB networking. Another chip is the CATC chipset, though less wide-spread. The CATC NetMate also supports 10Mbps, half duplex only. The CATC chip is used in their CATC's own products, Belkin's BusStation, Fujitsu and NEC USB products, and the SmartBridges' network adapter.

If you're planning to use USB Ethernet on OS/2 or eCS, the only solution for you is to pick out a USB NIC equipped with the Kawasaki KL5KUSB101(b) chip.

There simply are no drivers available at this moment for the other chipsets.

The IBM USB Ethernet drivers offer superb support for any device using the Kawasaki KLSI-5USB-101 or LSI-5USB-101b chipset; however, specific vendor and device IDs must be specified during installation. By entering these numbers, it doesn't matter whether the specific device is supported by the driver (so, that the driver contains some possible IDs to search for), but it serves as a generic driver. These IDs are hexadecimal numbers that are the identity card of the USB Ethernet Card. Upon initialization, a device drivers searches for a device using these two numbers. The IDs have a four-digit hexadecimal notation, like this: 0x0123. Four digits? Of course, the 0x is only included in front to remind people that we're dealing with hexadecimal notation. Thus, letters a through f can also occur in the IDs!

If you've got a Software Choice or a Passport Advantage subscription, then you can download USBETHER.EXE from the OS/2 Warp Device Driver Pak OnLine website. This USBETHER.EXE device driver package provides you with IBM's most current support for Universal Serial Bus (USB) Ethernet devices on the OS/2 Operating System in a self-extracting compressed format. When you run the file, you will notice three files: the USBETHER.TXT, which contains a VERY limited IBM readme, USBETHR.NIF, which contains the network adapter configuration file, and USBETHR.OS2, an NDIS compliant network adapter driver.

In order to use this driver, you need to have the basic USB (USBBASIC, USBEHCI.EXE) OS/2 Warp device drivers installed and loaded, and a supported USB host controller.

For a listing of compatible and tested USB controllers, visit the OS/2 Warp Compatible Hardware List (www.os2warp.be).

The driver will work on OS/2 Warp 3, OS/2 Warp 4 (Merlin), OS/2 Warp Server for e-business (Aurora), OS/2 Warp 4 Convenience Packages 1 and 2 (MCP1, MCP2), OS/2 Warp Server for e-business Convenience Packages 1 and 2 (ACP1, ACP2).

Any version eComStation is also supported. Drivers won't work on any other OS/2 version.

In your config.sys you can specify some additional parameters to optimize the driver to your specific needs. This is not covered in this article, but a very detailed discussion of these switches is covered in the OS/2 Hardware InfoSheet about usbether.exe, in which also in-depth technical details are covered about the NIF file.

The driver can be automatically configured during eComStation 1.1's setup. If you haven't got one of the earlier referred-to IBM subscriptions, the best choice for you is to buy eComStation.

Installation is very simple. The most difficult part is specifying the IDs, already mentioned before. Follow these steps to install the USB Ethernet device driver:
 * First, make sure you've downloaded the USBETHER.EXE file from the OS/2 Warp Device Driver Pak OnLine website. This self-extracting file only contains the USB NDIS compliant network adapter driver. YOU ALREADY NEED TO HAVE USB BASE STACK DRIVER PACKAGE (USBBASIC.EXE or EHCI.EXE) INSTALLED AND INITIALISED BEFORE YOU CAN USE YOUR USB NIC! For simplicity, you should download the USBETHER.EXE file in x:\IBMCOM\MACS, where x: is the drive letter OS/2 is installed on. From there, you should run it.
 * Open MPTS - Network Adapters and Protocol Services (click right mouse button on desktop, select System Setup menu, double click on MPTS icon in System Setup window). Next, press the Configure button. Select LAN adapter and protocols and press Configure button. Since you already unzipped the driver in the \IBMCOM\MACS directory, MTPS will list it automatically. If you didn't ran the USBETHER.EXE file in this directory, perform this additional step: Press Other adapters button. Specify a path to the USB Ethernet adapter driver files (use default path A: if the files were copied to floppy disk in drive A:). Finally, press OK. If the path was correct, and the files were found, they will now be copied to your hard disk automatically.




 * Now you must add the driver to your configuration in MPTS. See the image below. In the Network Adapters field, select the USB ETHeRnet Adapter. Click the Add button below the field. Now the driver will appear I the Current Configuration field.
 * Now the most important part: you must specify the Vendor ID and the Device ID for your network card. These hexadecimal specifications can be found in the section OS/2 CHL Tested USB Ethernet Adapters, to be found as a later section in this article. If you are using the 3COM USB Network Interface 3C19250, then you shouldn't change these IDs, and you should skip this step of installation. How should you do this? Select USB ETHeRnet Adapter listed in the Current Configuration field, and click the Edit button. That causes a similar thing as shown in the second image. In the Parameters for USB ETHeRnet Adapter dialog box, click in the USB Vendor ID field, and change the value so that it matches your adapter's one. Then do the same for Product ID field. When finished, confirm the changes by clicking the OK button. Note that you needn't include the “0x” in front when entering the IDs.




 * Now add the required protocols from the Protocols list to the USB Ethernet adapter. You can do this by selecting the appropriate network interface card (NIC) in the Current Configuration field, selecting a protocol in the Protocols field, and clicking Add. The associated protocol should appear indented underneath the NIC to which it was assigned. You can change the protocol setting by selecting the assigned protocol in the Current Configuration field, and clicking the Edit button.
 * Press OK button to close Adapter and Protocol Configuration dialog box. Then, click the Close button to close Configure dialog box. Afterwards, click Exit button to close MPTS utility.
 * This completes the installation procedure. MPTS should ask if you agree on modifying config.sys, and you should confirm. You can install any other USB device drivers and after that you must REBOOT the system.

This section will is ONLY applicable if you have the desire to configure your USB Ethernet Card while installing eComStation 1.1 to your computer system. If eCS is already installed, you should go ahead as was described in the previous section, thus using MPTS. eComStation 1.1 comes with a brand new even more powerful installer, which was developed in cooperation with IBM using OS/2's unique CID technology. eCS 1.1 is a very complete and up-to-date product, and it includes all drivers available via SoftWare Choice.

This section will tell you what to do once you've reached the Network adapters and protocols screen during installation of the eCS 1.1 operating system, where you can configure your NICs. This section won't however cope with the entire eCS 1.1 installation! We take for granted that you perform an advanced installation. The image below shows you the appropriate part of setup we are going to study here:



Perhaps the eCS 1.1 installer doesn't detect your USB Ethernet card automatically, though this rarely happens. If this is the case, proceed as follows: click the Add adapter button. (Should a wrong network card be listed, then click the name of the wrong NIC, and instead of using the Add adapter button, use the Change adapter button.) A dialog box appears. Scroll to the bottom of the list of available NIC drivers. There you will see ''USB ETHeRnet driver. Click on its listing, and then click the OK'' button. Now you can add the desired protocols by using the Add protocol button (analogous to this action in previous section). Should you feel lost at any time, then you can always read the Description right above the lower navigation buttons. By clicking the Help button, an extensive online help library lies within your grasp.

Once the driver has been added, you must specify the vendor and device IDs. To accomplish this, just click the indented entries Product ID and USB Vendor ID to enter respectively the device and manufacturer IDs. Where can you enter the hexadecimal numbers? In the image above, you see the field Product ID (will change automatically in USB Vendor ID if you click the USB Vendor ID entry under the heading of the USB Ethernet NIC). You can either specify these IDs by clicking the up and down arrows at the right of the field, but this only increments the already listed value with one unit. To enter the IDs manually, double-click on the hexadecimal number already listed, which will cause the hex number to be selected. Just type the desired ID number, and this will appear in the field.

Once this all has been finished, click the Next button at the bottom of the screen to continue installation.

You can also skip NIC configuration during setup, and then later - once OS is installed -configure your network using MPTS.

If you're planning to use USB Ethernet on OS/2 or eCS, the only solution for you is to pick out a USB NIC equipped with the Kawasaki KL5KUSB101(b) chip. There simply are no drivers available at this moment for other chipsets.

In order to use a USB NIC, you need to have a USB controller that is compatible with OS/2. For more information about OS/2 USB compatible controllers, visit the OS/2 Warp Compatible Hardware List website.

Though USB Ethernet cards provide mobility for a very low cost, you should keep in mind the limited 10Mpbs throughput. If you're prepared to cope with this limitation, or if you're not interested in speeds, then no problems exist, and you can go ahead and browse for your card.

Also, you must have either PassPort advantage, or a SoftWare Choice subscription. The driver is also included in any version of eComStation.

The following table shows a listing of all USB Ethernet adapters equipped with a Kawasaki 101b chipset that have been tested and found to be compatible with OS/2 Warp and eCS via the IBM USB Ethernet Device Driver. Also the manufacturer and device IDs are listed. Of course, testing continues, and you can find the latest compatible devices on the OS/2 Warp CHL Web site. You can also get hardware support for OS/2 and eCS there. This listing is, naturally, not complete. If you think you've got a device with the Kawasaki KLSI5USB101b chip, simply try it out. To get the manufacturer and device IDs, use the USB Recourse Manager, available via Netlabs.

How to use this utility? The following image shows this windows; you'll immediately see the manufacturer and device IDs...
 * Unzip the usbres.zip into x:\os2, where x is the driver on which OS/2 is installed;
 * Add the statement “DEVICE=c:\os2\usbresmg.sys” to your CONFIG.SYS;
 * Reboot your system
 * From an OS/2 prompt type usbres;
 * Now you will get a listing of devices attached to your computer's USB port(s);
 * Right-click the device and choose the option View Device Report;
 * A small windows now opens and lists all technical information. From here, you can see the IDs.

Install the IBM USB Ethernet Device Driver, and enter these IDs. You'll soon find out whether de device works or not.

Note that if you're using eCS 1.1, USB Recourse Manager may already be installed on your system. Try typing usbres from an eCS Command Prompt, which should launch the application if installed. These devices do NOT work, since they are equipped with a Pegasus chipset:
 * 3Com USB Ethernet 3C460B,
 * ADMtek ADM8511, ADMtek AN986, ADMtek AN986A USB MAC,
 * Accton USB 10/100 Ethernet Adapter,
 * Allied Telesyn Int. AT-USB100,
 * Belkin F5D5050 USB Ethernet,
 * Billionton USB-100, Billionton USBLP-100, Billionton USBEL-100, Billionton USBE-100,
 * Corega FEter USB-TX,
 * D-Link DSB-650TX, D-Link DSB-650TX(PNA), D-Link DSB-650,
 * ELCON EPLC10Mi USB to Powerline Adapter,
 * Elsa Micolink USB2Ethernet,
 * Hawking UF100 10/100 Ethernet,
 * IO DATA USB ET/TX, IO DATA USB ET/TX-S,
 * Kingston KNU101TX Ethernet,
 * LANEED USB Ethernet LD-USB/TX, LANEED USB Ethernet LD-USB/T,
 * Linksys USB10TX, Linksys USB100TX, Linksys USB Ethernet Adapter, Linksys USB USB10TX,
 * MELCO/BUFFALO LUA-TX, MELCO/BUFFALO LUA2-TX,
 * SMC 202 USB Ethernet, SMC 2206 USB Ethernet,
 * SOHOware NUB100 Ethernet, SOHOware NUB110 Ethernet,
 * SpeedStream USB 10/100 Ethernet, smartNIC 2 PnP Adapter.

The Kaweth driver for offers the very same functionality as the IBM OS/2 USB Ethernet Device Driver in that it supports a great deal of KLSI5USB101b-equipped network interface cards. Unfortunately, it appeared there were no mechanism for specifying the manufacturer and device IDs. This means that you must use one of the devices for which the driver offers specific support. Fortunately, most of the devices listed in the table above are supported. For step-by-step instructions about how to install and use this device driver, please consult the OS/2 Hardware InfoSheet about usbether.exe.

Apart from the Kaweth Kawasaki driver, other drivers supporting other chipsets in USB Ethernet devices are available for a lot of Linux distributions. The ones for the AMDtek Pegasus AN986 and CATC USB-EL1201A chipsets are currently considered to be finalized, and development to an ADMtek PegasusII ADM8511 driver continues. Thus, the GNU Linux platform offers significantly more drivers for USB Ethernet Devices.

Even though there's only limited support for USB Ethernet available for OS/2, especially for mobility needs, this wired networking technology remains interesting.

The only disadvantage - the limited speed - is compensated by the advantages: low cost, mobility (ideal solution for portables), ease of use due to the powerful USB technology, reliable networking. IBM's USB Ethernet Device Driver is a great driver, which enables the usage of any Kawasaki 101-equipped network interface cards.


 * [IBM Device Driver Pack Online]
 * [IBM SoftWare Choice web site]
 * [OS/2 Compatible Hardware List (OS/2 CHL) web site]
 * [OS/2 Hardware InfoSheet about usbether.exe]
 * [eComStation Web Site Homepage]
 * [OS/2 NetLabs: USB Resource Manager]