916 lines
19 KiB
HTML
916 lines
19 KiB
HTML
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>Networks</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
|
|
REL="HOME"
|
|
HREF="t1.htm"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="Ghostscript."
|
|
HREF="x1687.htm"><LINK
|
|
REL="NEXT"
|
|
TITLE="Windows-only printers"
|
|
HREF="x2005.htm"></HEAD
|
|
><BODY
|
|
CLASS="sect1"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
SUMMARY="Header navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
></TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="x1687.htm"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="x2005.htm"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="sect1"
|
|
><H1
|
|
CLASS="sect1"
|
|
><A
|
|
NAME="network"
|
|
></A
|
|
>Networks</H1
|
|
><A
|
|
NAME="AEN1753"
|
|
></A
|
|
><P
|
|
>One of the features of most spoolers is that they support printing
|
|
over the network to printers physically connected to a different
|
|
machine, or to the network directly. With the careful combination
|
|
of filter scripts and assorted utilities, you can print
|
|
transparently to printers on all sorts of networks.</P
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="network-to-unix"
|
|
></A
|
|
>Printing to a Unix/lpd host</H2
|
|
><A
|
|
NAME="AEN1758"
|
|
></A
|
|
><A
|
|
NAME="AEN1761"
|
|
></A
|
|
><A
|
|
NAME="AEN1764"
|
|
></A
|
|
><P
|
|
>To allow remote machines to print to your printer using the LPD
|
|
protocol, you must list the machines in<SPAN
|
|
CLASS="emphasis"
|
|
><I
|
|
CLASS="emphasis"
|
|
>/etc/hosts.equiv</I
|
|
></SPAN
|
|
> or<SPAN
|
|
CLASS="emphasis"
|
|
><I
|
|
CLASS="emphasis"
|
|
>/etc/hosts.lpd</I
|
|
></SPAN
|
|
>. (Note that<SPAN
|
|
CLASS="emphasis"
|
|
><I
|
|
CLASS="emphasis"
|
|
>hosts.equiv</I
|
|
></SPAN
|
|
> has a host of other effects; be
|
|
sure you know what you are doing if you list any machine there).
|
|
You can allow only certain users on the other machines to print to
|
|
your printer by using the <SPAN
|
|
CLASS="emphasis"
|
|
><I
|
|
CLASS="emphasis"
|
|
>rs</I
|
|
></SPAN
|
|
> attribute; read
|
|
the <TT
|
|
CLASS="literal"
|
|
><A
|
|
HREF="http://www.linuxprinting.org/man/lpd.8.html"
|
|
TARGET="_top"
|
|
>lpd</A
|
|
></TT
|
|
> man page for information on this.</P
|
|
><DIV
|
|
CLASS="sect3"
|
|
><H3
|
|
CLASS="sect3"
|
|
><A
|
|
NAME="network-to-unix-with-lpd"
|
|
></A
|
|
>With <TT
|
|
CLASS="literal"
|
|
>lpd</TT
|
|
></H3
|
|
><P
|
|
>To print to another machine, you make an<SPAN
|
|
CLASS="emphasis"
|
|
><I
|
|
CLASS="emphasis"
|
|
>/etc/printcap</I
|
|
></SPAN
|
|
> entry like this:<PRE
|
|
CLASS="screen"
|
|
> # REMOTE djet500
|
|
lp|dj|deskjet:\
|
|
:sd=/var/spool/lpd/dj:\
|
|
:rm=machine.out.there.com:\
|
|
:rp=printername:\
|
|
:sh:</PRE
|
|
>
|
|
Note that there is still a spool directory on the local machine
|
|
managed by <TT
|
|
CLASS="literal"
|
|
>lpd</TT
|
|
>. If the remote
|
|
machine is busy or offline, print jobs from the local machine
|
|
wait in the spool area until they can be sent.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect3"
|
|
><H3
|
|
CLASS="sect3"
|
|
><A
|
|
NAME="network-to-unix-with-rlpr"
|
|
></A
|
|
>With <TT
|
|
CLASS="literal"
|
|
>rlpr</TT
|
|
></H3
|
|
><A
|
|
NAME="AEN1784"
|
|
></A
|
|
><A
|
|
NAME="AEN1786"
|
|
></A
|
|
><P
|
|
>You can also use <SPAN
|
|
CLASS="emphasis"
|
|
><I
|
|
CLASS="emphasis"
|
|
>rlpr</I
|
|
></SPAN
|
|
> to send a print job
|
|
directly to a queue on a remote machine without going through the
|
|
hassle of configuring lpd to handle it. This is mostly useful in
|
|
situations where you print to a variety of printers only
|
|
occasionally. From the announcement for<SPAN
|
|
CLASS="emphasis"
|
|
><I
|
|
CLASS="emphasis"
|
|
>rlpr</I
|
|
></SPAN
|
|
>:</P
|
|
><P
|
|
>Rlpr uses TCP/IP to send print jobs to lpd servers anywhere on a
|
|
network.</P
|
|
><P
|
|
>Unlike lpr, it *does not* require that the remote printers be
|
|
explicitly known to the machine you wish to print from,
|
|
(e.g. through <SPAN
|
|
CLASS="emphasis"
|
|
><I
|
|
CLASS="emphasis"
|
|
>/etc/printcap</I
|
|
></SPAN
|
|
>) and thus is
|
|
considerably more flexible and requires less administration.</P
|
|
><P
|
|
>rlpr can be used anywhere a traditional lpr might be used, and is
|
|
backwards compatible with traditional BSD lpr.</P
|
|
><P
|
|
>The main power gained by rlpr is the power to print remotely
|
|
*from anywhere to anywhere* without regard for how the system you
|
|
wish to print from was configured. Rlpr can work as a filter
|
|
just like traditional lpr so that clients executing on a remote
|
|
machine like netscape, xemacs, etc, etc can print to your local
|
|
machine with little effort.</P
|
|
><P
|
|
>Rlpr is available from <TT
|
|
CLASS="literal"
|
|
><A
|
|
HREF="ftp://metalab.unc.edu/pub/Linux/system/printing/"
|
|
TARGET="_top"
|
|
>Metalab</A
|
|
></TT
|
|
>.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="network-to-windows"
|
|
></A
|
|
>Printing to a Windows or Samba printer</H2
|
|
><A
|
|
NAME="AEN1802"
|
|
></A
|
|
><A
|
|
NAME="AEN1805"
|
|
></A
|
|
><P
|
|
>There is a Printing to Windows mini-HOWTO out there which has more
|
|
info than there is here.</P
|
|
><DIV
|
|
CLASS="sect3"
|
|
><H3
|
|
CLASS="sect3"
|
|
><A
|
|
NAME="network-to-windows-with-lpd"
|
|
></A
|
|
>From LPD</H3
|
|
><A
|
|
NAME="AEN1811"
|
|
></A
|
|
><P
|
|
>It is possible to direct a print queue through the <TT
|
|
CLASS="literal"
|
|
><A
|
|
HREF="http://www.linuxprinting.org/man/smbclient.1.html"
|
|
TARGET="_top"
|
|
>smbclient</A
|
|
></TT
|
|
> program (part of the Samba suite)
|
|
to a TCP/IP based SMB print service. Samba includes a script to
|
|
do this called <TT
|
|
CLASS="literal"
|
|
>smbprint</TT
|
|
>. In short,
|
|
you put a configuration file for the specific printer in question
|
|
in the spool directory, and install the <TT
|
|
CLASS="literal"
|
|
>smbprint</TT
|
|
> script as the<SPAN
|
|
CLASS="emphasis"
|
|
><I
|
|
CLASS="emphasis"
|
|
>if</I
|
|
></SPAN
|
|
>.</P
|
|
><P
|
|
>The <SPAN
|
|
CLASS="emphasis"
|
|
><I
|
|
CLASS="emphasis"
|
|
>/etc/printcap</I
|
|
></SPAN
|
|
> entry goes like this:<PRE
|
|
CLASS="screen"
|
|
> lp|remote-smbprinter:\
|
|
:sh:\
|
|
:lp=/dev/null:\
|
|
:sd=/var/spool/lpd/lp:\
|
|
:if=/usr/local/sbin/smbprint:</PRE
|
|
></P
|
|
><P
|
|
>You should read the documentation inside the <TT
|
|
CLASS="literal"
|
|
>smbprint</TT
|
|
> script for more information on how
|
|
to set this up.</P
|
|
><P
|
|
>You can also use <TT
|
|
CLASS="literal"
|
|
>smbclient</TT
|
|
> to
|
|
submit a file directly to an SMB printing service without
|
|
involving <TT
|
|
CLASS="literal"
|
|
>lpd</TT
|
|
>. See the man page.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="network-to-netware"
|
|
></A
|
|
>Printing to a NetWare Printer</H2
|
|
><A
|
|
NAME="AEN1830"
|
|
></A
|
|
><A
|
|
NAME="AEN1833"
|
|
></A
|
|
><P
|
|
>The ncpfs suite includes a utility called <TT
|
|
CLASS="literal"
|
|
>nprint</TT
|
|
> which provides the same functionality
|
|
as <TT
|
|
CLASS="literal"
|
|
>smbprint</TT
|
|
> but for NetWare. You
|
|
can get ncpfs from <A
|
|
HREF="ftp://metalab.unc.edu/pub/Linux/system/filesystems/ncpfs/"
|
|
TARGET="_top"
|
|
>Metalab</A
|
|
>. From the LSM entry for version 0.16:</P
|
|
><P
|
|
> <SPAN
|
|
CLASS="QUOTE"
|
|
>"With ncpfs you can mount volumes of your NetWare server under
|
|
Linux. You can also print to NetWare print queues and spool
|
|
NetWare print queues to the Un*x print spooler. You need
|
|
kernel 1.2.x or 1.3.54 and above. ncpfs does NOT work with any
|
|
1.3.x kernel below 1.3.54."</SPAN
|
|
>
|
|
</P
|
|
><DIV
|
|
CLASS="sect3"
|
|
><H3
|
|
CLASS="sect3"
|
|
><A
|
|
NAME="network-to-netware-with-lpd"
|
|
></A
|
|
>From LPD</H3
|
|
><A
|
|
NAME="AEN1844"
|
|
></A
|
|
><P
|
|
>To make <TT
|
|
CLASS="literal"
|
|
>nprint</TT
|
|
> work via lpd, you
|
|
write a little shell script to print stdin on the NetWare
|
|
printer, and install that as the <SPAN
|
|
CLASS="emphasis"
|
|
><I
|
|
CLASS="emphasis"
|
|
>if</I
|
|
></SPAN
|
|
> for an
|
|
lpd print queue. You'll get something like:<PRE
|
|
CLASS="screen"
|
|
> sub2|remote-NWprinter:\
|
|
:sh:\
|
|
:lp=/dev/null:\
|
|
:sd=/var/spool/lpd/sub2:\
|
|
:if=/var/spool/lpd/nprint-script:</PRE
|
|
>
|
|
|
|
The <TT
|
|
CLASS="literal"
|
|
>nprint-script</TT
|
|
> might look
|
|
approximately like:<PRE
|
|
CLASS="screen"
|
|
> #! /bin/sh
|
|
# You should try the guest account with no password first!
|
|
/usr/local/bin/nprint -S net -U name -P passwd -q printq-name -</PRE
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="network-to-apple"
|
|
></A
|
|
>Printing to an EtherTalk (Apple) printer</H2
|
|
><A
|
|
NAME="AEN1855"
|
|
></A
|
|
><A
|
|
NAME="AEN1858"
|
|
></A
|
|
><P
|
|
>The netatalk package includes something like <TT
|
|
CLASS="literal"
|
|
>nprint</TT
|
|
> and <TT
|
|
CLASS="literal"
|
|
>smbclient</TT
|
|
>. Others have documented the
|
|
procedure for printing to and from an Apple network far better
|
|
than I ever will; see the <A
|
|
HREF="http://thehamptons.com/anders/netatalk/"
|
|
TARGET="_top"
|
|
>Linux
|
|
Netatalk-HOWTO</A
|
|
>.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="networked-printers"
|
|
></A
|
|
>Printing to a networked printer</H2
|
|
><A
|
|
NAME="AEN1867"
|
|
></A
|
|
><A
|
|
NAME="AEN1870"
|
|
></A
|
|
><A
|
|
NAME="AEN1873"
|
|
></A
|
|
><P
|
|
>Many printers come with an ethernet interface which you can print
|
|
to directly, typically using the LPD protocol. You should
|
|
follow the instructions that came with your printer or its network
|
|
adaptor, but in general, such printers are "running" lpd, and
|
|
provide one or more queues which you can print to. An HP, for
|
|
example, might work with a printcap like:<PRE
|
|
CLASS="screen"
|
|
> lj-5|remote-hplj:\
|
|
:sh:\
|
|
:sd=/var/spool/lpd/lj-5:\
|
|
:rm=printer.name.com:\
|
|
:rp=raw:</PRE
|
|
></P
|
|
><P
|
|
>HP Laserjet printers with JetDirect interfaces generally support
|
|
two built in lpd queues - "raw" which accepts PCL (and possibly
|
|
Postscript) and "text" which accepts straight ascii (and copes
|
|
automatically with the staircase effect). If you've got a
|
|
JetDirect Plus3 three-port box, the queues are named "raw1",
|
|
"text2", and so forth.</P
|
|
><P
|
|
>Note that the ISS company has identified an assortment of denial
|
|
of service attacks which hang HP Jetdirect interfaces. Most of
|
|
these have been addressed beginning in Fall 98. These sorts of
|
|
problems are common in embedded code; few appliance-style devices
|
|
should be exposed to general Internet traffic.</P
|
|
><A
|
|
NAME="AEN1880"
|
|
></A
|
|
><P
|
|
>In a large scale environment, especially a large environment where
|
|
some printers do not support PostScript, it may be useful to
|
|
establish a dedicated print server to which all machines print and
|
|
on which all ghostscript jobs are run. This will allow the queue
|
|
to be paused or reordered using the topq and lprm commands.</P
|
|
><P
|
|
>This also allows your GNU/Linux box to act as a spool server for the
|
|
printer so that your network users can complete their print jobs
|
|
quickly and get on with things without waiting for the printer to
|
|
print any other job that someone else has sent. This is suggested
|
|
too if you have unfixable older HP Jetdirects; it reduces the
|
|
likelihood of the printers wedging.</P
|
|
><P
|
|
>To do this, set up a queue on your linux box that points at the
|
|
ethernet equipped HP LJ (as above). Now set up all the clients on
|
|
your LAN to point at the LPD queue (eg lj-5 in the example above).</P
|
|
><P
|
|
>Some HP network printers apparently don't heed the banner page
|
|
setting sent by clients; you can turn off their internally
|
|
generated banner page by telnetting to the printer, hitting return
|
|
twice, typing "banner: 0" followed by "quit". There are other
|
|
settings you can change this way, as well; type "?" to see a list.</P
|
|
><P
|
|
>The full range of settings can be controlled with HP's <A
|
|
HREF="http://www.hp.com/go/webjetadmin"
|
|
TARGET="_top"
|
|
>webJetAdmin</A
|
|
>
|
|
software. This package runs as a daemon, and accepts http
|
|
requests on a designated port. It serves up forms and Java
|
|
applets which can control HP printers on the network. In theory,
|
|
it can also control Unix print queues, but it does so using the
|
|
rexec service, which is completely unsecure. I don't advise using
|
|
that feature.</P
|
|
><DIV
|
|
CLASS="sect3"
|
|
><H3
|
|
CLASS="sect3"
|
|
><A
|
|
NAME="networked-printers-appsocket"
|
|
></A
|
|
>To AppSocket Devices</H3
|
|
><A
|
|
NAME="AEN1891"
|
|
></A
|
|
><A
|
|
NAME="AEN1893"
|
|
></A
|
|
><A
|
|
NAME="AEN1896"
|
|
></A
|
|
><A
|
|
NAME="AEN1899"
|
|
></A
|
|
><P
|
|
>Some printers (and printer networking "black boxes") support only
|
|
a cheesy little non-protocol involving plain TCP connections;
|
|
this is sometimes called the "AppSocket" protocol. Notable in
|
|
this category are early-model JetDirect (including some
|
|
JetDirectEx) cards. Basically, to print to the printer, you must
|
|
open a TCP connection to the printer on a specified port
|
|
(typically 9100, or 9100, 9101 and 9102 for three-port boxes) and
|
|
stuff your print job into it. LPRng has built-in support for
|
|
stuffing print jobs into random TCP ports, but with BSD lpd it's
|
|
not so easy. The best thing is probably to obtain and use the
|
|
little utility called netcat.</P
|
|
><P
|
|
>Failing that, it can be implemented, among other ways, in Perl
|
|
using the program below. For better performance, use the
|
|
program netcat ("nc"), which does much the same thing in a
|
|
general purpose way. Most distributions should have netcat
|
|
available in prepackaged form.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="if-for-remote-printers"
|
|
></A
|
|
>Running an <TT
|
|
CLASS="option"
|
|
>if</TT
|
|
> for remote printers with old
|
|
LPDs</H2
|
|
><A
|
|
NAME="AEN1907"
|
|
></A
|
|
><A
|
|
NAME="AEN1911"
|
|
></A
|
|
><P
|
|
>One oddity of older versions of lpd is that the <TT
|
|
CLASS="option"
|
|
>if</TT
|
|
>
|
|
is not run for remote printers. (Versions after 0.43 or so have
|
|
the change originated on FreeBSD such that the <TT
|
|
CLASS="option"
|
|
>if</TT
|
|
>
|
|
is always run). If you find that you need to run an<TT
|
|
CLASS="option"
|
|
>if</TT
|
|
> for a remote printer, and it isn't working
|
|
with your lpr, you can do so by setting up a double queue and
|
|
requeueing the job. As an example, consider this<TT
|
|
CLASS="filename"
|
|
>printcap</TT
|
|
>:</P
|
|
><P
|
|
> <PRE
|
|
CLASS="programlisting"
|
|
> lj-5:\
|
|
:lp=/dev/null:sh:\
|
|
:sd=/var/spool/lpd/lj-5:\
|
|
:if=/usr/lib/lpd/filter-lj-5:
|
|
lj-5-remote:sh:rm=printer.name.com:\
|
|
:rp=raw:sd=/var/spool/lpd/lj-5-raw:
|
|
|
|
|
|
</PRE
|
|
>in light of this <B
|
|
CLASS="command"
|
|
>filter-lj-5</B
|
|
> script:<PRE
|
|
CLASS="programlisting"
|
|
> #!/bin/sh
|
|
gs <options> -q -dSAFER -sOutputFile=- - | \
|
|
lpr -Plj-5-remote -U$5
|
|
</PRE
|
|
></P
|
|
><P
|
|
>The <TT
|
|
CLASS="option"
|
|
>-U</TT
|
|
> option to lpr only works if lpr is run
|
|
as daemon, and it sets the submitter's name for the job in the
|
|
resubmitted queue correctly. You should probably use a more
|
|
robust method of getting the username, since in some cases it is
|
|
not argument 5. See the man page for <TT
|
|
CLASS="filename"
|
|
><TT
|
|
CLASS="replaceable"
|
|
><I
|
|
><A
|
|
HREF="http://www.linuxprinting.org/man/printcap.5.html"
|
|
TARGET="_top"
|
|
>printcap</A
|
|
></I
|
|
></TT
|
|
></TT
|
|
>.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="network-from-windows"
|
|
></A
|
|
>From Windows.</H2
|
|
><A
|
|
NAME="AEN1931"
|
|
></A
|
|
><A
|
|
NAME="AEN1934"
|
|
></A
|
|
><A
|
|
NAME="AEN1938"
|
|
></A
|
|
><A
|
|
NAME="AEN1941"
|
|
></A
|
|
><P
|
|
>Printing from a Windows (or presumably, OS/2) client to a Un*x
|
|
server is directly supported over SMB through the use of the
|
|
SAMBA package, which also supports file sharing of your Un*x
|
|
filesystem to Windows clients.</P
|
|
><P
|
|
>Samba includes fairly complete documentation, and there is a good
|
|
Samba FAQ which covers it, too. You can either configure a magic
|
|
filter on the Un*x box and print PostScript to it, or run around
|
|
installing printer-specific drivers on all the Windows machines
|
|
and having a queue for them with no filters at all. Relying on
|
|
the Windows drivers may in some cases produce better output, but
|
|
is a bit more of an administrative hassle if there are many
|
|
Windows boxes. So try Postscript first. Modern versions of
|
|
Samba should support the automagical driver download mechanism
|
|
offered by Windows NT servers to deal with this problem.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="networks-from-apple"
|
|
></A
|
|
>From an Apple.</H2
|
|
><A
|
|
NAME="AEN1947"
|
|
></A
|
|
><A
|
|
NAME="AEN1950"
|
|
></A
|
|
><A
|
|
NAME="AEN1953"
|
|
></A
|
|
><A
|
|
NAME="AEN1955"
|
|
></A
|
|
><P
|
|
>Netatalk supports printing from Apple clients over EtherTalk. See
|
|
the <A
|
|
HREF="http://thehamptons.com/anders/netatalk/"
|
|
TARGET="_top"
|
|
>Netatalk
|
|
HOWTO Page</A
|
|
> for more information.</P
|
|
><P
|
|
>Really, though, any modern Mac can print over TCP/IP using the LPD
|
|
protocol just fine. UVa provides a very nice <A
|
|
HREF="http://www.itc.virginia.edu/desktop/mac/ip_printing/ip_printing.html"
|
|
TARGET="_top"
|
|
>support page</A
|
|
> detailing how to set this up.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="networks-from-netware"
|
|
></A
|
|
>From Netware.</H2
|
|
><A
|
|
NAME="AEN1965"
|
|
></A
|
|
><A
|
|
NAME="AEN1968"
|
|
></A
|
|
><A
|
|
NAME="AEN1971"
|
|
></A
|
|
><A
|
|
NAME="AEN1973"
|
|
></A
|
|
><P
|
|
>The ncpfs package includes a daemon named pserver which can be
|
|
used to provide service to a NetWare print queue. From what I
|
|
understand, this system requires a Bindery-based NetWare, eg 2.x,
|
|
3.x, or 4.x with bindery access enabled.</P
|
|
><P
|
|
>For more information on ncpfs and it's pserver program, see <A
|
|
HREF="ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/"
|
|
TARGET="_top"
|
|
>the ncpfs FTP
|
|
site</A
|
|
>.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="AEN1980"
|
|
></A
|
|
>Networked Printer Administration</H2
|
|
><A
|
|
NAME="AEN1982"
|
|
></A
|
|
><A
|
|
NAME="AEN1985"
|
|
></A
|
|
><P
|
|
>Most networked printers support some method of remote
|
|
administration. Often there are easy-to-use web pages for
|
|
configuration. More usefully, there is often support for SNMP
|
|
management. Typically you can find out interesting information on
|
|
printer status like ink and paper levels, print volumes, and so
|
|
forth, and you can usually change certain settings. SNMP printer
|
|
control, and a number of other printing-related things, are being
|
|
standardized by the IEEE's <A
|
|
HREF="http://www.pwg.org/"
|
|
TARGET="_top"
|
|
>Printer Working Group</A
|
|
></P
|
|
><DIV
|
|
CLASS="sect3"
|
|
><H3
|
|
CLASS="sect3"
|
|
><A
|
|
NAME="npadmin"
|
|
></A
|
|
><B
|
|
CLASS="command"
|
|
>npadmin</B
|
|
></H3
|
|
><P
|
|
> <A
|
|
HREF="http://npadmin.sourceforge.net/"
|
|
TARGET="_top"
|
|
>Npadmin</A
|
|
>is a
|
|
command-line program which offers an interface to the common SNMP
|
|
functionality of networked printers. It implements the standard <A
|
|
HREF="http://www.ietf.org/rfc/rfc1759.txt"
|
|
TARGET="_top"
|
|
>Printer
|
|
MIB</A
|
|
>, as well as a few vendor-proprietary schemes used
|
|
mainly for older devices. Both printer-discovery style actions
|
|
and various printer status queries are supported.</P
|
|
><P
|
|
>npadmin has an excellent <A
|
|
HREF="http://npadmin.sourceforge.net/man/"
|
|
TARGET="_top"
|
|
>man page</A
|
|
>, and
|
|
precompiled packages are distributed for a number of RPM and dpkg
|
|
based distributions.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect3"
|
|
><H3
|
|
CLASS="sect3"
|
|
><A
|
|
NAME="AEN1997"
|
|
></A
|
|
>Other SNMP tools</H3
|
|
><P
|
|
>Besides npadmin, there are a number of SNMP tools that will be
|
|
useful. <B
|
|
CLASS="command"
|
|
>snmptraplogd</B
|
|
> can log SNMP trap
|
|
events. This is useful for observing printer jams, out of paper
|
|
events, etc; it would be straightforward to retransmit certain
|
|
events to a pager, or to send an email.</P
|
|
><P
|
|
>While npadmin provides simplified support for many network
|
|
printers' SNMP interfaces, some printers may have vendor
|
|
extensions which npadmin doesn't know about. In this case, you
|
|
can use the CMU SNMP tools, which support arbitrary SNMP GET and
|
|
SET operations, as well as walks and the like. With these, and a
|
|
bit of work, you can make use of any SNMP feature offered by your
|
|
printer's MIB. You may need to obtain a MIB from your vendor to
|
|
figure out what all the variables are; sometimes vendors think
|
|
that people actually use the proprietary tools they ship.</P
|
|
><P
|
|
>VA Linux's <B
|
|
CLASS="command"
|
|
><A
|
|
HREF="http://sourceforge.net/project/?group_id=3648"
|
|
TARGET="_top"
|
|
>libprinterconf</A
|
|
></B
|
|
> includes code to perform
|
|
network printer discovery. Printers are identified against a
|
|
compiled-in library of printer signatures; at the moment the
|
|
library is not large, but does cover many common networked
|
|
printer models.</P
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
SUMMARY="Footer navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="x1687.htm"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="t1.htm"
|
|
ACCESSKEY="H"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="x2005.htm"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>Ghostscript.</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
> </TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>Windows-only printers</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |