?TableOfContents(2)
Debian Printing (CUPS)
Keywords: Linux Printing, Debian, cups system, HP Linux and Image software, Install, Add , Change Printers, Print Server.
The Common UNIX Printing System (or CUPS) is a printing system and general replacement for lpd and other older systems. The CUPS Debian packages forms a nice, powerful and relatively easy to use printing system on Debian. (http://www.cups.org)
Installation
- Install Software:
apt-get update apt-get install cupsys cupsys-client
- Start the software:
/etc/init.d/cupsys start
Add Printer
- Now you can add printer by going to
http://localhost:631
- [OPTIONAL]If you are in server environment and you do not have a browser like Firefox, you will need to install text browser called lynx.
apt-get install lynx
- No go to the same address as specified before with Lynx.
lynx http://localhost:631
- Follow the instructions as you see on the screen. Set default printer.
Example, kyocera printer
- Type in:
lynx http://localhost:631
Click on Do Administration Task, then Add New Printer,
Name: kyocera9520 Location: Back Room Description: High output printer
Click Continue
Click on !AppSocket/HP JetDirect
- If you have a network printer that you can directly print to select:
LPD/LPR Host Printer
- Then change a device URI to one of the examples:
socket://hostname:9100
Then select Make.Then Model. If your model is not there, you can try picking similar printer number/driver and it should work.
When done go back to original menu. Click on Set Default Printer
Done. Anything below is optional
Printer Status
- Is the printer running
lpstat -r
- What is the default printer
lpstat -d
- Printer queue
lpq
CUPS Administration
CUPS can also be administered via its web interface (http://localhost:631). You will be asked for the root user login and password.
- Any other settings can be done through easy web interface or using print settings program as root:
http://localhost:631
- Options include: pause, resume, cancel print jobs, etc.
- [Optional]You can also login to the web interface as any user in the "lpadmin" group
No Printer Drivers
- Most of the more common printer should already have drivers in cups system. For the newer or more commercial once see the manufacture website.You are looking for PPD files. The PPD files describe the capabilities of all printers.
Kyoceramita (PPD)
[http://usa.kyoceramita.com/KMAGlobalpub/jsp/Kyocera/resource_details.jsp?rid=17845 Kyocera PPD drivers]
Canon (PPD)
For copier/printer/scanner like Imagerunner 5065
Download the ppd drivers: http://downloads.canon.com/cpr/software/imagerunner/PPD_v241.exe
- run it using wine. This will unzip the PPD to temp folder. Find your printer and use the QX PPD drivers.
Above Information merged from [http://lucasmanual.com/mywiki/DebianPrinting Lucasmanual.com Printing Section]
CUPS and Samba
This section needs updating as you can setup print server via samba print sharing just by uploading drivers.
When printing to windows printers in an NT domain using SMB the Device URI should read
smb://username:password@domain/server/printername
This allows Samba to authenticate against a domain controller for acces to the printer queue.
When printing to a Debian CUPS printer from a machine that connects through Samba, you may need to [http://www.owlfish.com/thoughts/winipp-cups-2003-07-20.html set up a CUPS class] to get things to work.
Tips on printer sharing
Printer sharing using Macintosh as the client and Debian as the server
If you have a printer on a debian machine and you want to share it with a Macintosh, so that the Mac can print to the Debian-based printer:
1. Use cups to set up the printer on Debian. You can do this as described above. The Gnome tool for printer configuration works well, and the 100% bullet-proof way is to use the browser-based CUPS configuration.
2. On the Mac (OS 10.4) start Pring and Fax from System Preferences. Use the + button to add a printer. Ignore the 'IP Printer' option: the `Default Browser' should already show the Debian-based printer.
Alternative Automatic Configuration
ChrisLawrence is developing an automated printer setup tool for CUPS using ["Foomatic"], currently called ["printconf"]. You can try it by installing the printconf package:
apt-get update apt-get install printconf
Other printing Systems
Debian has several alternatives available for printing:
- CUPS. (Instructions above) The newer Common UNIX Printing System (or CUPS) is a printing system and general replacement for lpd and the like. It supports the _Internet Printing Protocol (IPP)_, and has its own filtering driver model for handling various document types.
LPR. The still commonly used traditional printing system is called lpr which works quite well if you have a [postscript http://www.wikipedia.org/wiki/postScript] printer. Otherwise, it is not very simple to set up and doesn't provide much control for users on the printer settings per print job.
- RLPR Remote line printer spooling system.
xpp is designed to be able to take the same command-line arguments as BSD-lpr and SysV-lp so most apps won't realize the difference if you create a symbolic link from /usr/bin/lpr (or /usr/bin/lp) to /usr/bin/xpp. This way, whenever an application sends off a print job to the lpr (or lp) program, xpp will launch its GUI so that you can select the options that you would like for this job.
Remote line printer spooling system
The remote line printer spooling system allows printing to remote network printers without the need for a local printer spooler daemon.
Printing a text file to the local default printer
Printing a text file to a named printer
To print a text document to the printer named belinda on a remote host pegasus, use:
rlpr -Pbelinda -Hpegasus foobar.txt
Printing graphical documents to a named printer
== Remote line printer proxy daemon
The remote line printer spooling system allows printing to remote network printers without the need for a local printer spooler daemon. The rlprd daemon acts as a proxy between the remote printing commands, rlpr, rlpq, and rlprm and traditional lpd print servers in situations where the remote printing commands cannot be installed setuid root.
The rlprd daemon works by mapping non-privileged port requests from rlpr clients to privileged ports so that the lpd processes will listen to them.
The rlprd daemon needs to installed ["setuid"] root
The rlprd daemon needs to installed ["setuid"] root, otherwise it is useless.
Security
Eliminating the "security" gained by having privileged ports is a non-issue, since the Internet is no longer just Unix, and Unix is the only operating system that has the privileged port concept.
Remote line printer job removal tool
The rlprm command provides a remote line printer job removal tool can be used to remove jobs from a remote line printer spooling queue and can be used anywhere a traditional lprm tool might be used.
Outside links
[:PpdFileStructureSpecification: PPD File Structure Specification]
http://www.tldp.org/HOWTO/Debian-and-Windows-Shared-Printing/
See also: ["CUPS"]