OS/2 and USB Printers: Difference between revisions

From OS2World.Com Wiki
Jump to navigation Jump to search
Created page with "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 n..."
 
Jugbogdan (talk | contribs)
mNo edit summary
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
By [[Jonas Buys]]
''By [[Jonas Buys]]''


OS/2 and hardware... For more than a decade, OS/2 has been misjudged to have  
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.
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.<br>
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.


   
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.
'''''1. Introduction.'''''


==Introduction==
Printers and OS/2. Unfortunately, only very, very few manufacturers tend to  
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.
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 &quot;Parallel Port&quot; technology.<br>
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 &quot;bind&quot; 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!


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)).
'''1.1. Advantages of USB Printing'''
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!


===Advantages of USB Printing===
# Less CPU<br>     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.
# Less CPU<br>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
# More Efficient Bus Technology
## Higher Data Transfer Rates<br>         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.
## Higher Data Transfer Rates<br>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<br>         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.
## Hot Plugging<br>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<br>     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.
# Support for Modern Printers<br>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.
  <blockquote>     
{| border="1"
{| border="1"
|-
|*
|*
|Please note that we are not criticizing Innotek Systemberatung GmbH; we're  
|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.
      merely giving an objective example of the emerging need to send larger amount  
|}
      of data to printer devices.
|}</blockquote>
'''1.2. Some common USB Terminology...'''


===1.2. Some common USB Terminology...===
There are many reasons why USB is inferior to other technologies like e.g.  
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).
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).<br>
Unfortunately, there often seems to be some misunderstanding related to USB
terminology when discussing the Universal Serial Bus technology. That&#8217;s
why a brief and clear overview is given here:


<blockquote>                     
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:
{| border="1"
{| border="1"
|-
|
|
[[Image:usb-klein.gif]]
[[Image:usb-klein.gif]]
   
   
USB
USB
|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.


|Port for attaching USB printers, scanners, mice and digital
1.1 is called “full-speed” USB and has rates of 12 Mbps, that is a little lit less than 1 ½ Mbps.
        cameras. Maximal transfer rates of 1 &frac12; Mbps. This variant of USB
        is also referred to as &#8220;low speed USB&#8221;; maximum of some 700KBps.
        USB 1.0 is practically non-existing, and USB 1.1 is present everywhere.
        1.1 is called &#8220;full-speed&#8221; USB and has rates of 12Mbps, that  
        is a little lit less than 1 &frac12; MBps.
|-
|-
|
|
[[Image:usb2-klein.gif]]
[[Image:usb2-klein.gif]]


USB 2.0
USB 2.0
|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).
|New port for attaching USB printers, scanners, mice and digital cameras
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 (12 Mbps) and high (480 Mbps).
        (planned to be replacement of USB 1.1).<br>
        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&#8217;T ALWAYS MEAN YOU GET HI-SPEED  
        (480Mbps)! USB 2.0 contains all existing speeds: low (1 &frac12; Mbps),  
        full (12Mbps) and high (480Mbps).
|-
|-
|
|
USB OTG
USB OTG


 
|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 the PC.
|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  
        the PC.
|-
|-
|
|
[[Image:USB-hs.gif]]<br>
[[Image:USB-hs.gif]]
 
Hi-Speed USB
Hi-Speed USB
|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 standard for USB devices. Increases the data transfer rates from
        12Mbps to 480Mbps (60MBps) on Hi-Speed USB controllers.<br>
        Backwards compatible with the original USB; uses the same wires!
|-
|-
|
|
[[Image:FireWire_logo.jpg]]<br>
[[Image:FireWire_logo.jpg]]
 
FireWire
FireWire
 
|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 very different.
|New port for branching devices, in particular video devices. At present,  
|}
        hardware manufacturers tend to release other devices for this bus. Sony  
So far for a brief overview of technologies. Now, in the "USB technology family", there are some variants, types of Host Controller Interfaces:<br>
        accepts this technology under the name iLink. 12 &frac12; to 50 MBps.  
        This technology is very similar to that of USB, but it is something quite  
        very different.
