ACC SHELL

Path : /usr/share/gnome/help/opensuse-manuals/C/
File Upload :
Current File : //usr/share/gnome/help/opensuse-manuals/C/cha.p.html

<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 11. Printer Operation</title><link rel="stylesheet" href="susebooks.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="Documentation"><link rel="up" href="part.reference.administration.html" title="Part III. Administration"><link rel="prev" href="cha.yast.text.html" title="Chapter 10. YaST in Text Mode"><link rel="next" href="cha.fontconfig.html" title="Chapter 12. Installing and Configuring Fonts for the Graphical User Interface"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header" border="0" class="bctable"><tr><td width="80%"><div class="breadcrumbs"><p><a href="index.html"> Documentation</a><span class="breadcrumbs-sep"> &gt; </span><a href="book.opensuse.reference.html">Reference</a><span class="breadcrumbs-sep"> &gt; </span><a href="part.reference.administration.html">Administration</a><span class="breadcrumbs-sep"> &gt; </span><strong><a accesskey="p" title="Chapter 10. YaST in Text Mode" href="cha.yast.text.html"><span>&#9664;</span></a>  <a accesskey="n" title="Chapter 12. Installing and Configuring Fonts for the Graphical User Interface" href="cha.fontconfig.html"><span>&#9654;</span></a></strong></p></div></td></tr></table></div><div class="chapter" title="Chapter 11. Printer Operation"><div class="titlepage"><div><div><h2 class="title"><a name="cha.p"></a>Chapter 11. Printer Operation<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#cha.p">¶</a></span></h2></div></div></div><div class="toc"><p><b>Contents</b></p><dl><dt><span class="sect1"><a href="cha.p.html#sec.p.workflow">11.1. The Workflow of the Printing System</a></span></dt><dt><span class="sect1"><a href="cha.p.html#sec.p.method">11.2. Methods and Protocols for Connecting Printers</a></span></dt><dt><span class="sect1"><a href="cha.p.html#sec.p.software">11.3. Installing the Software</a></span></dt><dt><span class="sect1"><a href="cha.p.html#sec.p.net">11.4. Network Printers</a></span></dt><dt><span class="sect1"><a href="cha.p.html#sec.p.appl.commandline">11.5. Printing from the Command Line</a></span></dt><dt><span class="sect1"><a href="cha.p.html#sec.p.special">11.6. Special Features in openSUSE</a></span></dt><dt><span class="sect1"><a href="cha.p.html#sec.drucken.prob">11.7. Troubleshooting</a></span></dt></dl></div><a class="indexterm" name="id450720"></a><p>
  openSUSE® supports printing with many types of printers, including
  remote network printers. Printers can be configured manually or with
  YaST. For configuration instructions, refer to
  Section &#8220;Setting Up a Printer&#8221; (Chapter 2, <i>Setting Up Hardware Components with YaST</i>, &#8593;Start-Up). Both graphical and command line
  utilities are available for starting and managing print jobs. If your
  printer does not work as expected, refer to
  <a class="xref" href="cha.p.html#sec.drucken.prob" title="11.7. Troubleshooting">Section 11.7, &#8220;Troubleshooting&#8221;</a>.
 </p><p>
  CUPS (Common Unix Printing System) is the standard print system in openSUSE. 
 </p><p>
  Printers can be distinguished by interface, such as USB or network, and
  printer language. When buying a printer, make sure that the printer has an
  interface (like USB or parallel port) that is available on your hardware
  and a suitable printer language. Printers can be categorized on the basis
  of the following three classes of printer languages:
 </p><div class="variablelist"><dl><dt><span class="term">PostScript Printers</span></dt><dd><p> PostScript is the printer language in which most print jobs in Linux
     and Unix are generated and processed by the internal print system. If
     PostScript documents can be processed directly by the printer and do not
     need to be converted in additional stages in the print system, the number
     of potential error sources is reduced. </p></dd><dt><span class="term">Standard Printers (Languages Like PCL and ESC/P)</span></dt><dd><p> Although these printer languages are quite old, they are still
     undergoing expansion to address new features in printers. In the case of
     known printer languages, the print system can convert PostScript jobs to
     the respective printer language with the help of Ghostscript. This
     processing stage is referred to as interpreting. The best-known languages
     are PCL (which is mostly used by HP printers and their clones) and ESC/P
     (which is used by Epson printers). These printer languages are usually
     supported by Linux and produce an adequate print result. Linux may not be
     able to address some special printer functions. Except for HP developing
     HPLIP (HP Linux Imaging and Printing), there are currently no printer
     manufacturers who develop Linux drivers and make them available to Linux
     distributors under an open source license. </p></dd><dt><a name="sec.p.prep.gdi"></a><span class="term">Proprietary Printers (Also Called GDI Printers)</span></dt><dd><p>
     These printers do not support any of the common printer languages. They
     use their own undocumented printer languages, which are subject to
     change when a new edition of a model is released. Usually only Windows
     drivers are available for these printers. See
     <a class="xref" href="cha.p.html#sec.drucken.gdi" title="11.7.1. Printers without Standard Printer Language Support">Section 11.7.1, &#8220;Printers without Standard Printer Language Support&#8221;</a> for more information.
    </p></dd></dl></div><p>
  Before you buy a new printer, refer to the following sources to check how
  well the printer you intend to buy is supported:
 </p><div class="variablelist"><dl><dt><span class="term"><a class="ulink" href="http://www.linuxfoundation.org/OpenPrinting/" target="_top">http://www.linuxfoundation.org/OpenPrinting/</a>
   </span></dt><dd><p>
     The OpenPrinting home page with the printer database. The database
     shows the latest Linux support status. However, a Linux
     distribution can only integrate the drivers available at production
     time. Accordingly, a printer currently rated as <span class="quote">&#8220;<span class="quote">perfectly
     supported</span>&#8221;</span> may not have had this status when the latest
     openSUSE version was released. Thus, the databases may not
     necessarily indicate the correct status, but only provide an
     approximation.
    </p></dd><dt><span class="term"><a class="ulink" href="http://www.cs.wisc.edu/~ghost/" target="_top">http://www.cs.wisc.edu/~ghost/</a>
   </span></dt><dd><p>
     The Ghostscript Web page.
    </p></dd><dt><span class="term"><code class="filename">/usr/share/doc/packages/ghostscript-library/catalog.devices</code>
   </span></dt><dd><p>
     List of included drivers.
    </p></dd></dl></div><div class="sect1" title="11.1. The Workflow of the Printing System"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.p.workflow"></a>11.1. The Workflow of the Printing System<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.p.workflow">¶</a></span></h2></div></div></div><p>
   The user creates a print job. The print job consists of the data to print
   plus information for the spooler, such as the name of the printer or the
   name of the printer queue, and optionally, information for the filter,
   such as printer-specific options.
  </p><p>
   At least one dedicated printer queue exists for every printer. The
   spooler holds the print job in the queue until the desired printer is
   ready to receive data. When the printer is ready, the spooler sends the
   data through the filter and back-end to the printer.
  </p><p>
   The filter converts the data generated by the application that is
   printing (usually PostScript or PDF, but also ASCII, JPEG, etc.) into
   printer-specific data (PostScript, PCL, ESC/P, etc.). The features of the
   printer are described in the PPD files. A PPD file contains
   printer-specific options with the parameters needed to enable them on the
   printer. The filter system makes sure that options selected by the user
   are enabled.
  </p><p>
   If you use a PostScript printer, the filter system converts the data into
   printer-specific PostScript. This does not require a printer driver. If
   you use a non-PostScript printer, the filter system converts the data
   into printer-specific data. This requires a printer driver suitable for
   your printer. The back-end receives the printer-specific data from the
   filter then passes it to the printer.
  </p></div><div class="sect1" title="11.2. Methods and Protocols for Connecting Printers"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.p.method"></a>11.2. Methods and Protocols for Connecting Printers<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.p.method">¶</a></span></h2></div></div></div><p> There are various possibilities for connecting a printer to the system.
   The configuration of the CUPS print system does not distinguish between a
   local printer and a printer connected to the system over the network. <span>For more information about the printer connection, read the
    article <span class="emphasis"><em>CUPS in a Nutshell</em></span> in the Support Database at
     <a class="ulink" href="http://old-en.opensuse.org/SDB:CUPS_in_a_Nutshell" target="_top">http://old-en.opensuse.org/SDB:CUPS_in_a_Nutshell</a>.</span>
  </p><div class="warning"><table border="0" cellpadding="3" cellspacing="0" width="100%" summary="Warning: Changing Cable Connections in a Running System"><tr class="head"><td width="32"><img alt="[Warning]" src="admon/warning.png"></td><th align="left">Changing Cable Connections in a Running System</th></tr><tr><td colspan="2" align="left" valign="top"><p>
    When connecting the printer to the machine, do not forget that only USB
    devices can be plugged in or unplugged during operation. To avoid
    damaging your system or printer, shut down the system before changing
    any connections that are not USB.
   </p></td></tr></table></div></div><div class="sect1" title="11.3. Installing the Software"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.p.software"></a>11.3. Installing the Software<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.p.software">¶</a></span></h2></div></div></div><p>
   PPD (PostScript printer description) is the computer language that
   describes the properties, like resolution, and options, such as the
   availability of a duplex unit. These descriptions are required for using
   various printer options in CUPS. Without a PPD file, the print data would
   be forwarded to the printer in a <span class="quote">&#8220;<span class="quote">raw</span>&#8221;</span> state, which is
   usually not desired. During the installation of openSUSE, many PPD
   files are preinstalled.
  </p><p>
   To configure a PostScript printer, the best approach is to get a suitable
   PPD file. Many PPD files are available in the package
   <code class="systemitem">manufacturer-PPDs</code>, which is automatically
   installed within the scope of the standard installation. See
   <a class="xref" href="cha.p.html#sec.p.special.ppd" title="11.6.2. PPD Files in Various Packages">Section 11.6.2, &#8220;PPD Files in Various Packages&#8221;</a> and
   <a class="xref" href="cha.p.html#sec.drucken.prob.ppd" title="11.7.2. No Suitable PPD File Available for a PostScript Printer">Section 11.7.2, &#8220;No Suitable PPD File Available for a PostScript Printer&#8221;</a>.
  </p><p>
   New PPD files can be stored in the directory
   <code class="filename">/usr/share/cups/model/</code> or added to the print system
   with YaST as described in
   Section &#8220;Adding Drivers with YaST&#8221; (Chapter 2, <i>Setting Up Hardware Components with YaST</i>, &#8593;Start-Up). Subsequently, the
   PPD file can be selected during the printer setup.
  </p><p>
   Be careful if a printer manufacturer wants you to install entire software
   packages. First, this kind
   of installation may result in the loss of the support provided by
   openSUSE and second, print commands may work differently and the
   system may no longer be able to address devices of other manufacturers.
   For this reason, the installation of manufacturer software is not
   recommended.
  </p></div><div class="sect1" title="11.4. Network Printers"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.p.net"></a>11.4. Network Printers<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.p.net">¶</a></span></h2></div></div></div><p> A network printer can support various protocols, some of them even
   concurrently. Although most of the supported protocols are standardized, some
   manufacturers modify the standard. Manufacturers then provide drivers for
   only a few operating systems.
   Unfortunately, Linux drivers are rarely provided. The current situation is
   such that you cannot act on the assumption that every protocol works smoothly
   in Linux. Therefore, you may have to experiment with various options to
   achieve a functional configuration. </p><p>
   CUPS supports the <code class="systemitem">socket</code>,
   <code class="systemitem">LPD</code>, <code class="systemitem">IPP</code> and
   <code class="systemitem">smb</code> protocols.
  </p><div class="variablelist"><dl><dt><span class="term">socket</span></dt><dd><p>
      <span class="emphasis"><em>Socket</em></span> refers to a connection in which the plain
      print data is sent directly to a TCP socket. Some of the socket port
      numbers that are commonly used are <code class="option">9100</code> or
       <code class="option">35</code>. The device URI (uniform resource identifier) syntax
      is:
       socket://<em class="replaceable"><code>IP.of.the.printer</code></em>:<em class="replaceable"><code>port</code></em>,
      for example: <code class="systemitem">socket://192.168.2.202:9100/</code>.
     </p></dd><dt><span class="term">LPD (Line Printer Daemon)</span></dt><dd><p> The LPD protocol is described in RFC 1179. Under this
      protocol, some job-related data, such as the ID of the printer queue, is
      sent before the actual print data is sent. Therefore, a printer queue must
      be specified when configuring the LPD protocol. The implementations of
      diverse printer manufacturers are flexible enough to accept any name as
      the printer queue. If necessary, the printer manual should indicate what
      name to use. LPT, LPT1, LP1 or similar names are often used. The port
      number for an LPD service is <code class="option">515</code>. An example device URI
      is <code class="systemitem">lpd://192.168.2.202/LPT1</code>. </p></dd><dt><span class="term">IPP (Internet Printing Protocol)</span></dt><dd><p> IPP is a relatively new protocol (1999) based on the HTTP protocol.
      With IPP, more job-related data is transmitted than with the other
      protocols. CUPS uses IPP for internal data transmission. The name of the
      print queue is necessary to configure IPP correctly. The port number for
      IPP is <code class="literal">631</code>. Example device URIs are
       <code class="systemitem">ipp://192.168.2.202/ps</code> and
       <code class="systemitem">ipp://192.168.2.202/printers/ps</code>. </p></dd><dt><span class="term">SMB (Windows Share)</span></dt><dd><p>
      CUPS also supports printing on printers connected to Windows shares.
      The protocol used for this purpose is SMB. SMB uses the port numbers
      <code class="option">137</code>, <code class="option">138</code> and <code class="option">139</code>.
      Example device URIs are
      <code class="systemitem">smb://user:password@workgroup/smb.example.com/printer</code>,
      <code class="systemitem">smb://user:password@smb.example.com/printer</code>, and
      <code class="systemitem">smb://smb.example.com/printer</code>.
     </p></dd></dl></div><p>
   The protocol supported by the printer must be determined before
   configuration. If the manufacturer does not provide the needed
   information, the command <span class="command"><strong>nmap</strong></span> (which comes with the
   <code class="systemitem">nmap</code> package) can be used to ascertain the
   protocol. <span class="command"><strong>nmap</strong></span> checks a host for open ports. For
   example:
  </p><pre class="screen">nmap -p 35,137-139,515,631,9100-10000 <em class="replaceable"><code>printerIP</code></em></pre><div class="sect2" title="11.4.1. Configuring CUPS with Command Line Tools"><div class="titlepage"><div><div><h3 class="title"><a name="sec.p.net.config_cmdl"></a>11.4.1. Configuring CUPS with Command Line Tools<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.p.net.config_cmdl">¶</a></span></h3></div></div></div><p> CUPS can be configured with command line tools like
    <span class="command"><strong>lpinfo</strong></span>, <span class="command"><strong>lpadmin</strong></span> and
    <span class="command"><strong>lpoptions</strong></span>. You need a device URI consisting of a
    back-end, such as parallel, and parameters. To determine valid device URIs
    on your system use the command <span class="command"><strong>lpinfo -v | grep ":/"</strong></span>:
   </p><pre class="screen"># lpinfo -v | grep ":/"
