General notes on the basics of setting up a new printer

  • Choose a name for the device, and select a free IP address on the printer subnet
  • Create the relevant DNS entry, with location alias if appropriate
  • Create the profile
  • Check DHCP configuration
  • Identify the port that it will be connected to, and make sure it's on the printer wire
  • Tell CUPS about it

Choose a name and IP address for the device

There is a list of used and possible names in the dns/inf map, so pick a - hopefully meaningful - name (either from the list or choose a new one) and create an entry using the next free IP address on the Printing subnet (129.215.93.0). If paranoid, check that the host command doesn't already know about the name and IP you've chosen.

Create the relevant DNS entry, with location alias if appropriate

The step above will already have created the DNS entry, but feel free to add an alias - usually of the form BB F RR T N, where:

  • BB is the building (if, at, &c)
  • F is the floor number
  • R[R] is the room number (one or more digits)
  • T is the type of printer ("m"onochrome or "c"olour)
  • N is the instance of that type of printer at that location (and so usually "0")

Create the profile

Use another printer profile as a template, or create it from scratch... it needs to at least include the dice/os/printer.h header, and set the MAC address.

Check DHCP configuration

Not strictly necessary, but you may wish to double-check this (if you do the profile creation & DNS entry setup in the wrong order, this won't happen automagically). On the print/CUPS server (aliased to infcups), check to make sure that the correct entry has been generated in /etc/dhcp/dhcpd.conf (If not, try running om dhcpd configure by hand.)

Identify the port

If not already known, this requires someone to go and choose or look at the port to be used. The port should be labelled, and can be searched for if the general location is known (building, room). For example, looking for ports in room 126b in the basement of AT:

% rfe -xf atnet/b.126b
techs.ports:port 18 b.126b/05 - N
%

...which confirms that port 18 (as reported from room 126b) on the techs.ports switch is already on the printer wire (Wire N). If this is not the case, edit atnet/techs.ports and set port 18 to the appropriate value.

Tell CUPS about it

Printer definitions are kept in cups-server.h, of which there are standard and live versions. In order to get a printer up and running immediately, both these files need to be updated - when the standard version has propagated, the temporary entry in the live version can be removed.

To fully configure the printer, a PPD file will be needed - which will ultimately need to be included in the dice-CUPSsupport RPM. This PPD file may be available as part of the drivers package from the manufacturer, or from a third party. Once located, it should be installed somewhere sensible, such as:

  • /usr/local/share/ppd
  • /usr/share/foomatic/db/source/PPD
  • /usr/share/printing/ppd

(which are locations used by the dice-CUPSsupport RPM).

Check the PPD file to make sure it doesn't contain additional file dependencies that may cause problems later.

Testing and Troubleshooting

If there are problems, check log files on server:

  • /var/log/cups/access_log
  • /var/log/cups/error_log
  • /var/log/cups/page_log

Check error_log for any relevant errors or warnings, especially missing files (any cross-check any missing file reports against PPD).

The web interface is also useful: run a browser on a machine on the printer wire, and browse to http://PRINTER.inf.ed.ac.uk:631/, where PRINTER is the DNS name of the device (not its alias).

To check if the printer is actually listening, try contacting it directly (this won't allow you to do anything meaningful, but will let you know it's up and visible):

telnet PRINTER 631

If none of the above succeeds in identifying and fixing the problem, you're on your own (with the help of Dr Google, of course!)

-- RogerBurroughes - 03 Feb 2015

Topic revision: r7 - 19 Mar 2015 - 14:33:46 - RogerBurroughes
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
This Wiki uses Cookies