|} </blockquote>
So far for a brief overview of technologies. Now, in the &quot;USB technology  
family&quot;, there are some variants, types of Host Controller Interfaces:<br>
First, for USB 1.1 (or for USB 2.0 cards that can also use USB 1.1 devices),  
First, for USB 1.1 (or for USB 2.0 cards that can also use USB 1.1 devices),  
we have UHCI and OHCI. <br>
we have UHCI and OHCI. <br>
UHCI is short for Universal Host Controller Interface. It is one particular  
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.  
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.<br>
Other brands also can be compatible with UHCI. This is the real standard for  
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.  
USB 1.1. nVidia nForce is also UHCI. UHCI, Intel&#8217;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.<br>
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  
OHCI, jointly developed by Compaq, Microsoft, and National Semiconductor Corporation  
and backed by more than 25 companies, defines the register level interface that  
and backed by more than 25 companies, defines the register level interface that  
enables the USB controller to &quot;talk&quot; to the host computer and its  
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  
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  
of controller.<br>
of controller.<br>
Then, there is EHCI: Enhanced Host Controller Interface. This is a direction  
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 technologies.<br>
that enables USB 2.0, more to say USB Hi-Speed. The two-direction market as  
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  
exists for USB 1.1 is not present here; all controllers use the same specific  
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.
technologies.<br>
 
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.<br>
All of these variants are supported using OS/2 Base USB Device Drivers (EHCI.EXE).
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 requirements:
* 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 <tt>ddinstal.exe</tt>, 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<br>
space after installation, a utility to check if the base USB drivers are working correctly and USBPRINT.TXT, a limited readme.<br>
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 language";
# And then, install a device driver for the printer while you are creating a printer object.
   
   
'''''2. Enabling USB Printer Device Support'''''
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 the printer.<br>
 
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.  
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
requirements:
 
<blockquote>
* 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).
</blockquote>
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 '' <tt>ddinstal.exe</tt>'',
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<br>
space after installation, a utility to check if the base USB drivers are working
correctly and USBPRINT.TXT, a limited readme.<br>
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 &quot;tell&quot; OS/2 that your printer is attached to your USB port, and    that OS/2 should actually &quot;talk&quot; to the printer using the &quot;USB    language&quot;;
# 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  
the printer.<br>
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 &quot;fool&quot; 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.<br>
A knowledge of creating a printer object with the Printer template is assumed.<br>
Also note that on Convenience Pack cd-roms, you can find the driver in the <tt>''options/USBprint''</tt>  
Also note that on Convenience Pack cd-roms, you can find the driver in the <tt>''options/USBprint''</tt> directory.
directory.
 
'''2.1. Installing the USB Printer Port Driver'''
 
   
   
===2.1. Installing the USB Printer Port Driver===
To install the USB Printer Device Driver manually, proceed as follows:
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 actions:
## Via WarpCenter or XCenter, browse to the directory where you downloaded the driver, and right-click the directory to open it in a window.<br> Double-click on the USBPRINT.EXE icon. Now the files will be extracted.
# 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     actions:
## Open an OS/2 Command Prompt, change the active directory to the directory where you stored the self-extracting file, and type ''<tt>usbprint</tt>''. Press ''<tt>ENTER</tt>''.
## Via WarpCenter or XCenter, browse to the directory where you downloaded         the driver, and right-click the directory to open it in a window.<br>         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 ''<tt>usbprint</tt>''.         Press ''<tt>ENTER</tt>''.
#
#
# Open the existing (or create new) printer object properties window, by     right-clicking the appropriate printer object, and selecting ''<tt>Properties</tt>''     from the pop-up menu. Select the ''<tt>Output     Port</tt>'' 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.<br> <br> [[Image:NewPort.jpg]] <br> <br>
# Open the existing (or create new) printer object properties window, by right-clicking the appropriate printer object, and selecting ''<tt>Properties</tt>'' from the pop-up menu. Select the ''<tt>Output Port</tt>'' 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.<br> <br> [[Image:NewPort.jpg]] <br>
# Select the ''<tt>Install new port</tt>''     button. When the ''<tt>Install New Port</tt>''     dialog box window opens (see image below), select the ''<tt>New     port drivers</tt>''<tt> </tt>radio     button and type the full path to the expanded port driver in the ''<tt>Directory</tt>''     edit box. Select ''<tt>Refresh</tt>''     (this will make OS/2 read the port drivers from the specified directory, and     they will then be listed on the ''<tt>Output     Port</tt>'' field), afterwards choose the USB port.<br> <br> [[Image:inst1.jpg]]<br> <br>
# Select the ''<tt>Install new port</tt>'' button. When the ''<tt>Install New Port</tt>'' dialog box window opens (see image below), select the ''<tt>New port drivers</tt>''<tt> </tt>radio button and type the full path to the expanded port driver in the ''<tt>Directory</tt>'' edit box. Select ''<tt>Refresh</tt>'' (this will make OS/2 read the port drivers from the specified directory, and they will then be listed on the ''<tt>Output Port</tt>'' field), afterwards choose the USB port.<br> <br> [[Image:inst1.jpg]]<br> <br>
# Once you selected the USB icon in the above image, click the ''<tt>Install</tt>''     button to install the port.<u> (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     installing USBPRINT.EXE.</u>
# Once you selected the USB icon in the above image, click the ''<tt>Install</tt>'' button to install the port.<u> (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 installing USBPRINT.EXE.</u>
# 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:<br> <br> [[Image:reboot.jpg]] <br>
# 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.