direct usb://ACME/FunPrinter%20XL
direct parallel:/dev/lp0
</pre><p>
    With <span class="command"><strong>lpadmin</strong></span> the CUPS server administrator can add,
    remove or manage print queues. To add a print queue, use the
    following syntax:
   </p><pre class="screen">lpadmin -p <em class="replaceable"><code>queue</code></em> -v <em class="replaceable"><code>device-URI</code></em> -P <em class="replaceable"><code>PPD-file</code></em> -E</pre><p>
    Then the device (<code class="option">-v</code>) is available as
    <em class="replaceable"><code>queue</code></em> (<code class="option">-p</code>), using the
    specified PPD file (<code class="option">-P</code>). This means that you must know
    the PPD file and the device URI to configure the printer manually.
   </p><p>
    Do not use <code class="option">-E</code> as the first option. For all CUPS
    commands, <code class="option">-E</code> as the first argument sets use of an
    encrypted connection. To enable the printer, <code class="option">-E</code> must be
    used as shown in the following example:
   </p><pre class="screen">lpadmin -p ps -v parallel:/dev/lp0 -P \
/usr/share/cups/model/Postscript.ppd.gz -E</pre><p>
    The following example configures a network printer:
   </p><pre class="screen">lpadmin -p ps -v socket://192.168.2.202:9100/ -P \
