OS/2 Warp Compatible Hardware List Web site: OS/2 and USB Web Site
USB and OS/2 (Part 8: Printers)
Jonas Buys, 2003/08/24 Under Construction!
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 several hundreds of older and modern
USB devices with the OS/2 Warp family of operating systems. The upcoming series
of articles will discuss all IBM USB drivers thoroughly, and list a lot more
OS/2 compatible devices and chipsets than the very limited number IBM tested
with the drivers.
This article was intended both for novice and advanced OS/2 users. Also, this
article should be considered to be an introduction offering basic knowledge
for the upcoming articles.
- Advantages of USB Printing
- Some common USB Terminology...
- Enabling USB Printer Device Support
- Installing the USB Printer Port Driver
- USB Device Driver options
- USB Printer Port Settings
- Some Additional Notes...
- About Adapters
- OS/2 CHL Tested USB Printers
- And what about Linux?
Printers and OS/2. Unfortunately, only very, very few manufacturers tend to
provide out-of-the-box native OS/2 device drivers for their products. Also more
and more printers are shipped with only a USB interface to connect to the computer,
to avoid the limitations imposed by the outdated "Parallel Port" technology.
This article will discuss the IBM OS/2 Warp USB Printer Device Driver in detail.
However, though the driver name can cause confusion, this driver is not be sufficient
to get USB Printer working on OS/2. The USB Printer Device Driver is in fact
only a driver that allows you to "bind" a printer driver to the USB
port (thus obliging OS/2 to communicate with the printer device over the USB
interface instead of the classic Printer Interface (LPT, line print terminal)).
This theoretical approach comes in very handy; if you have an existing OS/2
printer driver (no matter if it supports USB or not), you can use it with a
printer attached to a USB port (and it doesn't matter whether you use a USB-to-LPT
convertor or not). Hey, this could cause your troubles to stop, especially if
you have got an LPT Iomega ZIP drive!
1.1. Advantages of USB Printing
- Less CPU
It is well known that the Parallel Printer Port (more popularly known with
the term LPT) swallows a huge amount of CPU time, and this during some time.
Printing via the USB will demand a considerable smaller amount of CPU time,
and this during a much smaller task. However, notice that UHCI controllers
will rely more on the processor than OHCI PCI cards will do.
- More Efficient Bus Technology
- Higher Data Transfer Rates
With average optimal rates of 11Mbps (approximately 1.5MBps) and 480Mbps
(approximately 64MBps) for the respective USB 1.1 and 2.0 Hi-Speed technologies,
USB beats the Parallel Port technology that only has a maximum rate of
XXXXXX Kbps. A huge difference, especially with ever arising printing
requirements: documents that become larger, and don't forget: Innotek
Acrobat Kit* prints documents as images! This also requires more data
to be sent to the printer.
- Hot Plugging
You can attach and disconnect a printer to the USB ports anytime you wish,
turn it on and off as you like, without having to reboot the system. The
USB Auto Monitor included in the USB Printer Device Driver provides support
for this, and more information is given later in this article. You can
also do this with the classic parallel printer port, but the printer still
needs to be attached to the same printer port. This restriction is removed
with USB; you can connect the printer to ANY USB socket available on the
USB chains that are present on your system.
- Support for Modern Printers
The Line Print Terminal technology has reached its limits years ago, and is
dying rapidly. Many manufacturers ship new printers with both USB and parallel
printer interface for backwards compatibility on older systems, but a lot
even ship printers with only a USB connection.
||Please note that we are not criticizing Innotek Systemberatung GmbH; we're
merely giving an objective example of the emerging need to send larger amount
of data to printer devices.
1.2. Some common USB Terminology...
There are many reasons why USB is inferior to other technologies like e.g.
SCSI, but that will not be discussed in this article. Fact remains that, 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:
|Port for attaching USB printers, scanners, mice and digital
cameras. Maximal transfer rates of 1 ½ Mbps. This variant of USB
is also referred to as “low speed USB”; maximum of some 700KBps.
USB 1.0 is practically non-existing, and USB 1.1 is present everywhere.
1.1 is called “full-speed” USB and has rates of 12Mbps, that
is a little lit less than 1 ½ MBps.
|New port for attaching USB printers, scanners, mice and digital cameras
(planned to be replacement of USB 1.1).
Maximal transfer speed of 480Mbps or 60MBps (40 times faster as USB 1.1).
If you attach a USB 1.1 device on a USB 2.0 controller, then that device
will function correctly, but at USB 1.1 transfer rates. IF YOU PURCHASE
A DEVICE WITH USB 2.0, THAT DOESN’T ALWAYS MEAN YOU GET HI-SPEED
(480Mbps)! USB 2.0 contains all existing speeds: low (1 ½ Mbps),
full (12Mbps) and high (480Mbps).
|Addition to USB 2.0: USB On-The-Go. Peer to peer USB; using this technology,
USB devices can communicate with one each other without intervention of
|New standard for USB devices. Increases the data transfer rates from
12Mbps to 480Mbps (60MBps) on Hi-Speed USB controllers.
Backwards compatible with the original USB; uses the same wires!
|New port for branching devices, in particular video devices. At present,
hardware manufacturers tend to release other devices for this bus. Sony
accepts this technology under the name iLink. 12 ½ to 50 MBps.
This technology is very similar to that of USB, but it is something quite
So far for a brief overview of technologies. Now, in the "USB technology
family", there are some variants, types of Host Controller Interfaces:
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. UHCI, Intel’s proprietary interface,
defines how the USB controller talks to the host computer and its operating
system. UHCI is optimized to minimize host computer design complexity and uses
the host CPU to control the USB bus.
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), Agere Systems, inSilicon Core.
OHCI, jointly developed by Compaq, Microsoft, and National Semiconductor Corporation
and backed by more than 25 companies, defines the register level interface that
enables the USB controller to "talk" to the host computer and its
operating system. OHCI defines an industry standard hardware interface for operating
systems, device drivers, and the basic input output system (BIOS) to manage
the USB. OHCI optimizes performance of the USB bus while minimizing central
processing unit (CPU) overhead to control the USB. USB devices don't care whether
you're using an OHCI or UHCI controller; you can use all devices on any kind
Then, there is EHCI: Enhanced Host Controller Interface. This is a direction
that enables USB 2.0, more to say USB Hi-Speed. The two-direction market as
exists for USB 1.1 is not present here; all controllers use the same specific
One thing you should very well be aware of is that USB is a serial technology.
That means that the maximum bandwidth (12Mbps for USB 1.1, 480Mbps for USB 2.0
Hi-Speed) is divided between all USB ports. This also applies to USB Hubs, where
this issue should be accounted for more seriously. This problem will be discussed
thoroughly in the article about USB hubs; for regular PCI USB controllers, with
only a limited number of ports, there should not be any real problems, unless
you are using several fast devices, like USB 2.0 hard disks, USB 2.0 Memory
Keys, USB Audio, and USB Ethernet cards simultaneously. The problem is even
more present on USB 1.x controllers. But remember that if you use a lot of USB
devices at the same moment, this unavoidably leads to a performance degradation.
All of these variants are supported using OS/2 Base USB Device Drivers (EHCI.EXE).
2. Enabling USB Printer Device Support
The IBM USB Printer Device Driver comes in a self-extracting file. The official
driver is available via IBM SoftWare Choice or IBM PassPort Advantage subscriptions,
and can be downloaded from the IBM OS/2 Device Driver Pack Online and from the
eComStation.com download web site. eComStation 1.0 and 1.1 also include the
driver. In order to use this driver, your computing system must meet the following
- OS/2 Warp 3 (FP35), OS/2 Warp 4 Merlin (FP6), OS/2 Warp Server for e-business
Aurora, MCP1 or ACP1, MCP2 or MCP2, eComStation 1.0 or higher, WorkSpace
On-Demand 2.0 (FP11);
- Any PCI to USB Host Controller compatible with USB 1.1 or USB 2.0 specification
and using UHCI, OHCI or EHCI interface that is supported by the Base USB
Support Driver (part one of this article series).
The USBPRINT.EXE file, once executed, will extract ten files: an installation
utility (RSPDDI.EXE), USBPRT.SYS USB and USBPRT.SYM as physical printer drivers,
USBMON.EXE, the USB Auto Monitor Executable, a DDP file USBPRT.DDP USB to install
the driver using ddinstal.exe,
USBPRT.PDR as USB Printer Port driver, a help reference USBPRT.HLP, a CLEANUP.CMD
Command file that deletes all USB print support files from installation directory
to release disk
space after installation, a utility to check if the base USB drivers are working
correctly and USBPRINT.TXT, a limited readme.
As already pointed to, if you want to use a USB printer, you need to do accomplish
this task in two steps:
- Check if the USB Base Device Driver(s) are working correctly with your USB
card, and if so, install the USBPRINT.EXE device driver. This will allow you
to "tell" OS/2 that your printer is attached to your USB port, and
that OS/2 should actually "talk" to the printer using the "USB
- And then, install a device driver for the printer while you are creating
a printer object.
It is very important to understand the difference between the USB Printer Device
Driver, which only allows you to attach a USB printer to a USB socket, and the
actual printer drivers, which include OS/2 instructions about how to control
Note that even if a particular device driver says that it's for use with a printer
port (LPT) only, you CAN use it using the USB Printer driver. What USBPRINT.EXE
actually does, is "fool" OS/2 and the printer driver by installing
some kind of printer port, which is actually being mapped on a USB Socket. This
article will only deal with installing a printer in OS/2 Warp or eComStation.
A knowledge of creating a printer object with the Printer template is assumed.
Also note that on Convenience Pack cd-roms, you can find the driver in the options/USBprint
2.1. Installing the USB Printer Port Driver
To install the USB Printer Device Driver manually, proceed as follows:
- To obtain the required USB driver files, you must expand the USBPRINT.EXE
file into its 10 component files by downloading the USBPRINT.EXE file from
the DDP OnLine web site (or elsewhere), and do one of the following possible
- Via WarpCenter or XCenter, browse to the directory where you downloaded
the driver, and right-click the directory to open it in a window.
Double-click on the USBPRINT.EXE icon. Now the files will be extracted.
- Open an OS/2 Command Prompt, change the active directory to the directory
where you stored the self-extracting file, and type usbprint.
- Open the existing (or create new) printer object properties window, by
right-clicking the appropriate printer object, and selecting Properties
from the pop-up menu. Select the Output
Port tab by clicking on the tab. As you can see in the image below,
only LPT (printer port interfaces) and COM ports (serial modem interfaces)
are listed on which you can connect a printer.
- Select the Install new port
button. When the Install New Port
dialog box window opens (see image below), select the New
port drivers radio
button and type the full path to the expanded port driver in the Directory
edit box. Select Refresh
(this will make OS/2 read the port drivers from the specified directory, and
they will then be listed on the Output
Port field), afterwards choose the USB port.
- Once you selected the USB icon in the above image, click the Install
button to install the port. (NOTE: Use the DDINSTAL.exe utility
from OS/2 command line to reinstall physical drivers if notified about install
failure during automated install.) If the OS/2 USB Stack was not installed
on the system (the Basic OS/2 USB Device Driver(s)) you will see the message
The file, TSTUSBC.EXE, returned a non-zero return code. This DDP file
did not run. You have to install the USB Basic Device Driver(s) before
- Shutdown and restart your operating system if prompted to do so from the
previous step. The prompt will be as shown in the image below:
Note: Unlike the powerful USB support in eCS 1.1, eCS 1.0 and the IBM Convenience
Packages do install and configure the USB device drivers, but by default, they
are REMmed out in config.sys. This means you'll have to un-REM the USB Base
Device Drivers and then install the USB Printer Driver (USB stack needs to be
active, thus you'll need to reboot after config.sys changes). eComStation 1.1,
when you install USB support during setup, will automatically install the USB
Printer Device Driver too, so you only need to do steps 2, 3 and 4 of the instructions
above. You need not reboot when changing a driver's output port.
2.2. USB Device Driver Options
There are some config.sys device driver options that come in handy. We'll briefly
take a look at them, and discuss whether or not these settings are useful. The
config.sys line for the USB Printer Port Device Driver is DEVICE=x:\OS2\BOOT\USBPRT.SYS,
where x: is the drive letter of the OS/2 boot partition on your system.
The /V verbose option forces the driver to display its initialization information.
Doing so, during boot, this message will be prompted: "USBPRT.SYS: USB
Printer Device Class Driver V1.1 loaded".
Sets the driver name as LPTn (by default name is $USBPRT), with n an integer
value. We discommend the use of this switch!
2.3. USB Printer Port Settings
Additional settings can be specified for the USB Printer Interface, by opening
the Properties dialog
box of a random printer, clicking the Output
Port tab, right-clicking the USB_PRINTER
icon, and choosing Properties
from the pop-up menu. The image below shows the dialog box window that will
then appear (the one in the lower left corner):
The image above was just taken as an example of a USB printer that was not
attached to the USB port. Note that the Canon BubbleJet-30 is an LPT printer,
which you can only use with the USB Printer Driver using a USB-to-Centronics
The Two images below have been captured with an Epson Stylus C70 USB printer
attached. Let's have a look at the Properties
name: This is the name that is being assigned to your USB printer
output port. This is done automatically via the operating system, but you can,
of course change the name here.
Status: displays whether
the USB printer is attached and found on the USB bus ("ONLINE
(ATTACHED)"), or not ("OFFLINE
(DETACHED)"). This is automatically detected by the usbmon.exe
Timeouts in seconds:
self-explanory, see the properties of regular Parallel Printer Interface (LPT)
checkbox: Click this checkbox to enable "hot swapping" of your
USB printer. You can attach or detach you printer anytime you like, even when
OS/2 is already running. When you leave this option unchecked, OS/2 will only
detect the printer's status while initializing the USB Printer Device Driver,
which implies it is done at boot time. When you attach your driver when OS/2
is already booted and you've checked this option, your printer's Propertiesdialog
box will open automatically.
The buttons at the bottom of the dialog box have the same meanings as in regular
settings notebooks. By clicking the Advanced
button in the Properties dialog box, the following dialog box will
3. Some Additional Notes...
3.1. About adapters
Some manufacturers like Belkin offer special convertor cables. There are two
versions available: the USB-to-Printer and Printer-to-USB cables. Mind the order
of the words!
The first one, USB-to-Printer, is a cable to connect to a USB socket of the
USB controller in your Personal Computer or on your USB hub, and to attach to
a Printer Port Interface connection on the printer. This can be a solution if
you've got an older printer that does not have a USB interface. These cables
can be recognized by the two endings: one ending has a male type A USB connector,
the other end has a centronics connector.
The second one, Printer-to-USB, is used less to connect a modern printer that
only offers a USB connection to a Printer Port Socket on either a Multi-Port
USB Hub or, most probably, the on-board Printer Interface Socket implemented
on the motherboard. This cable can be recognized by the two endings: one ending
has a female Printer Port connector, the other side has a type B USB connector.
These cables are relatively cheap, and prices vary between € 20 - 50 ($
25 - 55).
But are these adapters (convertors) compatible with OS/2? Normally, any USB-to-Printer
cable should work with OS/2, as long as you select the output port of the printer
to be the USB port.
!!!!! 2e TYPE?? OS/2 compatible??? !!!!
The win32prn project is designed to use Microsoft Windows 2000 printer drivers
on the IBM OS/2 platform family with the use of the ODIN emulation technology.
This is the solutions for the problem we as OS/2 Community experience that manufacturers
generally don't develop OS/2 device drivers for their printers anymore. Theoretically,
every Windows Driver Model (WDM) 1.1 (This includes Windows2000, WindowsXP,
Windows2003 and WindowME device drivers.) compliant printer driver could be
used with this project to print out of OS/2 Warp.
The Win32Prn was originally based on printers to be attached via a Printer Port
Interface (LPT) and unfortunately, as of writing, ODIN has no subsystems yet
to support USB. However, this does not mean that printer for which you are using
Windows drivers via Win32Prn can't work via a USB connection. The well-though
theoretical implementation of the USB Printer Device Driver allows the use of
USB Printers even with Win32Prn, since the USB_PRINTER port is just being seen
(internally) as an LPT port. The USB Printer Driver device driver will then
"translate" the calls made by OS/2 to the correct USB signals.
VOORBEELD ++++++++ HOE op w2k configgen? LPT of USB??
For more information about the Win32Prn project, please visit http://www.os2warp.be/index2.php?name=win32prn,
where you can find a list of tested and approved devices for use with the OS/2
4. OS/2 CHL Tested USB Printers
os2warp.be has tested some selected USB Printers on the OS/2 Warp platform.
Some of them are listed in the table below. For additional tested and/or reported
devices, please consult our online hardware
list or the USB
Printers section. os2warp.be has also made a commitment to the Win32Prn
Project, and USB testing results will be posted at http://www.os2warp.be/index2.php?name=win32prn.
||The EPOMNI5.EXE device driver is downloadable free of charge
in several languages from the IBM Device Driver Pack OnLine web site.
||Driver available from www.lexmark.com.
This is a generic device driver for the streaming algorithm as defined in
the PCL5 standard. This driver is usable for both LPT and USB printers using
5. And what about Linux?
You can find a list of tested devices at http://www.qbik.ch/usb/devices/.
For more information about Linux and USB, visit http://www.linux-usb.org/.
USB Printers are really no problem to use on the
OS/2 Warp platform, as long as you have got a specific OS/2 device driver (or
Windows Driver Model 1.1x device driver compatible with Win32Prn) for your printer.
The theoretical concept of a "special USB printer port" is a great
advantage, since even older drivers can be used with the help of USB-to-LPT