Changes between Version 40 and Version 41 of HowTo


Ignore:
Timestamp:
Dec 24, 2011, 2:48:51 AM (12 years ago)
Author:
Alex Taylor
Comment:

Various fixes to formatting, typos

Legend:

Unmodified
Added
Removed
Modified
  • HowTo

    v40 v41  
    5555  * Gutenprint (the biggest and most commonly-used driver package), list of supported printers: http://gutenprint.sourceforge.net/p_Supported_Printers.php
    5656  * SpliX (supports various Samsung and Xerox printers), list of supported printers: http://splix.ap2c.org/
    57   * HP-LIP (supports various Hewlett-Packard printers), list of supported printers: http://hplipopensource.com/hplip-web/supported_devices/index.html
     57  * HPLIP (supports various Hewlett-Packard printers), list of supported printers: http://hplipopensource.com/hplip-web/supported_devices/index.html
    5858
    5959
     
    7878     * Gutenprint (many printers)
    7979     * SpliX (many Samsung & Xerox printers). Note that SpliX also requires custom GCC runtime, which is included in the WPI package, or available separately from http://smedley.info/gcc432.zip
    80      * HP-LIP (various printers from HP)
     80     * HPLIP (various printers from HP)
    8181  * CUPS port driver (CUPS.PDR).  If you use the WarpIN packages, this is included in the `cups-base-*.wpi` archive
    82   * The eCups OS/2 printer driver, either ECUPS.DRV (for Gutenprint and SpliX) or ECUPS-HP.DRV (for HP-LIP). These are modified versions of the standard OS/2 !PostScript driver which include various fixes needed by CUPS.
     82  * The eCups OS/2 printer driver, either ECUPS.DRV (for Gutenprint and SpliX) or ECUPS-HP.DRV (for HPLIP). These are modified versions of the standard OS/2 !PostScript driver which include various fixes needed by CUPS.
    8383  * LIBC runtime files required for CUPS and other components. (You may have these already, especially if you are running eComStation).
    8484     * ftp://ftp.netlabs.org/pub/gcc/libc-0.6.3-csd3.zip
     
    101101  * The eCups printer port driver (CUPS.PDR) provides the "hook-up" between an OS/2 printer object/queue and the actual CUPS printer.
    102102[=#portdriver]
    103 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).
     103The 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).
    104104
    105105Note 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.
     
    107107As far as CUPS goes internally, the data flow is as follows:
    108108
    109 `PRINTER <-> IO Driver "backend" <-> CUPS daemon (CUPSD.exe) <-- CUPS admin webpage (config, test print etc.)`
    110 
    111 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:
    112 
    113 `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.`
    114 
     109`CUPS tools (admin webpage, cupslpr.exe, etc.) —> CUPS daemon —> CUPS "backend" —> PRINTER`
     110
     111The above suffices for printing using CUPS's own internal mechanisms. What the port driver does, in conjunction with an OS/2 printer pbject, is allow normal OS/2 programs (which know nothing about CUPS) to print to CUPS printers. So the data flow becomes:
     112
     113`Application —> OS/2 printer object —> eCups PostScript driver (ECUPS[-HP].DRV) —> CUPSx port (CUPS.PDR) —> CUPS daemon —> CUPS "backend" —> PRINTER`
    115114
    116115\\\\
     
    123122  * The main CUPS package (`cups-base-`''xx''`.wpi` where ''xx'' is the version number of CUPS); this includes both CUPS itself, and the CUPS port driver.
    124123  * Ghostscript (version 8.71 is strongly recommended, unless you are doing development testing).
    125   * At least one printer support package (Gutenprint, SpliX, or HP-LIP).
    126   * The ECUPS printer driver in most cases, or alternatively the ECUPS-HP printer driver if you are installing HP-LIP specifically.
     124  * At least one printer support package (Gutenprint, SpliX, or HPLIP).
     125  * The ECUPS printer driver in most cases, or alternatively the ECUPS-HP printer driver if you are installing HPLIP specifically.
    127126
    128127Install the selected packages by double-clicking on the `cups-base-`''xx''`.wpi` file from the Workplace Shell.  Follow the instructions shown in the installer.
     
    134133Basic manual installation consists of unzipping most of the packages into the root directory of a selected drive. It doesn't have to be the boot drive, but they must all be unzipped to the ''same'' (non-FAT) drive.
    135134  * `cups-*.zip` needs to be unzipped into the root directory, thereby creating the `\cups` top-level directory.
    136   * Ghostscript needs to be unzipped into `\gs` — so that you end up with for example,''x''`:\gs\gs8.71` (some zip packages contain the \gs upper directory, some don't — so make sure you end up with the correct directory structure).
     135  * Ghostscript needs to be unzipped into `\gs` — so that you end up with for example ''x''`:\gs\gs8.71` (some zip packages contain the `\gs` upper directory, some don't — so make sure you end up with the correct directory structure).
    137136  * The driver package(s) you will be using (`gutenprint-*.zip`, `hplip-*.zip` and/or `splix-*.zip`) must be unzipped into the root directory on the same drive. This will add various required files to the `\cups` directory, and in the case of Gutenprint will also create the `\gutenprint` top-level directory.
    138137
     
    163162  * When upgrading CUPS or any of the driver packages (Gutenprint, etc.), shut down the CUPS daemon (by terminating all running instances of `cupsd.exe`) before starting.
    164163
    165   * When upgrading either CUPS or Ghostscript, edit the file `\cups\lib\cups\filter\pstoraster` and make sure the "`prefix=`" line points to your correct GhostScript path.
     164  * When upgrading either CUPS or Ghostscript, edit the file `\cups\lib\cups\filter\pstoraster` and make sure the "`prefix=`" line points to your correct Ghostscript path.
    166165
    167166  * After upgrading Gutenprint, go into the CUPS web interface and do the following for **all** printers which use Gutenprint drivers:
     
    170169      3. Leave all current settings on the first two pages unchanged; just click on ''Continue'' until you reach the printer manufacturer/model page.
    171170      4. Make sure the correct manufacturer and model for your printer are selected. Also make sure that the Gutenprint version shown in the driver name are correct for the version of Gutenprint you just installed.  Then click on ''Modify Printer''.
    172       5. It's a good idea to print a test page to make sure everything still works as it should.
    173171    (Alternatively, if you have Perl installed you can download and run the script [http://smedley.info/cups-genppdupdate], which does this automatically.)
     172
     173  Once done, it's a good idea to print a test page to make sure everything still works as it should.
    174174
    175175
     
    232232On this screen, select the connection that is appropriate for your printer.
    233233
    234  [=#local_usb]Local printer (USB)::
    235 
    236    At the moment, the only local connections that are supported directly are USB. There is a workaround which can be used to enable printing via parallel port, but it requires some special setup; [#local_lpt see below].
    237 
    238    It has been reported that some older versions of the operating systems USB support files can cause problems, so please ensure you have the latest versions of the OS/2 USB stack as well as [a href="http://en.ecomstation.ru/projects/usbtools/download/usbcalls-20060807.zip USBCALLS] before you attempt this configuration.
    239 
    240    If your USB printer is connected and powered on, it should show up as an option on this page. This assumes, of course, that everything is working as it should.  Refer to the box below if you are having trouble getting your USB printer recognized by CUPS.
    241    {{{
    242    #!div style=" border: 1px solid black; background: #f0f0f0; font-size: smaller; padding: 0 0.5em 0 0.5em;"
    243    If your CUPS version is older than 1.3.11, you may need to download the USB backend separately from http://download.smedley.info/cups-usb-backend-20090309.zip and install it by unzipping into the `>\cups\lib\cups\backend` directory.  However, all recent releases of CUPS include this file already.
    244 
    245    To verify that the USB support is working, open a command prompt and go to the `\cups\lib\cups\backend` directory.  Make sure your printer is turned on and run `usb.exe` with no parameters.  You should get a display like this:
    246 
    247    `DEBUG: list_devices`\\
    248    `DEBUG: usb_find_busses=1`\\
    249    `DEBUG: usb_find_devices=2`\\
    250    `direct usb://EPSON/PX-101 "EPSON PX-101" "EPSON PX-101" "MFG:EPSON;CMD:ESCPL2,BDC,D4,D4PX;MDL:PX-101;CLS:PRINTER;DES:EPSON PX-101;" ""`
    251 
    252    If you don't get such a display, check that your USB support is working correctly and that you have connected the printer with a known good cable to a known good port.
    253    }}}
    254 
    255  [=#local_lpt]Parallel port connection::
    256    The OS/2 port of CUPS does not currently support printing directly to parallel printers but there is a workaround.
    257 
    258    1. Create an OS/2 printer object using the IBMNULL printer driver. Select LPT''n'' as the Output Port in the printer object properties, where LPT''n'' is the name of the parallel port to which the printer is connected.
    259    2. Start the OS/2 LPD service (`lpd.exe`). To prevent LPD from printing the control file page (an almost-blank page with few lines of information good only for debugging purposes), specify the "-c" parameter.  You can use the OS/2 TCP/IP Configuration notebook to configure LPD.
    260 
    261    When creating the CUPS printer, select ''LPD/LPR Host or Printer'' and enter "`lpd://localhost/`''printer_name''" as the Device URI, where ''printer_name'' is the physical name (as shown on the Properties ''View' page) of the OS/2 printer object just created.
    262 
    263    For example: If you created a desktop printer with the object name "Canon iP4000", open the Properties for that printer and check the name displayed on the ''View'' page.  If the ''Physical name'' shows "CanoniP4", the device URI in CUPS should be "`lpd://localhost/CanoniP4`".
    264 
    265    ||= Field =||= Description =||= Example =||
    266    || ''Device URI:''|| Address of locally-shared LPD printer || `lpd://localhost/CanoniP4` ||
    267 
    268    Thanks to Rodney and others who supplied the above information regarding using locally attached printers with CUPS.
    269 
    270    {{{
    271    #!div style=" border: 1px solid black; background: #f0f0f0; font-size: smaller; padding: 0 0.5em 0 0.5em;"
    272    In fact, the current CUPS port does include a parallel port backend (driver), but it is completely untested due to the fact that none of developers/testers actually has a parallel-port printer.  So the above workaround may or may not still be necessary.
    273    }}}
    274 
    275  [=#tcpip]Network printer::
    276    These options allow you to connect to a network printer using various supported protocols. If the printer was not automatically detected, the following screen will prompt you to enter the necessary connection information in the form of a ''URI'' (a string specifying the connection protocol and address in a URL-like syntax).
    277 
    278    [[Image(cupsweb03a.png, right, border=1, margin-left=5, margin-bottom=10, width=35%)]]
    279    The format of the URI indicates which network protocol to use, and specifies the necessary options.  You have a choice of several different protocols; obviously, use whichever one your network printer or print server supports.
    280 
    281      * Internet Printing Protocol (IPP) is the newest and most advanced; the URI format is "`ipp://`''server[''`:`''port]''`/`''printer[''`?`''option''`=`''value[''`&`''option''`=`''value]]''"
    282      * LPD (or LPR) is the oldest and most widely-supported; use the URI format "`lpd://`''[userid''`@`'']server[''`:`''port]''`/`''printer''"
    283      * !AppSocket (also called !JetDirect) is also widely used; use the URI format
    284 "`socket://`''server[''`:`''port]''"
    285      * Samba is for printers which are being shared out via Windows networking, IBM LAN Server, Peer for OS/2, or a Samba server.  Use the URI format "`smb://`''[userid[''`:`''password]''`@`'']server''`/`''printer''"
    286 
    287    Most TCP/IP network printers use either LPD or !AppSocket (just try one or the other if you're not sure). For shared printers on a Windows server, use Samba.
    288 
    289    {{{
    290    #!div style="border: 1px solid black; background: #f0f0f0; font-size: smaller; padding: 0 0.5em 0 0.5em;"
    291    If you installed CUPS from ZIP files, be aware that support for Samba is not included by default. If you want to use Samba, you need to first obtain the Samba Client Utilities package from [http://svn.netlabs.org/samba]. Extract the file `smbspool.exe`, rename it to `smb.exe` and place it into the `\cups\lib\cups\backend` directory.  You should then be able to use the CUPS Samba support.
    292 
    293    The above is not necessary with the latest CUPS WarpIN packages, which include `smb.exe out of the box.
    294    }}}
    295 
    296    ||= Field =||= Description =||= Example =||
    297    || ''Device URI:'' || Address of network printer || `lpd://192.168.2.1/lpt1` ||
    298 
    299 
     234[=#local_usb]__Local printer (USB)__
     235{{{
     236#!div margin-left="3em"
     237At the moment, the only local connections that are supported directly are USB. There is a workaround which can be used to enable printing via parallel port, but it requires some special setup; [#local_lpt see below].
     238
     239It has been reported that some older versions of the operating systems USB support files can cause problems, so please ensure you have the latest versions of the OS/2 USB stack as well as [http://en.ecomstation.ru/projects/usbtools/download/usbcalls-20060807.zip USBCALLS] before you attempt this configuration.
     240
     241If your USB printer is connected and powered on, it should show up as an option on this page. This assumes, of course, that everything is working as it should.  Refer to the box below if you are having trouble getting your USB printer recognized by CUPS.
     242{{{
     243#!div style=" border: 1px solid black; background: #f0f0f0; font-size: smaller; padding: 0 0.5em 0 0.5em;"
     244If your CUPS version is older than 1.3.11, you may need to download the USB backend separately from http://download.smedley.info/cups-usb-backend-20090309.zip and install it by unzipping into the `>\cups\lib\cups\backend` directory.  However, all recent releases of CUPS include this file already.
     245
     246To verify that the USB support is working, open a command prompt and go to the `\cups\lib\cups\backend` directory.  Make sure your printer is turned on and run `usb.exe` with no parameters.  You should get a display like this:
     247
     248`DEBUG: list_devices`\\
     249`DEBUG: usb_find_busses=1`\\
     250`DEBUG: usb_find_devices=2`\\
     251`direct usb://EPSON/PX-101 "EPSON PX-101" "EPSON PX-101" "MFG:EPSON;CMD:ESCPL2,BDC,D4,D4PX;MDL:PX-101;CLS:PRINTER;DES:EPSON PX-101;" ""`
     252
     253If you don't get such a display, check that your USB support is working correctly and that you have connected the printer with a known good cable to a known good port.
     254}}}
     255}}}
     256
     257[=#local_lpt]__Parallel port connection__
     258{{{
     259#!div margin-left="3em"
     260The OS/2 port of CUPS does not currently support printing directly to parallel printers but there is a workaround.
     261  1. Create an OS/2 printer object using the IBMNULL printer driver. Select LPT''n'' as the Output Port in the printer object properties, where LPT''n'' is the name of the parallel port to which the printer is connected.
     262  2. Start the OS/2 LPD service (`lpd.exe`). To prevent LPD from printing the control file page (an almost-blank page with few lines of information good only for debugging purposes), specify the "-c" parameter.  You can use the OS/2 TCP/IP Configuration notebook to configure LPD.
     263
     264When creating the CUPS printer, select ''LPD/LPR Host or Printer'' and enter "`lpd://localhost/`''printer_name''" as the Device URI, where ''printer_name'' is the physical name (as shown on the Properties ''View' page) of the OS/2 printer object just created.
     265
     266For example: If you created a desktop printer with the object name "Canon iP4000", open the Properties for that printer and check the name displayed on the ''View'' page.  If the ''Physical name'' shows "CanoniP4", the device URI in CUPS should be "`lpd://localhost/CanoniP4`".
     267
     268||= Field =||= Description =||= Example =||
     269|| ''Device URI:''|| Address of locally-shared LPD printer || `lpd://localhost/CanoniP4` ||
     270
     271Thanks to Rodney and others who supplied the above information regarding using locally attached printers with CUPS.
     272{{{
     273#!div style=" border: 1px solid black; background: #f0f0f0; font-size: smaller; padding: 0 0.5em 0 0.5em;"
     274In fact, the current CUPS port does include a parallel port backend (driver), but it is completely untested due to the fact that none of developers/testers actually has a parallel-port printer.  So the above workaround may or may not still be necessary.
     275}}}
     276}}}
     277
     278[=#network]__Network printer__
     279{{{
     280#!div margin-left="3em"
     281These options allow you to connect to a network printer using various supported protocols. If the printer was not automatically detected, the following screen will prompt you to enter the necessary connection information in the form of a ''URI'' (a string specifying the connection protocol and address in a URL-like syntax).
     282
     283[[Image(cupsweb03a.png, right, border=1, margin-left=5, margin-bottom=10, width=35%)]]
     284The format of the URI indicates which network protocol to use, and specifies the necessary options.  You have a choice of several different protocols; obviously, use whichever one your network printer or print server supports.
     285 * Internet Printing Protocol (IPP) is the newest and most advanced; the URI format is "`ipp://`''server[''`:`''port]''`/`''printer[''`?`''option''`=`''value[''`&`''option''`=`''value]]''"
     286 * LPD (or LPR) is the oldest and most widely-supported; use the URI format "`lpd://`''[userid''`@`'']server[''`:`''port]''`/`''printer''"
     287 * !AppSocket (also called !JetDirect) is also widely used; use the URI format "`socket://`''server[''`:`''port]''"
     288 * Samba is for printers which are being shared out via Windows networking, IBM LAN Server, Peer for OS/2, or a Samba server.  Use the URI format "`smb://`''[userid[''`:`''password]''`@`'']server''`/`''printer''"
     289
     290Most TCP/IP network printers use either LPD or !AppSocket (just try one or the other if you're not sure). For shared printers on a Windows server, use Samba.
     291{{{
     292#!div style="border: 1px solid black; background: #f0f0f0; font-size: smaller; padding: 0 0.5em 0 0.5em;"
     293If you installed CUPS from ZIP files, be aware that support for Samba is not included by default. If you want to use Samba, you need to first obtain the Samba Client Utilities package from [http://svn.netlabs.org/samba]. Extract the file `smbspool.exe`, rename it to `smb.exe` and place it into the `\cups\lib\cups\backend` directory.  You should then be able to use the CUPS Samba support.
     294
     295The above is not necessary with the latest CUPS WarpIN packages, which include `smb.exe` out of the box.
     296}}}
     297\\
     298||= Field =||= Description =||= Example =||
     299|| ''Device URI:'' || Address of network printer || `lpd://192.168.2.1/lpt1` ||
     300}}}
     301
     302\\
    300303Select the ''Continue'' button when you are done with this section.
    301304
     
    329332There are two ways to specify the printer.
    330333
    331   * In most cases, you will choose the manufacturer and printer model from the list shown. (If the printer was auto-detected by CUPS, the manufacturer will probably be preselected and you'll only need to choose the right printer model.)  Generally, the list of models will show the printer model, followed by a dash and then the name of the driver package it belongs to (such as Gutenprint).
    332 
    333     Note that Gutenprint in particular normally provides two alternate drivers for each printer: a standard driver, and one called 'Simplified'.  The difference is in the level of configurability — the standard drivers support fine-tuning a number of advanced settings related to quality and colour balance.  In almost all cases, you will prefer the Simplified drivers, which are more than sufficient for most needs.
    334 
    335   * If your printer model isn't listed, but you have a PPD file for your printer, supporting one of the installed driver packages (Gutenprint, etc.), then you can specify that in the field at the bottom.
    336 
    337     Note that any PPD file you provide here must be specifically written for use with CUPS in conjunction with one of the driver packages you have installed.  You **cannot** use a standard (e.g. Windows) PPD for this purpose.
     334 * In most cases, you will choose the manufacturer and printer model from the list shown. (If the printer was auto-detected by CUPS, the manufacturer will probably be preselected and you'll only need to choose the right printer model.)  Generally, the list of models will show the printer model, followed by a dash and then the name of the driver package it belongs to (such as Gutenprint).\\\\
     335   Note that Gutenprint in particular normally provides two alternate drivers for each printer: a standard driver, and one called 'Simplified'.  The difference is in the level of configurability — the standard drivers support fine-tuning a number of advanced settings related to quality and colour balance.  In almost all cases, you will prefer the Simplified drivers, which are more than sufficient for most needs.
     336
     337 * If your printer model isn't listed, but you have a PPD file for your printer, supporting one of the installed driver packages (Gutenprint, etc.), then you can specify that in the field at the bottom.\\\\
     338   Note that any PPD file you provide here must be specifically written for use with CUPS in conjunction with one of the driver packages you have installed.  You **cannot** use a standard (e.g. Windows) PPD for this purpose.
    338339
    339340Click on ''Add Printer'' when you are happy with your selections.
     
    485486
    486487     The required settings for the CUPS port are:
    487      CUPS Server::
    488        "`localhost`" (or use 127.0.0.1).
    489      CUPS Printer Name::
    490        This should be the same name as used for creating the CUPS printer (in the CUPS web interface [#add_name above]).
     488
     489     ''CUPS Server'': "`localhost`" (or use 127.0.0.1).\\
     490     ''CUPS Printer Name:'' This should be the same name as used for creating the CUPS printer (in the CUPS web interface [#add_name above]).
    491491
    492492     Select ''OK'' when done.