/usr/share/cups/model/Postscript-level1.ppd.gz -E</pre><p>
    For more options of <span class="command"><strong>lpadmin</strong></span>, see the man page of
    <code class="systemitem">lpadmin(8)</code>.
   </p><p>
    During printer setup, certain options are set as default. These options
    can be modified for every print job (depending on the print tool used).
    Changing these default options with YaST is also possible. Using
    command line tools, set default options as follows:
   </p><div class="procedure"><ol class="procedure" type="1"><li><p>
      First, list all options:
     </p><pre class="screen">lpoptions -p <em class="replaceable"><code>queue</code></em> -l</pre><p>
      Example:
     </p><pre class="screen">Resolution/Output Resolution: 150dpi *300dpi 600dpi</pre><p>
      The activated default option is identified by a preceding asterisk
      (<code class="literal">*</code>).
     </p></li><li><p>
      Change the option with <span class="command"><strong>lpadmin</strong></span>:
     </p><pre class="screen">lpadmin -p <em class="replaceable"><code>queue</code></em> -o Resolution=600dpi</pre></li><li><p>
      Check the new setting:
     </p><pre class="screen">lpoptions -p <em class="replaceable"><code>queue</code></em> -l

Resolution/Output Resolution: 150dpi 300dpi *600dpi</pre></li></ol></div><p>
    When a normal user runs <span class="command"><strong>lpoptions</strong></span>, the settings are
    written to <code class="filename">~/.cups/lpoptions</code>. However,
    <code class="systemitem">root</code> settings are written
    to <code class="filename">/etc/cups/lpoptions</code>.
   </p></div></div><div class="sect1" title="11.5. Printing from the Command Line"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.p.appl.commandline"></a>11.5. Printing from the Command Line<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.p.appl.commandline">¶</a></span></h2></div></div></div><a class="indexterm" name="id451480"></a><a class="indexterm" name="id451489"></a><p>
   To print from the command line, enter <span class="command"><strong>lp -d
   <em class="replaceable"><code>queuename</code></em>
   <em class="replaceable"><code>filename</code></em></strong></span>, substituting the
   corresponding names for <em class="replaceable"><code>queuename</code></em> and
   <em class="replaceable"><code>filename</code></em>.
  </p><p>
   Some applications rely on the <span class="command"><strong>lp</strong></span> command for printing.
   In this case, enter the correct command in the application's print
   dialog, usually without specifying <em class="replaceable"><code>filename</code></em>,
   for example, <span class="command"><strong>lp -d
   <em class="replaceable"><code>queuename</code></em></strong></span>.
  </p></div><div class="sect1" title="11.6. Special Features in"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.p.special"></a>11.6. Special Features in openSUSE<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.p.special">¶</a></span></h2></div></div></div><p>
   A number of CUPS features have been adapted for openSUSE. Some of
   the most important changes are covered here.
  </p><div class="sect2" title="11.6.1. CUPS and Firewall"><div class="titlepage"><div><div><h3 class="title"><a name="sec.p.special.cupsfire"></a>11.6.1. CUPS and Firewall<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.p.special.cupsfire">¶</a></span></h3></div></div></div><p> After having performed a default installation of openSUSE,
    SuSEfirewall2 is active and the network interfaces are configured to be in
    the <code class="literal">External Zone</code> which blocks incoming traffic. More
    information about the SUSEfirewall2 configuration is available in Section &#8220;SuSEfirewall2&#8221; (Chapter 14, <i>Masquerading and Firewalls</i>, &#8593;Security Guide) and at <a class="ulink" href="http://en.opensuse.org/SDB:CUPS_and_SANE_Firewall_settings" target="_top">http://en.opensuse.org/SDB:CUPS_and_SANE_Firewall_settings</a>. </p><div class="sect3" title="11.6.1.1. CUPS Client"><div class="titlepage"><div><div><h4 class="title"><a name="sec.p.special.cupsfire.client"></a>11.6.1.1. CUPS Client<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.p.special.cupsfire.client">¶</a></span></h4></div></div></div><p>
     Normally, a CUPS client runs on a regular workstation located in a
     trusted network environment behind a firewall. In this case it is
     recommended to configure the network interface to be in the
     <code class="literal">Internal Zone</code>, so the workstation is reachable from
     within the network.
    </p></div><div class="sect3" title="11.6.1.2. CUPS Server"><div class="titlepage"><div><div><h4 class="title"><a name="sec.p.special.cupsfire.server"></a>11.6.1.2. CUPS Server<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.p.special.cupsfire.server">¶</a></span></h4></div></div></div><p>
     If the CUPS server is part of a trusted network environment protected
     by a firewall, the network interface should be configured to be in the
     <code class="literal">Internal Zone</code> of the firewall. It is not recommended
     to set up a CUPS server in an untrusted network environment unless you
     take care that it is protected by special firewall rules and secure
     settings in the CUPS configuration.
    </p></div></div><div class="sect2" title="11.6.2. PPD Files in Various Packages"><div class="titlepage"><div><div><h3 class="title"><a name="sec.p.special.ppd"></a>11.6.2. PPD Files in Various Packages<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.p.special.ppd">¶</a></span></h3></div></div></div><p> The YaST printer configuration sets up the queues for CUPS using
    the PPD files installed in <code class="filename">/usr/share/cups/model</code>. To
    find the suitable PPD files for the printer model, YaST compares the
    vendor and model determined during hardware detection with the vendors and
    models in all PPD files. For this purpose, the YaST printer
    configuration generates a database from the vendor and model information
    extracted from the PPD files.</p><p> The configuration using only PPD files and no other information
    sources has the advantage that the PPD files in
     <code class="filename">/usr/share/cups/model</code> can be modified freely. For
    example, if you only have PostScript printers, normally you do not need the
    Foomatic PPD files in the <code class="systemitem">cups-drivers</code> package or
    the Gutenprint PPD files in the <code class="systemitem">gutenprint</code> package.
    Instead, the PPD files for your PostScript printers can be copied directly
    to <code class="filename">/usr/share/cups/model</code> (if they do not already exist
    in the <code class="systemitem">manufacturer-PPDs</code> package) to achieve an
    optimum configuration for your printers. </p><div class="sect3" title="11.6.2.1. CUPS PPD Files in the cups Package"><div class="titlepage"><div><div><h4 class="title"><a name="sec.p.special.ppd.cups"></a>11.6.2.1. CUPS PPD Files in the <code class="systemitem">cups</code> Package<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.p.special.ppd.cups">¶</a></span></h4></div></div></div><p>
     The generic PPD files in the <code class="systemitem">cups</code> package have
     been complemented with adapted Foomatic PPD files for PostScript level
     1 and level 2 printers:
    </p><div class="itemizedlist"><ul class="itemizedlist" type="bullet"><li class="listitem" style="list-style-type: disc"><p>
       <code class="filename">/usr/share/cups/model/Postscript-level1.ppd.gz</code>
      </p></li><li class="listitem" style="list-style-type: disc"><p>
       <code class="filename">/usr/share/cups/model/Postscript-level2.ppd.gz</code>
      </p></li></ul></div></div><div class="sect3" title="11.6.2.2. PPD Files in the cups-drivers Package"><div class="titlepage"><div><div><h4 class="title"><a name="sec.p.special.ppd.foomatic"></a>11.6.2.2. PPD Files in the <code class="systemitem">cups-drivers</code> Package<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.p.special.ppd.foomatic">¶</a></span></h4></div></div></div><p>
     Normally, the Foomatic printer filter
     <code class="systemitem">foomatic-rip</code> is used together with Ghostscript
     for non-PostScript printers. Suitable Foomatic PPD files have the
     entries <code class="systemitem">*NickName: ... Foomatic/Ghostscript
     driver</code> and <code class="systemitem">*cupsFilter: ...
     foomatic-rip</code>. These PPD files are located in the
     <code class="systemitem">cups-drivers</code> package.
    </p><p>
     YaST generally prefers a <code class="systemitem">manufacturer-PPD</code>
     file. However, when no suitable
     <code class="systemitem">manufacturer-PPD</code> file exists, a Foomatic PPD
     file with the entry <code class="systemitem">*NickName: ... Foomatic ...
     (recommended)</code> is selected.
    </p></div><div class="sect3" title="11.6.2.3. Gutenprint PPD Files in the gutenprint Package"><div class="titlepage"><div><div><h4 class="title"><a name="sec.p.special.ppd.gimp"></a>11.6.2.3. Gutenprint PPD Files in the <code class="systemitem">gutenprint</code> Package<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.p.special.ppd.gimp">¶</a></span></h4></div></div></div><p>
     Instead of <code class="systemitem">foomatic-rip</code>, the CUPS filter
     <code class="systemitem">rastertogutenprint</code> from Gutenprint (formerly
     known as GIMP-Print) can be used for many non-PostScript printers. This
     filter and suitable Gutenprint PPD files are available in the
     <code class="systemitem">gutenprint</code> package. The Gutenprint PPD files
     are located in <code class="filename">/usr/share/cups/model/gutenprint/</code>
     and have the entries <code class="systemitem">*NickName: ...
     CUPS+Gutenprint</code> and <code class="systemitem">*cupsFilter: ...
     rastertogutenprint</code>.
    </p></div><div class="sect3" title="11.6.2.4. PPD Files from Printer Manufacturers in the manufacturer-PPDs Package"><div class="titlepage"><div><div><h4 class="title"><a name="sec.p.special.ppd.manu"></a>11.6.2.4. PPD Files from Printer Manufacturers in the <code class="systemitem">manufacturer-PPDs</code> Package<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.p.special.ppd.manu">¶</a></span></h4></div></div></div><p>
     The <code class="systemitem">manufacturer-PPDs</code> package contains PPD
     files from printer manufacturers that are released under a sufficiently
     liberal license. PostScript printers should be configured with the
     suitable PPD file of the printer manufacturer, because this file
     enables the use of all functions of the PostScript printer. YaST
     prefers a PPD file from the <code class="systemitem">manufacturer-PPDs</code>.
     YaST cannot use a PPD file from the
     <code class="systemitem">manufacturer-PPDs</code> package if the model name
     does not match. This may happen if the
     <code class="systemitem">manufacturer-PPDs</code> package contains only one
     PPD file for similar models, like Funprinter 12xx series. In this case,
     select the respective PPD file manually in YaST.
    </p></div></div></div><div class="sect1" title="11.7. Troubleshooting"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec.drucken.prob"></a>11.7. Troubleshooting<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.drucken.prob">¶</a></span></h2></div></div></div><p>
   The following sections cover some of the most frequently encountered
   printer hardware and software problems and ways to solve or circumvent
   these problems. Among the topics covered are GDI printers, PPD files and
   port configuration. Common network printer problems, defective printouts,
   and queue handling are also addressed.
  </p><div class="sect2" title="11.7.1. Printers without Standard Printer Language Support"><div class="titlepage"><div><div><h3 class="title"><a name="sec.drucken.gdi"></a>11.7.1. Printers without Standard Printer Language Support<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.drucken.gdi">¶</a></span></h3></div></div></div><a class="indexterm" name="id451896"></a><p>
    These printers do not support any common printer language and can only
    be addressed with special proprietary control sequences. Therefore they
    can only work with the operating system versions for which the
    manufacturer delivers a driver. GDI is a programming interface developed
    by Microsoft* for graphics devices. Usually the manufacturer delivers
    drivers only for Windows, and since the Windows driver uses the GDI
    interface these printers are also called <span class="emphasis"><em>GDI
    printers</em></span>. The actual problem is not the programming
    interface, but the fact that these printers can only be addressed with
    the proprietary printer language of the respective printer model.
   </p><p>
    Some GDI printers can be switched to operate either in GDI mode or in
    one of the standard printer languages. See the manual of the printer
    whether this is possible. Some models require special Windows software
    to do the switch (note that the Windows printer driver may always switch
    the printer back into GDI mode when printing from Windows). For other
    GDI printers there are extension modules for a standard printer language
    available.
   </p><p>
    Some manufacturers provide proprietary drivers for their printers. The
    disadvantage of proprietary printer drivers is that there is no
    guarantee that these work with the installed print system or that they
    are suitable for the various hardware platforms. In contrast, printers
    that support a standard printer language do not depend on a special
    print system version or a special hardware platform.
   </p><p>
    Instead of spending time trying to make a proprietary Linux driver work,
    it may be more cost-effective to purchase a printer which supports a
    standard printer language (preferably PostScript). This
    would solve the driver problem once and for all, eliminating the need to
    install and configure special driver software and obtain driver updates
    that may be required due to new developments in the print system.
   </p></div><div class="sect2" title="11.7.2. No Suitable PPD File Available for a PostScript Printer"><div class="titlepage"><div><div><h3 class="title"><a name="sec.drucken.prob.ppd"></a>11.7.2. No Suitable PPD File Available for a PostScript Printer<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.drucken.prob.ppd">¶</a></span></h3></div></div></div><p>
    If the <code class="systemitem">manufacturer-PPDs</code> package does not
    contain a suitable PPD file for a PostScript printer, it should be
    possible to use the PPD file from the driver CD of the printer
    manufacturer or download a suitable PPD file from the Web page of the
    printer manufacturer.
   </p><p>
    If the PPD file is provided as a zip archive (.zip) or a self-extracting
    zip archive (<code class="filename">.exe</code>), unpack it with
    <span class="command"><strong>unzip</strong></span>. First, review the license terms of the PPD
    file. Then use the <span class="command"><strong>cupstestppd</strong></span> utility to check if
    the PPD file complies with <span class="quote">&#8220;<span class="quote">Adobe PostScript Printer Description
    File Format Specification, version 4.3.</span>&#8221;</span> If the utility returns
    <span class="quote">&#8220;<span class="quote">FAIL,</span>&#8221;</span> the errors in the PPD files are serious and are
    likely to cause major problems. The problem spots reported by
    <span class="command"><strong>cupstestppd</strong></span> should be eliminated. If necessary, ask
    the printer manufacturer for a suitable PPD file.
   </p></div><div class="sect2" title="11.7.3. Parallel Ports"><div class="titlepage"><div><div><h3 class="title"><a name="sec.drucken.prob.parport"></a>11.7.3. Parallel Ports<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.drucken.prob.parport">¶</a></span></h3></div></div></div><p>
    The safest approach is to connect the printer directly to the first
    parallel port and to select the following parallel port settings in the
    BIOS:
   </p><div class="itemizedlist"><ul class="itemizedlist" type="bullet"><li class="listitem" style="list-style-type: disc"><p>
      I/O address: <code class="literal">378</code> (hexadecimal)
     </p></li><li class="listitem" style="list-style-type: disc"><p>
      Interrupt: irrelevant
     </p></li><li class="listitem" style="list-style-type: disc"><p>
      Mode: <code class="literal">Normal</code>, <code class="literal">SPP</code>, or
      <code class="literal">Output Only</code>
     </p></li><li class="listitem" style="list-style-type: disc"><p>
      DMA: disabled
     </p></li></ul></div><p>
    If the printer cannot be addressed on the parallel port despite these
    settings, enter the I/O address explicitly in accordance with the
    setting in the BIOS in the form <code class="literal">0x378</code> in
    <code class="filename">/etc/modprobe.conf</code>. If there are two parallel ports
    that are set to the I/O addresses <code class="literal">378</code> and
    <code class="literal">278</code> (hexadecimal), enter these in the form
    <code class="literal">0x378,0x278</code>.
   </p><p>
    If interrupt <code class="literal">7</code> is free, it can be activated with the
    entry shown in <a class="xref" href="cha.p.html#dat.d.interface.parport0.interrupt" title="Example 11.1. /etc/modprobe.conf: Interrupt Mode for the First Parallel Port">Example 11.1, &#8220;<code class="filename">/etc/modprobe.conf</code>: Interrupt Mode for the First Parallel Port&#8221;</a>.
    Before activating the interrupt mode, check the file
    <code class="filename">/proc/interrupts</code> to see which interrupts are
    already in use. Only the interrupts currently being used are displayed.
    This may change depending on which hardware components are active. The
    interrupt for the parallel port must not be used by any other device. If
    you are not sure, use the polling mode with <code class="literal">irq=none</code>.
   </p><div class="example"><a name="dat.d.interface.parport0.interrupt"></a><p class="title"><b>Example 11.1. <code class="filename">/etc/modprobe.conf</code>: Interrupt Mode for the First Parallel Port</b><span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#dat.d.interface.parport0.interrupt">¶</a></span></p><div class="example-contents"><pre class="screen">alias parport_lowlevel parport_pc
options parport_pc io=0x378 irq=7</pre></div></div><br class="example-break"></div><div class="sect2" title="11.7.4. Network Printer Connections"><div class="titlepage"><div><div><h3 class="title"><a name="sec.drucken.prob.netconnect"></a>11.7.4. Network Printer Connections<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.drucken.prob.netconnect">¶</a></span></h3></div></div></div><a class="indexterm" name="id452135"></a><a class="indexterm" name="id452143"></a><div class="variablelist"><dl><dt><span class="term">Identifying Network Problems</span></dt><dd><p>
       Connect the printer directly to the computer. For test purposes,
       configure the printer as a local printer. If this works, the problems
       are related to the network.
      </p></dd><dt><span class="term">Checking the TCP/IP Network</span></dt><dd><p>
       The TCP/IP network and name resolution must be functional.
      </p></dd><dt><span class="term">Checking a Remote <span class="command"><strong>lpd</strong></span>
     </span></dt><dd><p>
       Use the following command to test if a TCP connection can be
       established to <span class="command"><strong>lpd</strong></span> (port <code class="literal">515</code>)
       on <em class="replaceable"><code>host</code></em>:
      </p><pre class="screen">netcat -z <em class="replaceable"><code>host</code></em> 515 &amp;&amp; echo ok || echo failed</pre><p>
       If the connection to <span class="command"><strong>lpd</strong></span> cannot be established,
       <span class="command"><strong>lpd</strong></span> may not be active or there may be basic
       network problems.
      </p><p>
       As the user <code class="systemitem">root</code>, use the
       following command to query a (possibly very long) status report for
       <em class="replaceable"><code>queue</code></em> on remote
       <em class="replaceable"><code>host</code></em>, provided the respective
       <span class="command"><strong>lpd</strong></span> is active and the host accepts queries:
      </p><pre class="screen">echo -e "\004queue" \