[[Image:reboot.jpg]]
   
   
'''2.2. USB Device Driver Options'''
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  
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 ''<tt>DEVICE=x:\OS2\BOOT\USBPRT.SYS</tt>'', where ''x:'' is the drive letter of the OS/2 boot partition on your system.
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 ''<tt>DEVICE=x:\OS2\BOOT\USBPRT.SYS</tt>'',  
where ''x:'' is the drive letter of the OS/2 boot partition on your system.


<blockquote>
/V:<br>
/V:<br>
The /V verbose option forces the driver to display its initialization information.  
The /V verbose option forces the driver to display its initialization information.  
Doing so, during boot, this message will be prompted: &quot;USBPRT.SYS: USB  
Doing so, during boot, this message will be prompted: "USBPRT.SYS: USB Printer Device Class Driver V1.1 loaded".
Printer Device Class Driver V1.1 loaded&quot;.
 
   
   
/LPT:<br>
/LPT:<br>
Sets the driver name as LPTn (by default name is $USBPRT), with n an integer  
Sets the driver name as LPTn (by default name is $USBPRT), with n an integer value. We discommend the use of this switch!
value. We discommend the use of this switch!


</blockquote> 
===2.3. USB Printer Port Settings===
'''2.3. USB Printer Port Settings'''
Additional settings can be specified for the USB Printer Interface, by opening the ''<tt>Properties</tt>'' dialog box of a random printer, clicking the ''<tt>Output
Port</tt>'' tab, right-clicking the ''<tt>USB_PRINTER</tt>'' icon, and choosing ''<tt>Properties</tt>'' from the pop-up menu. The image below shows the dialog box window that will then appear (the one in the lower left corner):


[[Image:advanced.jpg]]
Additional settings can be specified for the USB Printer Interface, by opening
 
the ''<tt>Properties</tt>'' dialog  
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
box of a random printer, clicking the ''<tt>Output
convertor.
Port</tt>'' tab, right-clicking the ''<tt>USB_PRINTER</tt>''  
 
icon, and choosing ''<tt>Properties</tt>''  
The Two images below have been captured with an Epson Stylus C70 USB printer attached. Let's have a look at the ''<tt>Properties</tt>''  
from the pop-up menu. The image below shows the dialog box window that will  
dialog box:<br> [[Image:props2.jpg]]''<tt>Port name</tt>'': This is the name that is being assigned to your USB printer
then appear (the one in the lower left corner):
output port. This is done automatically via the operating system, but you can, of course change the name here.<br> <br> ''<tt>Status</tt>'': displays whether the USB printer is attached and found on the USB bus ("''<tt>ONLINE (ATTACHED)</tt>''"), or not ("''<tt>OFFLINE
(DETACHED)</tt>''"). This is automatically detected by the usbmon.exe program.<br> <br> ''<tt>Timeouts in seconds</tt>'':
self-explanory, see the properties of regular Parallel Printer Interface (LPT) ports.<br> <br> ''<tt>Auto Monitor</tt>''<tt> </tt>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 ''<tt>Properties</tt>''dialog 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 ''<tt>Advanced</tt>''
button in the ''Properties'' dialog box, the following dialog box will appear:


[[Image:propsadv2.jpg]]
   
   
'''[[Image:advanced.jpg]]'''
==3. Some Additional Notes...==
===3.1. About adapters===
[[Image:prncable.jpg]]


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 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
convertor.<br>
The Two images below have been captured with an Epson Stylus C70 USB printer
attached. Let's have a look at the ''<tt>Properties</tt>''
dialog box:<br> [[Image:props2.jpg]]''<tt>Port
name</tt>'': 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.<br> <br> ''<tt>Status</tt>'': displays whether
the USB printer is attached and found on the USB bus (&quot;''<tt>ONLINE
(ATTACHED)</tt>''&quot;), or not (&quot;''<tt>OFFLINE
(DETACHED)</tt>''&quot;). This is automatically detected by the usbmon.exe
program.<br> <br> ''<tt>Timeouts in seconds</tt>'':
self-explanory, see the properties of regular Parallel Printer Interface (LPT)
ports.<br> <br> ''<tt>Auto Monitor</tt>''<tt> </tt>checkbox: Click this checkbox to enable &quot;hot swapping&quot; 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 ''<tt>Properties</tt>''dialog
box will open automatically.<br> <br>
The buttons at the bottom of the dialog box have the same meanings as in regular
settings notebooks. By clicking the ''<tt>Advanced</tt>''
button in the ''Properties'' dialog box, the following dialog box will
appear:<br> [[Image:propsadv2.jpg]]///////////////////<br>


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.
'''''3. Some Additional Notes...'''''


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.
'''3.1. About adapters'''


These cables are relatively cheap, and prices vary between 20 - 50 ($25 - 55).
[[Image:prncable.jpg]]
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!<br>
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.<br>
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.<br>
These cables are relatively cheap, and prices vary between &euro; 20 - 50 ($  
25 - 55).<br>
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.<br>
!!!!! 2e TYPE?? OS/2 compatible??? !!!!


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.
'''3.2. Win32Prn'''


!!!!! 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.<br>
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
&quot;translate&quot; the calls made by OS/2 to the correct USB signals.


===3.2. Win32Prn===
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.<br>
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??
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 Warp platform.
<br>
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  
Warp platform.


==4. OS/2 CHL Tested USB Printers==
'''''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].


{|class="wikitable"
os2warp.be has tested some selected USB Printers on the OS/2 Warp platform.
!Printer||Driver
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]].<br>
 
                                                                             
{| border="1"
|-
|-
| '''Printer'''
|Brother HL-1240
| '''Driver'''
|[LASERJET]*
|-
|-
|   Brother HL-1240
|Brother HL-1250
|   [[LASERJET]]*
|[LASERJET]*
|-
|-
|   Brother HL-1250
|Brother HL-2060
|   [[LASERJET]]*
|[LASERJET]*
|-
|-
|   Brother HL-2060
|Epson Stylus C60
|   [[LASERJET]]*
|[EPOMNI5.EXE]*
|-
|-
|     Epson Stylus C60
|Epson Stylus C62
|   [[EPOMNI5.EXE]]*
|[EPOMNI5.EXE]*
|-
|-
|   Epson Stylus C62
|Epson Stylus C70
|   [[EPOMNI5.EXE]]*
|[EPOMNI5.EXE]*
|-
|-
|   Epson Stylus C70
|Epson Stylus C80
|   [[EPOMNI5.EXE]]*
|[EPOMNI5.EXE]*
|-
|-
|   Epson Stylus C80
|Epson Stylus C82
|   [[EPOMNI5.EXE]]*
|[EPOMNI5.EXE]*
|-
|-
|   Epson Stylus C82
|Epson Stylus Color 740
|   [[EPOMNI5.EXE]]*
|[EPOMNI2.ZIP]*
|-
|-
|   Epson Stylus Color 740
|Epson Stylus Color 900
|   [[EPOMNI2.ZIP]]*
|[EPOMNI2.ZIP]*
|-
|-
|   Epson Stylus Color 900
|Epson Stylus Photo 1200
|   [[EPOMNI2.ZIP]]*
|[EPOMNI2.ZIP]*
|-
|-
|     Epson Stylus Photo 1200
|Hewlett Packard DeskJet 895Cse
|   [[EPOMNI2.ZIP]]*
|[OMNIEN.EXE]*
|-
|-
|     Hewlett Packard DeskJet 895Cse
|Hewlett Packard LaserJet 4050 (with USB connection)
|   [[OMNIEN.EXE]]*
|[LASERJET]*
|-
|-
|   Hewlett Packard LaserJet 4050 (with USB connection)
|Lexmark Optra E310
|   [[LASERJET]]*
|[OS32P5E.EXE]**
|-
|-
|   Lexmark Optra E310
|Lexmark Optra S1855 (with USB connection)
|   [[OS32P5E.EXE]]**
|[OS32P5E.EXE]**
|-
|-
|   Lexmark Optra S1855 (with USB connection)
|Lexmark Z51
|   [[OS32P5E.EXE]]**
|[OS32P5E.EXE]**
|-
|-
|   Lexmark Z51
|Xerox DocuPrint P1202
|   [[OS32P5E.EXE]]**
|[LASERJET]*
|-
|-
|   Xerox DocuPrint P1202
|Xerox DocuPrint P8ex
|    [[LASERJET]]*
|[LASERJET]*
|-
|}
|    Xerox DocuPrint P8ex
 
|   [[LASERJET]]*
|} <blockquote>         
{| border="1"
{| border="1"
|-
|-
|*
|*
|The EPOMNI5.EXE device driver is downloadable free of charge  
|The EPOMNI5.EXE device driver is downloadable free of charge in several languages from the IBM Device Driver Pack OnLine web site.
      in several languages from the IBM Device Driver Pack OnLine web site.
|-
|-
|**
|**
|Driver available from [[www.lexmark.com]].  
|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 PCL5.
      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  
      PCL5.
|}</blockquote>
'''''5. And what about Linux?'''''


 
==5. And what about Linux?==
<u>[[Image:icon-penguin.jpg]]</u>
[[Image:icon-penguin.jpg]]
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/]].


You can find a list of tested devices at <nowiki>http://www.qbik.ch/usb/devices/</nowiki>. For more information about Linux and USB, visit http://www.linux-usb.org/.
'''''6. Conclusion'''''


==6. Conclusion==
USB Printers are really no problem to use on the  
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 convertor cables.
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 &quot;special USB printer port&quot; is a great  
advantage, since even older drivers can be used with the help of USB-to-LPT  
convertor cables.


==7. References==
'''''7. References'''''
* [IBM Device Driver Pack Online];
* [IBM SoftWare Choice web site];
* [eComStation Home Page];
* [OS/2 Compatible Hardware List (OS/2 CHL) web site]
* [OS/2 and USB Web Site]


<blockquote>
[[Category:USB]]
* [[IBM        Device Driver Pack Online]];
* [[IBM SoftWare Choice        web site]];
* [[eComStation Home Page]];
* [[OS/2 Compatible Hardware List (OS/2 CHL)        web site]]
* [[OS/2 and USB Web Site]]

Latest revision as of 00:04, 20 December 2022

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 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.

Introduction

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!

Advantages of USB Printing

  1. 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.
  2. More Efficient Bus Technology
    1. 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.
    2. 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.
  3. 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:

USB

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 12 Mbps, that is a little lit less than 1 ½ Mbps.

USB 2.0

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 (12 Mbps) and high (480 Mbps).

USB OTG

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 the PC.

Hi-Speed USB

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!

FireWire

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 very different.

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 of controller.
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 technologies.
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 requirements:

  • 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:

  1. 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 language";
  2. 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 the printer.
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 directory.

2.1. Installing the USB Printer Port Driver

To install the USB Printer Device Driver manually, proceed as follows:

  1. 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 actions:
    1. 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.
    2. Open an OS/2 Command Prompt, change the active directory to the directory where you stored the self-extracting file, and type usbprint. Press ENTER.
  2. 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.


  3. 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.



  4. 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 installing USBPRINT.EXE.
  5. 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.

/V:
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".

/LPT:
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 convertor.

The Two images below have been captured with an Epson Stylus C70 USB printer attached. Let's have a look at the Properties dialog box:
Port 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 program.

Timeouts in seconds: self-explanory, see the properties of regular Parallel Printer Interface (LPT) ports.

Auto Monitor 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 appear:

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??? !!!!

3.2. Win32Prn

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 [1], where you can find a list of tested and approved devices for use with the OS/2 Warp platform.

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 [2].

Printer Driver
Brother HL-1240 [LASERJET]*
Brother HL-1250 [LASERJET]*
Brother HL-2060 [LASERJET]*
Epson Stylus C60 [EPOMNI5.EXE]*
Epson Stylus C62 [EPOMNI5.EXE]*
Epson Stylus C70 [EPOMNI5.EXE]*
Epson Stylus C80 [EPOMNI5.EXE]*
Epson Stylus C82 [EPOMNI5.EXE]*
Epson Stylus Color 740 [EPOMNI2.ZIP]*
Epson Stylus Color 900 [EPOMNI2.ZIP]*
Epson Stylus Photo 1200 [EPOMNI2.ZIP]*
Hewlett Packard DeskJet 895Cse [OMNIEN.EXE]*
Hewlett Packard LaserJet 4050 (with USB connection) [LASERJET]*
Lexmark Optra E310 [OS32P5E.EXE]**
Lexmark Optra S1855 (with USB connection) [OS32P5E.EXE]**
Lexmark Z51 [OS32P5E.EXE]**
Xerox DocuPrint P1202 [LASERJET]*
Xerox DocuPrint P8ex [LASERJET]*
* 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 PCL5.

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/.

6. Conclusion

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 convertor cables.

7. References

  • [IBM Device Driver Pack Online];
  • [IBM SoftWare Choice web site];
  • [eComStation Home Page];
  • [OS/2 Compatible Hardware List (OS/2 CHL) web site]
  • [OS/2 and USB Web Site]