Changes between Version 32 and Version 33 of HowTo


Ignore:
Timestamp:
Nov 8, 2010, 12:42:22 AM (13 years ago)
Author:
Alex Taylor
Comment:

Various formatting improvements and clarifications

Legend:

Unmodified
Added
Removed
Modified
  • HowTo

    v32 v33  
    1212Revisions to USB section 29/03/2009 - Paul Smedley
    1313
    14 Revisions to the list of required software and breif description of software sections 11/04/2009 - Ed Durrant[[BR]]
     14Revisions to the list of required software and brief description of software sections 11/04/2009 - Ed Durrant[[BR]]
    1515Additional details about using USB interface and visual instructions around set up of CUPS web admin printer install  12/04/2009 - Ed Durrant[[BR]]
    1616Additional visual instructions around set up of OS/2 printer object to use CUPS attached printer 13/04/2009 - Ed Durrant[[BR]]
    1717Changes to the desktop printer object setup based on the later versions of the files for clarification 10/07/2009 - Ed Durrant[[BR]]
    1818
     19Various formatting improvements and clarifications 2010-11-08 Alex Taylor[[BR]]
     20
    1921[[BR]]
    2022[[BR]]
     
    8486
    8587
    86 Common Unix Printing System answers the "what is it?" bit.
    87 
    88 What does it support? - here's the list of supported printers under gutenprint: http://gutenprint.sourceforge.net/p_Supported_Printers.php and under Splix: http://splix.ap2c.org/  (Splix supports some Samsung and Xerox printers).
    89 
    90 
    91 Why install CUPS? - Simply because it is capable of supporting a lot of modern printers and is being continually updated to support more. The old OS/2 printer drivers are not that good with new printers. If you are lucky enough to find a driver that works with your modern printer that drivers will not be updated to take advantage of all the features whereas the CUPS driver will.
     88[http://www.cups.org/ Common Unix Printing System] answers the "what is it?" bit.  It's a generic framework for printer driver packages.  You install CUPS plus a driver package that supports your printer, and if all goes well you can print. :-)  See the CupsFaq for more information on how it works specifically.
     89
     90''What does it support?'' - Support for actual printers is handled by the individual driver packages. 
     91 * List of supported printers under !GutenPrint: http://gutenprint.sourceforge.net/p_Supported_Printers.php  (!GutenPrint is the biggest and most commonly-used driver package)
     92 * List of supported printers under Splix: http://splix.ap2c.org/  (Splix supports some Samsung and Xerox printers)
     93 * List of supported printers under HPLIP: http://hplipopensource.com/hplip-web/supported_devices/index.html  (HPLIP supports various Hewlett-Packard printers)
     94
     95''Why install CUPS?'' - Simply because it is capable of supporting a lot of modern printers and is being continually updated to support more. The old OS/2 printer drivers are not that good with new printers. If you are lucky enough to find a driver that works with your modern printer, those drivers will not be updated to take advantage of all the features whereas the CUPS driver will.
    9296
    9397CUPS can provide drivers for more current printers - and should provide many extra capabilities missing from the OS/2 drivers.
    9498
    95 
    96 The object of the exercise is to end up with an eCS(OS/2) postscript printer object that prints using CUPS.
    97 [[BR]]
    98 [[BR]]
    99 [[BR]]
    100 
    101 
     99It basically works by tricking the OS & applications into thinking that the printer is a !PostScript printer, even if it isn't.  !PostScript is a well-supported, standardized printer language; the object of the exercise is to end up with an eCS(OS/2) !PostScript printer object that prints using CUPS.
     100[[BR]]
     101[[BR]]
     102[[BR]]
    102103
    103104
     
    106107'''List of required software'''
    107108
    108 
    109 CUPS port - See http://svn.netlabs.org/ecups/wiki/CupsPort for the latest releases of CUPS, Ghostscript, Gutenprint, eCUPS, Cups.pdr and Splix(for Samsung/Xerox printers only)
    110 
    111 eCUPS printer driver package - see http://svn.netlabs.org/ecups/wiki/CupsPort for the latest release
    112 
    113 eCUPS printer port - see http://svn.netlabs.org/ecups/wiki/CupsPort for the latest release
    114 
    115 Libc files required for CUPS - ftp://ftp.netlabs.org/pub/gcc/libc-0.6.3-csd3.zip
    116 
    117 USB helper driver (required for USB printing only) - http://en.ecomstation.ru/projects/usbtools/download/usbcalls-20060807.zip
    118 
    119 GCC files  required if supporting Samsung/Xerox printers using Splix - http://smedley.info/gcc432.zip
    120 
    121 PRNDRV.EXE (this is a program that will "clean up" printer entries in the INI files) - http://www.os2site.com/sw/comm/faxworks/prndrv.exe
    122 
    123 USB backend (if you are intending to use a USB connected printer) - http://download.smedley.info/cups-usb-backend-20090309.zip
    124     (apparently the latest version of the CUPS zip file includes the USB backend, so this download is not needed however the tests here were performed when that was not the case, so I have left this link in for reference in any case). 
     109The CUPS port is available at http://svn.netlabs.org/ecups/wiki/CupsPort - you can download in WPI format (all packages) or as individual ZIP files.  If you download the individual files, remember that you need the following packages.
     110
     111''Always required:''
     112
     113 * CUPS OS/2 binary
     114
     115 * !GhostScript OS/2 binary
     116
     117 * At least one of the following driver packages (choose the one which supports your printer):
     118  * !GutenPrint (many printers)
     119  * Splix (!Samsung/Xerox printers) - also requires custom GCC runtime: http://smedley.info/gcc432.zip
     120  * HPLIP
     121
     122 * eCUPS port driver (CUPS.PDR)
     123
     124 * eCups (ECUPS.DRV), CUPS-specific !PostScript printer driver
     125
     126 * Libc files required for CUPS - ftp://ftp.netlabs.org/pub/gcc/libc-0.6.3-csd3.zip (you may have these already, especially if you are running eComStation)
     127
     128''May be required''
     129
     130 * USB helper driver (required for USB printing only) - http://en.ecomstation.ru/projects/usbtools/download/usbcalls-20060807.zip (again, you may have this already if you use a recent version of eCS)
     131
     132 * PRNDRV.EXE (this is a program that will "clean up" printer entries in the INI files) - http://www.os2site.com/sw/comm/faxworks/prndrv.exe
     133
     134 * ~~USB backend (if you are intending to use a USB connected printer)~~ - http://download.smedley.info/cups-usb-backend-20090309.zip
     135   (''Note:'' This is only required for older versions of CUPS.  The latest (1.4.4 and up) releases of the CUPS zip file include the USB backend, so this download is not needed.  However the tests here were performed when that was not the case, so I have left this link in for reference in any case). 
     136
     137These are described in more detail below.
    125138
    126139[[BR]]
     
    135148'''Brief description of the software packages'''
    136149
    137 
    138 CUPS consists of several packages that work together to provide postscript printing on raster printers
    139   (CUPS, Ghostscript, Gutenprint, eCUPS, Cups.pdr and Splix(for Samsung/Xerox printers only)).
    140    
    141 The Libc and GCC files are required support files (GCC required by Splix).
    142 
    143 PRNDRV.EXE - a useful command line utility for listing installed printers and deleting those that are no longer wanted
    144 
    145 The eCUPS printer driver is an alternative OS/2 pscript.drv package and has most of the popular CUPS PPD files already included and can be updated as new printers gain support in CUPS.
    146 
    147 The eCUPS printer port driver provides the "hook up" between the OS/2 Printer Object created from the eCUPS printer driver and the CUPS printer. That is OS/2 knows how to talk to ports that printers are connected to. In this case we are implementing another type of port to be available alongside the parallel printer port, the network (lpr) printer port, the serial (RS232) printer port and so on. This driver allows the OS/2 print "engine" to talk to the CUPS daemon which it turn talks to the physical printer either over the network or over a USB connection. (note: we don't use the OS/2 USB Printer port driver when using a USB attached printer via CUPS - we always use the CUPS port driver and then let the CUPS daemon controls the physical IO traffic to the printer).
    148  
    149 So the data flow is as follows
    150 
    151 PRINTER <-> IO Driver "backend"(network or USB.exe) <-> Cups daemon(CUPSD.exe) <-- CUPSD Admin webpage (config,test print etc.)
    152 
    153 and
    154 
    155 PRINTER <-> IO Driver "backend"(network or USB.exe) <-> Cups daemon(CUPSD.exe) <-> eCups Port Driver <-> eCUPS Printer Driver <->                    OS/2 printer support <-> OS/2 Application. 
     150CUPS consists of several packages that work together to provide emulated !PostScript printing on raster printers.  The core components on all platforms are the CUPS daemon, !GhostScript, and the driver packages (Gutenprint, Splix, HPLIP etc.).
     151
     152The remaining packages are specific to the OS/2 port (a.k.a. eCups):
     153
     154 * The Libc and GCC files are required support files (the GCC runtime is required by Splix).
     155
     156 * PRNDRV.EXE - a useful command line utility for listing installed printers and deleting those that are no longer wanted.
     157
     158 * The eCups printer driver (ECUPS.DRV) is a customized version of the OS/2 !PostScript driver (PSCRIPT.DRV) which has most of the popular CUPS PPD files already included, and can be updated as new printers become supported in CUPS.  It also has a few tweaks and bugfixes to make it work better with CUPS.  (For this reason, using the original IBM !PostScript driver for CUPS printing is not really recommended, although it may happen to work for you.)
     159
     160 * The eCups printer port driver (CUPS.PDR) provides the "hook-up" between an OS/2 Printer Object and the actual CUPS printer. 
     161
     162The port driver component in particular is crucial, because normal OS/2 applications ''only'' know how to print to an OS/2 Printer Object - not a CUPS printer!  What happens is that the OS/2 Printer Object sends print data to a port (like a parallel/serial/USB port or an LPR network queue, and so on) which is defined by a ''port driver''.  In this case, we are implementing another type of port to be available alongside these.  This driver allows the OS/2 print "engine" to talk to the CUPS daemon, which turn talks to the physical printer either over the network or over a USB connection (using what it calls a "backend", which is basically CUPS's own internal equivalent of a port driver). 
     163
     164Note that we don't use the OS/2 USB port driver when using a USB attached printer via CUPS - we always use the CUPS port driver and then let the CUPS daemon control the physical IO traffic to the printer.  The same is true for other connection types like network connections - in all cases, CUPS manages the connection.
     165
     166As far as CUPS goes internally, the data flow is as follows:
     167
     168PRINTER <-> IO Driver "backend" <-> CUPS daemon (CUPSD.exe) <-- CUPS admin webpage (config, test print etc.)
     169
     170The above suffices for printing using CUPS's own internal mechanisms.  What the port driver does, in conjunction with an OS/2 Printer Object, is allow normal OS/2 programs (which know nothing about CUPS) to print to CUPS printers.  So the data flow becomes:
     171
     172PRINTER <-> IO Driver "backend" <-> CUPS daemon (CUPSD.exe) <-> eCups Port Driver (CUPS.PDR) <-> !PostScript printer driver (ECUPS.PDR) <-> OS/2 printer support <-> OS/2 application. 
    156173
    157174[[BR]]