| netcat -w 2 -p 722 <em class="replaceable"><code>host</code></em> 515</pre><p>
       If <span class="command"><strong>lpd</strong></span> does not respond, it may not be active or
       there may be basic network problems. If <span class="command"><strong>lpd</strong></span>
       responds, the response should show why printing is not possible on
       the <code class="literal">queue</code> on <code class="literal">host</code>. If you
       receive a response like that shown in <a class="xref" href="cha.p.html#aus.d.lpd" title="Example 11.2. Error Message from lpd">Example 11.2, &#8220;Error Message from <span class="command">lpd</span>&#8221;</a>,
       the problem is caused by the remote <span class="command"><strong>lpd</strong></span>.
      </p><div class="example"><a name="aus.d.lpd"></a><p class="title"><b>Example 11.2. Error Message from <span class="command">lpd</span></b><span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#aus.d.lpd">¶</a></span></p><div class="example-contents"><pre class="screen">lpd: your host does not have line printer access
lpd: queue does not exist
printer: spooling disabled
printer: printing disabled</pre></div></div><br class="example-break"></dd><dt><span class="term">Checking a Remote <span class="command"><strong>cupsd</strong></span>
     </span></dt><dd><p> A CUPS network server can broadcast its queues by default every 30
       seconds on UDP port <code class="literal">631</code>. Accordingly, the following
       command can be used to test whether there is a broadcasting CUPS network
       server in the network. Make sure to stop your local CUPS daemon before
       executing the command. </p><pre class="screen">netcat -u -l -p 631 &amp; PID=$! ; sleep 40 ; kill $PID</pre><p>
       If a broadcasting CUPS network server exists, the output appears as
       shown in <a class="xref" href="cha.p.html#aus.d.bcast" title="Example 11.3. Broadcast from the CUPS Network Server">Example 11.3, &#8220;Broadcast from the CUPS Network Server&#8221;</a>.
      </p><div class="example"><a name="aus.d.bcast"></a><p class="title"><b>Example 11.3. Broadcast from the CUPS Network Server</b><span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#aus.d.bcast">¶</a></span></p><div class="example-contents"><pre class="screen">ipp://192.168.2.202:631/printers/queue</pre></div></div><br class="example-break"><p>
       The following command can be used to test if a TCP connection can be
       established to <span class="command"><strong>cupsd</strong></span> (port <code class="literal">631</code>)
       on <em class="replaceable"><code>host</code></em>:
      </p><pre class="screen">netcat -z <em class="replaceable"><code>host</code></em> 631 &amp;&amp; echo ok || echo failed</pre><p>
       If the connection to <span class="command"><strong>cupsd</strong></span> cannot be established,
       <span class="command"><strong>cupsd</strong></span> may not be active or there may be basic
       network problems. <span class="command"><strong>lpstat -h <em class="replaceable"><code>host</code></em>
       -l -t</strong></span> returns a (possibly very long) status report for all
       queues on <em class="replaceable"><code>host</code></em>, provided the respective
       <span class="command"><strong>cupsd</strong></span> is active and the host accepts queries.
      </p><p>
       The next command can be used to test if the
       <em class="replaceable"><code>queue</code></em> on <em class="replaceable"><code>host</code></em>
       accepts a print job consisting of a single carriage-return character.
       Nothing should be printed. Possibly, a blank page may be ejected.
      </p><pre class="screen">echo -en "\r" \
