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. |
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). |
| 109 | The 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 | |
| 137 | These are described in more detail below. |
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. |
| 150 | CUPS 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 | |
| 152 | The 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 | |
| 162 | The 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 | |
| 164 | Note 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 | |
| 166 | As far as CUPS goes internally, the data flow is as follows: |
| 167 | |
| 168 | PRINTER <-> IO Driver "backend" <-> CUPS daemon (CUPSD.exe) <-- CUPS admin webpage (config, test print etc.) |
| 169 | |
| 170 | The 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 | |
| 172 | PRINTER <-> IO Driver "backend" <-> CUPS daemon (CUPSD.exe) <-> eCups Port Driver (CUPS.PDR) <-> !PostScript printer driver (ECUPS.PDR) <-> OS/2 printer support <-> OS/2 application. |