| lp -d queue -h <em class="replaceable"><code>host</code></em></pre></dd><dt><span class="term">
      Troubleshooting a Network Printer or Print Server Box
     </span></dt><dd><p>
       Spoolers running in a print server box sometimes cause problems when
       they have to deal with multiple print jobs. Since this is caused by
       the spooler in the print server box, there no way to resolve this
       issue. As a work-around, circumvent the spooler in the print server
       box by addressing the printer connected to the print server box
       directly with the TCP socket. See <a class="xref" href="cha.p.html#sec.p.net" title="11.4. Network Printers">Section 11.4, &#8220;Network Printers&#8221;</a>.
      </p><p>
       In this way, the print server box is reduced to a converter between
       the various forms of data transfer (TCP/IP network and local printer
       connection). To use this method, you need to know the TCP port on the
       print server box. If the printer is connected to the print server box
       and turned on, this TCP port can usually be determined with the
       <span class="command"><strong>nmap</strong></span> utility from the
       <code class="systemitem">nmap</code> package some time after the print
       server box is powered up. For example, <span class="command"><strong>nmap
       <em class="replaceable"><code>IP-address</code></em></strong></span> may deliver the
       following output for a print server box:
      </p><pre class="screen">Port       State       Service
23/tcp     open        telnet
80/tcp     open        http
515/tcp    open        printer
631/tcp    open        cups
9100/tcp   open        jetdirect</pre><p>
       This output indicates that the printer connected to the print server
       box can be addressed via TCP socket on port <code class="literal">9100</code>.
       By default, <span class="command"><strong>nmap</strong></span> only checks a number of commonly
       known ports listed in
       <code class="filename">/usr/share/nmap/nmap-services</code>. To check all
       possible ports, use the command <span class="command"><strong>nmap
       -p <em class="replaceable"><code>from_port</code></em>-<em class="replaceable"><code>to_port</code></em> <em class="replaceable"><code>IP-address</code></em></strong></span>.
       This may take some time. For further information, refer to the man
       page of <span class="command"><strong>nmap</strong></span>.
      </p><p>
       Enter a command like
      </p><pre class="screen">echo -en "\rHello\r\f" | netcat -w 1 IP-address port
cat file | netcat -w 1 IP-address port</pre><p>
       to send character strings or files directly to the respective port to
       test if the printer can be addressed on this port.
      </p></dd></dl></div></div><div class="sect2" title="11.7.5. Defective Printouts without Error Message"><div class="titlepage"><div><div><h3 class="title"><a name="sec.drucken.prob.defective_printouts"></a>11.7.5. Defective Printouts without Error Message<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.drucken.prob.defective_printouts">¶</a></span></h3></div></div></div><p>
    For the print system, the print job is completed when the CUPS back-end
    completes the data transfer to the recipient (printer). If further
    processing on the recipient fails (for example, if the printer is not
    able to print the printer-specific data) the print system does not
    notice this. If the printer is not able to print the printer-specific
    data, select a PPD file that is more suitable for the printer.
   </p></div><div class="sect2" title="11.7.6. Disabled Queues"><div class="titlepage"><div><div><h3 class="title"><a name="sec.drucken.prob.disabled_queues"></a>11.7.6. Disabled Queues<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.drucken.prob.disabled_queues">¶</a></span></h3></div></div></div><p>
    If the data transfer to the recipient fails entirely after several
    attempts, the CUPS back-end, such as <code class="literal">USB</code> or
    <code class="literal">socket</code>, reports an error to the print system (to
    <span class="command"><strong>cupsd</strong></span>). The back-end determines how many unsuccessful
    attempts are appropriate until the data transfer is reported as
    impossible. As further attempts would be in vain,
    <span class="command"><strong>cupsd</strong></span> disables printing for the respective queue.
    After eliminating the cause of the problem, the system administrator
    must reenable printing with the command <span class="command"><strong>cupsenable</strong></span>.
   </p></div><div class="sect2" title="11.7.7. CUPS Browsing: Deleting Print Jobs"><div class="titlepage"><div><div><h3 class="title"><a name="sec.drucken.prob.deleting_jobs"></a>11.7.7. CUPS Browsing: Deleting Print Jobs<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.drucken.prob.deleting_jobs">¶</a></span></h3></div></div></div><p>
    If a CUPS network server broadcasts its queues to the client hosts via
    browsing and a suitable local <span class="command"><strong>cupsd</strong></span> is active on the
    client hosts, the client <span class="command"><strong>cupsd</strong></span> accepts print jobs
    from applications and forwards them to the <span class="command"><strong>cupsd</strong></span> on
    the server. When <span class="command"><strong>cupsd</strong></span> on the server accepts a print job, it is
    assigned a new job number. Therefore, the job number on the client host
    is different from the job number on the server. As a print job is
    usually forwarded immediately, it cannot be deleted with the job number
    on the client host This is because the client <span class="command"><strong>cupsd</strong></span>
    regards the print job as completed as soon as it has been forwarded to
    the server <span class="command"><strong>cupsd</strong></span>.
   </p><p>
    When it becomes desirable to delete the print job on the server, use a
    command such as <span class="command"><strong>lpstat -h cups.example.com -o</strong></span> to determine
    the job number on the server, provided the server has not already
    completed the print job (that is, sent it completely to the printer).
    Using this job number, the print job on the server can be deleted:
   </p><pre class="screen">cancel -h cups.example.com <em class="replaceable"><code>queue-jobnumber</code></em></pre></div><div class="sect2" title="11.7.8. Defective Print Jobs and Data Transfer Errors"><div class="titlepage"><div><div><h3 class="title"><a name="sec.drucken.prob.brokenjobs"></a>11.7.8. Defective Print Jobs and Data Transfer Errors<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.drucken.prob.brokenjobs">¶</a></span></h3></div></div></div><p>If you switch the printer off or shut down the computer during the
    printing process, print jobs remain in the queue. Printing resumes when
    the computer (or the printer) is switched back on. Defective print jobs
    must be removed from the queue with <span class="command"><strong>cancel</strong></span>.
   </p><p>
    If a print job is defective or an error occurs in the communication
    between the host and the printer, the printer prints numerous sheets of
    paper with unintelligible characters, because it is unable to process
    the data correctly. To rectify this situation, follow these steps:
   </p><div class="procedure"><ol class="procedure" type="1"><li><p>
      To stop printing, remove all paper from ink jet printers or open the
      paper trays of laser printers. High-quality printers have a button for
      canceling the current printout.
     </p></li><li><p>
      The print job may still be in the queue, because jobs are only removed
      after they are sent completely to the printer. Use <span class="command"><strong>lpstat
      -o</strong></span> or <span class="command"><strong>lpstat -h cups.example.com -o</strong></span> to check
      which queue is currently printing. Delete the print job with
      <span class="command"><strong>cancel
      <em class="replaceable"><code>queue</code></em>-<em class="replaceable"><code>jobnumber</code></em>
      </strong></span> or <span class="command"><strong>cancel -h cups.example.com
      <em class="replaceable"><code>queue</code></em>-<em class="replaceable"><code>jobnumber</code></em></strong></span>.
     </p></li><li><p>
      Some data may still be transferred to the printer even though the
      print job has been deleted from the queue. Check if a CUPS back-end
      process is still running for the respective queue and terminate it.
      For example, for a printer connected to the parallel port, the command
      <span class="command"><strong>fuser -k /dev/lp0</strong></span> can be used to terminate all
      processes that are still accessing the printer (more precisely: the
      parallel port).
     </p></li><li><p>
      Reset the printer completely by switching it off for some time. Then
      insert the paper and turn on the printer.
     </p></li></ol></div></div><div class="sect2" title="11.7.9. Debugging the CUPS Print System"><div class="titlepage"><div><div><h3 class="title"><a name="sec.drucken.prob.debugging"></a>11.7.9. Debugging the CUPS Print System<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.drucken.prob.debugging">¶</a></span></h3></div></div></div><p>
    Use the following generic procedure to locate problems in the CUPS print
    system:
   </p><div class="procedure"><ol class="procedure" type="1"><li><p>
      Set <span class="command"><strong>LogLevel debug</strong></span> in
      <code class="filename">/etc/cups/cupsd.conf</code>.
     </p></li><li><p>
      Stop <span class="command"><strong>cupsd</strong></span>.
     </p></li><li><p>
      Remove <code class="filename">/var/log/cups/error_log*</code> to avoid having
      to search through very large log files.
     </p></li><li><p>
      Start <span class="command"><strong>cupsd</strong></span>.
     </p></li><li><p>
      Repeat the action that led to the problem.
     </p></li><li><p>
      Check the messages in <code class="filename">/var/log/cups/error_log*</code> to
      identify the cause of the problem.
     </p></li></ol></div></div><div class="sect2" title="11.7.10. For More Information"><div class="titlepage"><div><div><h3 class="title"><a name="sec.drucken.prob.more_information"></a>11.7.10. For More Information<span class="permalink"><a alt="Permalink" title="Copy Permalink" href="#sec.drucken.prob.more_information">¶</a></span></h3></div></div></div><p>
    Solutions to many specific problems are presented in the SUSE Support
    Database
    (<a class="ulink" href="http://en.opensuse.org/Portal:Support_database" target="_top">http://en.opensuse.org/Portal:Support_database</a>). Locate
    the relevant articles with a text search for
    <code class="literal">SDB:CUPS</code>.
   </p></div></div></div><div class="navfooter"><table width="100%" summary="Navigation footer" border="0" class="bctable"><tr><td width="80%"><div class="breadcrumbs"><p><a href="index.html"> Documentation</a><span class="breadcrumbs-sep"> &gt; </span><a href="book.opensuse.reference.html">Reference</a><span class="breadcrumbs-sep"> &gt; </span><a href="part.reference.administration.html">Administration</a><span class="breadcrumbs-sep"> &gt; </span><strong><a accesskey="p" title="Chapter 10. YaST in Text Mode" href="cha.yast.text.html"><span>&#9664;</span></a>  <a accesskey="n" title="Chapter 12. Installing and Configuring Fonts for the Graphical User Interface" href="cha.fontconfig.html"><span>&#9654;</span></a></strong></p></div></td></tr></table></div></body></html>

ACC SHELL 2018